From d95e410fd959e34c56794051031f6efdfb77be5a Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 18 Jul 2025 20:05:47 +0800 Subject: [PATCH 001/109] fix: update designer package.json --- packages/designer/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/designer/package.json b/packages/designer/package.json index 1a8e44f2ae6..9dc37038795 100644 --- a/packages/designer/package.json +++ b/packages/designer/package.json @@ -16,7 +16,7 @@ "monaco-editor": "^0.52.2", "vue": "^3.2.37", "rxjs": "^7.4.0", - "@gsp-wf/wf-bizprocess-lookup-vue": "latest" + "@gsp-wf/wf-bizprocess-lookup-vue": "0.0.2" }, "devDependencies": { "@babel/parser": "^7.19.0", -- Gitee From efd2a77a9ba4d43b0a6ed2afe2bc58a5a628d1fd Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 21 Jul 2025 13:59:32 +0800 Subject: [PATCH 002/109] build: update pnpm-lock --- pnpm-lock.yaml | 95 ++++++++++++++++---------------------------------- 1 file changed, 30 insertions(+), 65 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6727b813043..bcce3e3592a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -293,7 +293,7 @@ importers: version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) @@ -513,7 +513,7 @@ importers: version: 7.8.1 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@5.6.3) @@ -565,10 +565,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -604,7 +604,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -622,25 +622,25 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -771,10 +771,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -810,7 +810,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -831,28 +831,28 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-dts: specifier: 3.9.1 - version: 3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 3.9.1(@types/node@18.19.57)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -954,7 +954,7 @@ importers: specifier: workspace:^ version: link:../ui-vue '@gsp-wf/wf-bizprocess-lookup-vue': - specifier: latest + specifier: 0.0.2 version: 0.0.2(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) '@monaco-editor/loader': specifier: ^1.4.0 @@ -23503,24 +23503,6 @@ snapshots: - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@babel/parser': 7.25.8 - '@microsoft/api-extractor': 7.47.11(@types/node@18.19.57) - '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@rushstack/node-core-library': 3.66.1(@types/node@18.19.57) - debug: 4.3.7 - fast-glob: 3.3.2 - fs-extra: 10.1.0 - kolorist: 1.8.0 - magic-string: 0.29.0 - ts-morph: 18.0.0 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): dependencies: '@babel/parser': 7.25.8 @@ -23609,23 +23591,6 @@ snapshots: - rollup - supports-color - vite-plugin-dts@3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@microsoft/api-extractor': 7.43.0(@types/node@20.5.1) - '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@vue/language-core': 1.8.27(typescript@5.6.3) - debug: 4.3.7 - kolorist: 1.8.0 - magic-string: 0.30.12 - typescript: 5.6.3 - vue-tsc: 1.8.27(typescript@5.6.3) - optionalDependencies: - vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-md@0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: '@yankeeinlondon/builder-api': 1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) @@ -23945,17 +23910,17 @@ snapshots: - supports-color - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): + vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): dependencies: '@docsearch/css': 3.6.2 '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/devtools-api': 6.6.4 - '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -23971,17 +23936,17 @@ snapshots: - terser - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): + vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): dependencies: '@docsearch/css': 3.6.2 '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/devtools-api': 6.6.4 - '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@4.9.5) + vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -23997,16 +23962,16 @@ snapshots: - terser - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): + vitepress@1.0.0-alpha.10(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(terser@5.36.0)(typescript@5.6.3): dependencies: '@docsearch/css': 3.6.2 '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/devtools-api': 6.6.4 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - '@algolia/client-search' -- Gitee From 92fc18284a96af5c0e81d13f290483818122d02d Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 21 Jul 2025 14:34:12 +0800 Subject: [PATCH 003/109] build: update pnpm-lock --- pnpm-lock.yaml | 183 ++++++++++++++++++++++--------------------------- 1 file changed, 82 insertions(+), 101 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bcce3e3592a..1137198232d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -450,7 +450,7 @@ importers: version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -771,10 +771,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -810,7 +810,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -831,28 +831,28 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-dts: specifier: 3.9.1 - version: 3.9.1(@types/node@18.19.57)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -3830,6 +3830,9 @@ packages: '@farris/ui-vue@1.5.3': resolution: {integrity: sha512-36IAUj2KLd4kLtzMYRZFx/qWTeXueefMfhf+pmMWIt/I8Ni1X+X1T6EkqaBUYA3S5ltnWf4gHG/Z2YePfgHKWg==} + '@farris/ui-vue@1.5.5': + resolution: {integrity: sha512-w/d+WENP1TMQXbRERHfXrF8D9YHNxw3zQX3ejbVFU+z2KroZ5E6NaixL9vP7VNpr8QLo128jM8NSVYfxvYruVA==} + '@floating-ui/core@1.6.9': resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} @@ -13042,7 +13045,7 @@ snapshots: '@types/node': 20.5.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.6.3) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.6.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -13651,6 +13654,37 @@ snapshots: - vite - vue + '@farris/ui-vue@1.5.5(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + dependencies: + '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@farris/designer-dragula': 0.0.5 + '@monaco-editor/loader': 1.4.0(monaco-editor@0.52.2) + '@types/lodash-es': 4.17.12 + '@vue/shared': 3.5.12 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + async-validator: 4.2.5 + bignumber.js: 9.1.2 + date-fns: 3.6.0 + echarts: 5.5.1 + jsonp: 0.2.1 + lodash: 4.17.21 + lodash-es: 4.17.21 + rxjs: 7.8.1 + vite-plugin-dts: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - monaco-editor + - react + - react-dom + - rollup + - search-insights + - supports-color + - vite + - vue + '@floating-ui/core@1.6.9': dependencies: '@floating-ui/utils': 0.2.9 @@ -13700,7 +13734,7 @@ snapshots: '@gsp-wf/wf-bizprocess-lookup-vue@0.0.2(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': dependencies: - '@farris/ui-vue': 1.5.3(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@farris/ui-vue': 1.5.5(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/shared': 3.5.12 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) async-validator: 4.2.5 @@ -15207,16 +15241,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - transitivePeerDependencies: - - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: '@babel/core': 7.25.8 @@ -15271,11 +15295,6 @@ snapshots: vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) @@ -15692,14 +15711,14 @@ snapshots: - '@vue/composition-api' - vue - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) fp-ts: 2.16.9 inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -15724,7 +15743,7 @@ snapshots: fp-ts: 2.16.9 inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -17243,7 +17262,7 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.6.3): dependencies: '@types/node': 20.5.1 cosmiconfig: 8.3.6(typescript@5.6.3) @@ -19870,7 +19889,7 @@ snapshots: jest-cli@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 @@ -19913,7 +19932,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -19944,7 +19963,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) + ts-node: 10.9.2(@types/node@18.19.57)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -20319,7 +20338,7 @@ snapshots: jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) '@jest/types': 29.6.3 import-local: 3.2.0 jest-cli: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) @@ -23064,25 +23083,6 @@ snapshots: '@ts-morph/common': 0.19.0 code-block-writer: 12.0.0 - ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.57 - acorn: 8.13.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optional: true - ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -23591,18 +23591,37 @@ snapshots: - rollup - supports-color - vite-plugin-md@0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): + vite-plugin-dts@3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@microsoft/api-extractor': 7.43.0(@types/node@20.5.1) + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) + '@vue/language-core': 1.8.27(typescript@5.6.3) + debug: 4.3.7 + kolorist: 1.8.0 + magic-string: 0.30.12 + typescript: 5.6.3 + vue-tsc: 1.8.27(typescript@5.6.3) + optionalDependencies: + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite-plugin-md@0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): + dependencies: + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) gray-matter: 4.0.3 markdown-it: 13.0.2 source-map-js: 1.2.1 transitivePeerDependencies: - '@edge-runtime/vm' + - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding + - happy-dom - jsdom - less - lightningcss @@ -23611,22 +23630,20 @@ snapshots: - sugarss - supports-color - terser + - vite - vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/builder-api': 1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + gray-matter: 4.0.3 markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding - - happy-dom - jsdom - less - lightningcss @@ -23682,15 +23699,15 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -24208,42 +24225,6 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.4 - chai: 4.5.0 - debug: 4.3.7 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.12 - pathe: 1.1.2 - picocolors: 1.1.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.9.0 - tinypool: 0.8.4 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vite-node: 1.6.0(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 18.19.57 - happy-dom: 8.9.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vitest@1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: '@vitest/expect': 1.6.0 -- Gitee From 434e9ae7033ce5e8ece82ceda889678ee749e688 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 21 Jul 2025 15:08:42 +0800 Subject: [PATCH 004/109] fix: publish 1.6.0-beta.1 of beta tag --- packages/ui-vue/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/package.json b/packages/ui-vue/package.json index 690bdd8a7d1..61262c01af8 100644 --- a/packages/ui-vue/package.json +++ b/packages/ui-vue/package.json @@ -1,6 +1,6 @@ { "name": "@farris/ui-vue", - "version": "1.5.5", + "version": "1.6.0-beta.1", "license": "Apache-2.0", "description": "Farris Vue, a Farris Design based Vue3 component library.", "keywords": [ -- Gitee From 513abef403dc7c502b7e227ee5902f065484bfd2 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 24 Jul 2025 19:09:46 +0800 Subject: [PATCH 005/109] fix: update data grid locale --- .../data-grid/src/locales/ui/en.json | 118 ++++++++++++++++++ .../data-grid/src/locales/ui/zh-CHS.json | 118 ++++++++++++++++++ .../data-grid/src/locales/ui/zh-CHT.json | 118 ++++++++++++++++++ .../column-filter-container.component.tsx | 17 +-- .../date-filter-editor.component.tsx | 16 --- .../column-setting.component.tsx | 5 +- .../components/data/empty.component.tsx | 5 +- .../summary/data-grid-summary.component.tsx | 5 +- .../composition/column/use-command-column.ts | 5 +- .../data-view/composition/data/use-loading.ts | 5 +- .../locale/src/lib/locale.service.ts | 10 +- 11 files changed, 383 insertions(+), 39 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/locales/ui/en.json b/packages/ui-vue/components/data-grid/src/locales/ui/en.json index e69de29bb2d..f4983462cb8 100644 --- a/packages/ui-vue/components/data-grid/src/locales/ui/en.json +++ b/packages/ui-vue/components/data-grid/src/locales/ui/en.json @@ -0,0 +1,118 @@ +{ + "datagrid": { + "lineNumberTitle": "NO.", + "emptyMessage": "Empty Data", + "pagination": { + "previousLabel": "Prev Page", + "nextLabel": "Next Page", + "message": "Total {1} items", + "pagelist": { + "firstText": "Display", + "lastText": "items" + } + }, + "filter": { + "title": "Conditions", + "reset": "Reset", + "clear": "Clear", + "clearAll": "Clear all conditions", + "setting": "Settings", + "nofilter": "[ Empty ]", + "checkAll": "Check All", + "and": "And", + "or": "Or", + "operators": { + "equal": "equal", + "notEqual": "not equal", + "greater": "greater than", + "greaterOrEqual": "greater than or equal", + "less": "less than", + "lessOrEqual": "less than or equal", + "contains": "contains", + "notContains": "not contains", + "like": "contains", + "notLike": "not contains", + "in": "in", + "notIn": "not in", + "empty": "empty", + "notEmpty": "not empty", + "null": "null", + "notNull": "not null" + }, + "more": "More", + "ok": "ok", + "cancel": "cancel", + "sevenDays": "Seven Days", + "oneMonth": "One Month", + "threeMonths": "Three Months", + "sixMonths": "Six Months" + }, + "settings": { + "visible": "Visible", + "sortting": "Sortting", + "title": "Column Settings", + "canchoose": "Can choose", + "choosed": "Choosed", + "asc": "ASC", + "desc": "DESC", + "cancelSort": "Cancel sortting", + "ok": "OK", + "cancel": "Cancel", + "reset": "Reset", + "conciseMode": "Concise", + "advancedMode": "Advanced", + "formatSetting": "Column format", + "properties": "Column properties", + "groupping": "Groupping", + "allColumns": "All", + "visibleColumns": "Visible", + "hiddenColumns": "Hidden", + "searchPlaceholder": "Please enter a column name", + "checkall": "Show or hide all", + "headeralign": "Header alignment", + "dataalign": "Data alignment", + "alignLeft": "Left", + "alignCenter": "Center", + "alignRight": "Right", + "summarytype": "Summary type", + "summarytext": "Summary text", + "summaryNone": "None", + "summarySum": "Sum", + "summaryMax": "Max", + "summaryMin": "Min", + "summarCount": "Count", + "summaryAverage": "Average", + "grouppingField": "Groupping field", + "moreGrouppingFieldWarningMessage": "Up to 3 fields are set for grouping", + "grouppingSummary": "Group total", + "addGrouppingFieldTip": "Add groupping field", + "removeGrouppingFieldTip": "Remove groupping field", + "grouppingSummaryType": "Group total type", + "grouppingSummaryText": "Group total text", + "restoreDefaultSettingsText": "Are you sure you want to restore the default settings", + "simple": { + "title": "Show Columns", + "tip": "The selected fields can be displayed in the list. Drag to adjust the display order in the list.", + "count": "show {0} columns" + } + }, + "selectionData": { + "clearAll": "Clear all", + "tooltip": "Click here show list.", + "currentLenth": "{0} items selected." + }, + "groupRow": { + "tips": "Drag columns here to group data.", + "removeColumn": "Remove the group column.", + "clearTip": "Clear all grouped fields.", + "clear": "Empty" + }, + "summary": { + "title": "current page summary" + }, + "loadingMessage": "loading", + "commandColumn": { + "title": "operate" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHS.json index e69de29bb2d..c56a492be6e 100644 --- a/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHS.json +++ b/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHS.json @@ -0,0 +1,118 @@ +{ + "datagrid": { + "lineNumberTitle": "序号", + "emptyMessage": "暂无数据", + "pagination": { + "previousLabel": "上一页", + "nextLabel": "下一页", + "message": "共 {1} 条", + "pagelist": { + "firstText": "显示", + "lastText": "条" + } + }, + "filter": { + "title": "筛选", + "reset": "重置", + "clear": "清空", + "clearAll": "清空所有条件", + "setting": "高级设置", + "nofilter": "[ 无 ]", + "checkAll": "全选", + "and": "并且", + "or": "或者", + "operators": { + "equal": "等于", + "notEqual": "不等于", + "greater": "大于", + "greaterOrEqual": "大于等于", + "less": "小于", + "lessOrEqual": "小于等于", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "属于", + "notIn": "不属于", + "empty": "为空", + "notEmpty": "不为空", + "null": "null", + "notNull": "不为null" + }, + "more": "查看更多", + "ok": "确定", + "cancel": "取消", + "sevenDays": "七天", + "oneMonth": "一个月", + "threeMonths": "三个月", + "sixMonths": "半年" + }, + "settings": { + "visible": "显示列", + "sortting": "列排序", + "title": "列配置", + "canchoose": "可选列", + "choosed": "已选列", + "asc": "升序", + "desc": "降序", + "cancelSort": "取消排序", + "ok": "确定", + "cancel": "取消", + "reset": "恢复默认", + "conciseMode": "简洁模式", + "advancedMode": "高级模式", + "formatSetting": "列格式", + "properties": "列属性", + "groupping": "分组", + "allColumns": "所有列", + "visibleColumns": "可见列", + "hiddenColumns": "隐藏列", + "searchPlaceholder": "请输入列名称", + "checkall": "全部显示/隐藏", + "headeralign": "表头对齐", + "dataalign": "数据对齐", + "alignLeft": "左对齐", + "alignCenter": "居中对齐", + "alignRight": "右对齐", + "summarytype": "汇总合计类型", + "summarytext": "汇总合计文本", + "summaryNone": "无", + "summarySum": "求和", + "summaryMax": "最大值", + "summaryMin": "最小值", + "summarCount": "计数", + "summaryAverage": "平均值", + "grouppingField": "分组字段", + "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", + "grouppingSummary": "分组合计", + "addGrouppingFieldTip": "添加分组字段", + "removeGrouppingFieldTip": "移除分组字段", + "grouppingSummaryType": "分组合计类型", + "grouppingSummaryText": "分组合计文本", + "restoreDefaultSettingsText": "确认要恢复默认设置吗?", + "simple": { + "title": "显示列", + "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", + "count": "已显示 {0} 列" + } + }, + "selectionData": { + "clearAll": "清空", + "tooltip": "点击显示已选记录列表", + "currentLenth": "已选择:{0} 条" + }, + "groupRow": { + "tips": "拖动列到这儿可进行数据分组", + "removeColumn": "移除分组列", + "clearTip": "清除所有分组字段", + "clear": "清空" + }, + "summary": { + "title": "当页合计" + }, + "loadingMessage": "正在加载", + "commandColumn": { + "title": "操作" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHT.json index e69de29bb2d..8261233be98 100644 --- a/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHT.json +++ b/packages/ui-vue/components/data-grid/src/locales/ui/zh-CHT.json @@ -0,0 +1,118 @@ +{ + "datagrid": { + "lineNumberTitle": "序號", + "emptyMessage": "暫無數據", + "pagination": { + "previousLabel": "上一頁", + "nextLabel": "下一頁", + "message": "共 {1} 條", + "pagelist": { + "firstText": "顯示", + "lastText": "條" + } + }, + "filter": { + "title": "過濾條件", + "reset": "重置", + "clear": "清空條件", + "clearAll": "清空所有條件", + "setting": "高級設置", + "nofilter": "[ 無 ]", + "checkAll": "全選", + "and": "並且", + "or": "或者", + "operators": { + "equal": "等於", + "notEqual": "不等於", + "greater": "大於", + "greaterOrEqual": "大於等於", + "less": "小於", + "lessOrEqual": "小於等於", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "屬於", + "notIn": "不屬於", + "empty": "為空", + "notEmpty": "不為空", + "null": "null", + "notNull": "不為null" + }, + "more": "查看更多", + "ok": "確定", + "cancel": "取消", + "sevenDays": "七天", + "oneMonth": "一個月", + "threeMonths": "三個月", + "sixMonths": "半年" + }, + "settings": { + "visible": "顯示列", + "sortting": "列排序", + "title": "列配置", + "canchoose": "可選列", + "choosed": "已選列", + "asc": "升序", + "desc": "降序", + "cancelSort": "取消排序", + "ok": "確定", + "cancel": "取消", + "reset": "恢複默認", + "conciseMode": "簡潔模式", + "advancedMode": "高級模式", + "formatSetting": "列格式", + "properties": "列屬性", + "groupping": "分組", + "allColumns": "所有列", + "visibleColumns": "可見列", + "hiddenColumns": "隱藏列", + "searchPlaceholder": "請輸入列名稱", + "checkall": "全部顯示/隱藏", + "headeralign": "表頭對齊", + "dataalign": "數據對齊", + "alignLeft": "左對齊", + "alignCenter": "居中對齊", + "alignRight": "右對齊", + "summarytype": "匯總合計類型", + "summarytext": "匯總合計文本", + "summaryNone": "無", + "summarySum": "求和", + "summaryMax": "最大值", + "summaryMin": "最小值", + "summarCount": "計數", + "summaryAverage": "平均值", + "grouppingField": "分組字段", + "moreGrouppingFieldWarningMessage": "最多設置3個字段進行分組", + "grouppingSummary": "分組合計", + "addGrouppingFieldTip": "添加分組字段", + "removeGrouppingFieldTip": "移除分組字段", + "grouppingSummaryType": "分組合計類型e", + "grouppingSummaryText": "分組合計文本", + "restoreDefaultSettingsText": "確認要恢複默認設置嗎", + "simple": { + "title": "顯示列", + "tip": "選中的字段可展示到列表中,拖拽可調整在列表中的展示順序。", + "count": "已顯示 {0} 列" + } + }, + "selectionData": { + "clearAll": "清空", + "tooltip": "點擊顯示已選記錄列錶", + "currentLenth": "已選擇:{0} 條" + }, + "groupRow": { + "tips": "拖動列到這兒可進行數據分組", + "removeColumn": "移除分組列", + "clearTip": "清除所有分組字段", + "clear": "清空" + }, + "summary": { + "title": "當頁合計" + }, + "loadingMessage": "正在載入", + "commandColumn": { + "title": "操作" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx b/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx index 9c0b697320e..7a789bdbb9f 100644 --- a/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx @@ -16,7 +16,7 @@ import { CapsuleItem } from '@farris/ui-vue/components/capsule'; import { Tag } from '@farris/ui-vue/components/tags'; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; import { HeaderCell, HeaderCellStatus, @@ -38,11 +38,12 @@ export default function ( useSorterComposition: UseSort, useVirtualScrollComposition: UseVirtualScroll ) { + const { t: getLocaleValue } = useI18n(); const items: CapsuleItem[] = [ - { name: LocaleService.getLocaleValue('datagrid.settings.asc'), + { name: getLocaleValue('datagrid.settings.asc'), value: 'asc', icon: 'f-icon f-icon-col-ascendingorder' }, - { name: LocaleService.getLocaleValue('datagrid.settings.summaryNone'), value: 'none' }, - { name: LocaleService.getLocaleValue('datagrid.settings.desc'), value: 'desc', + { name: getLocaleValue('datagrid.settings.summaryNone'), value: 'none' }, + { name: getLocaleValue('datagrid.settings.desc'), value: 'desc', icon: 'f-icon f-icon-col-descendingorder' } ]; @@ -144,7 +145,7 @@ export default function (
-
{LocaleService.getLocaleValue('datagrid.filter.title')}
+
{getLocaleValue('datagrid.filter.title')}
{useColumnFilterComposition.getFilterEditor(headerCell)}
onConfirm(payload, headerCell)}> - {LocaleService.getLocaleValue('datagrid.filter.ok')} + {getLocaleValue('datagrid.filter.ok')} onCancel(payload, headerCell)}> - {LocaleService.getLocaleValue('datagrid.filter.cancel')} + {getLocaleValue('datagrid.filter.cancel')}
diff --git a/packages/ui-vue/components/data-view/components/column-filter/date-filter-editor.component.tsx b/packages/ui-vue/components/data-view/components/column-filter/date-filter-editor.component.tsx index 9055a3e43a7..20f9feaa950 100644 --- a/packages/ui-vue/components/data-view/components/column-filter/date-filter-editor.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-filter/date-filter-editor.component.tsx @@ -1,21 +1,5 @@ import { ref } from "vue"; -import { LocaleService } from '@farris/ui-vue/components/locale'; import { HeaderCell } from "../../composition/types"; - -const tags = ref([ - { - name: LocaleService.getLocaleValue('datagrid.filter.sevenDays'), selectable: true - }, - { - name: LocaleService.getLocaleValue('datagrid.filter.oneMonth'), selectable: true - }, - { - name: LocaleService.getLocaleValue('datagrid.filter.threeMonths'), selectable: true - }, - { - name: LocaleService.getLocaleValue('datagrid.filter.sixMonths'), selectable: true - } -]); export default function (headerCell: HeaderCell) { const status = ref(false); const filterValue = ref(headerCell.column?.filter || ''); diff --git a/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx b/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx index 8922804d040..9b5d1021544 100644 --- a/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx @@ -1,6 +1,6 @@ +import { useI18n } from 'vue-i18n'; import FTransfer from '@farris/ui-vue/components/transfer'; import FTabs, { FTabPage } from '@farris/ui-vue/components/tabs'; -import { LocaleService } from '@farris/ui-vue/components/locale'; import { FOrder, OrderedItem, SortType } from '@farris/ui-vue/components/order'; import FConditionList, { Condition, FieldConfig } from '@farris/ui-vue/components/condition'; import { App, Ref, computed, inject, nextTick, ref } from 'vue'; @@ -23,6 +23,7 @@ export default function ( useVirtualScrollComposition: UseVirtualScroll, modalService: any ) { + const { t: getLocaleValue } = useI18n(); const identifyField = 'id'; const conditionListRef = ref(); let modalInstance: any; @@ -122,7 +123,7 @@ export default function ( headerPrefix: () => ( ), diff --git a/packages/ui-vue/components/data-view/components/data/empty.component.tsx b/packages/ui-vue/components/data-view/components/data/empty.component.tsx index 534ae288055..810d5d38810 100644 --- a/packages/ui-vue/components/data-view/components/data/empty.component.tsx +++ b/packages/ui-vue/components/data-view/components/data/empty.component.tsx @@ -1,12 +1,13 @@ import { SetupContext } from "vue"; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; export default function (context: SetupContext) { + const { t: getLocaleValue } = useI18n(); function renderEmpty() { return
{LocaleService.getLocaleValue('datagrid.emptyMessage')} + transform:translateY(-50%);user-select:none"> {getLocaleValue('datagrid.emptyMessage')}
; } diff --git a/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx b/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx index f25d25c1f22..41954ebc6c0 100644 --- a/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx +++ b/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx @@ -14,10 +14,11 @@ * limitations under the License. */ import { computed, ref } from 'vue'; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; import { DataColumn, DataViewOptions, UseColumn, UseDataView } from '../../composition/types'; export default function (props: DataViewOptions, dataView: UseDataView, useColumnComposition: UseColumn) { + const { t: getLocaleValue } = useI18n(); const { columnContext } = useColumnComposition; const summaryOptions = ref(props.summary); @@ -33,7 +34,7 @@ export default function (props: DataViewOptions, dataView: UseDataView, useColum
- {LocaleService.getLocaleValue('datagrid.summary.title')} + {getLocaleValue('datagrid.summary.title')}
{columnContext.value.summaryColumns.map((column: DataColumn) => { diff --git a/packages/ui-vue/components/data-view/composition/column/use-command-column.ts b/packages/ui-vue/components/data-view/composition/column/use-command-column.ts index ddf6f2cd9f9..9375ce0217e 100644 --- a/packages/ui-vue/components/data-view/composition/column/use-command-column.ts +++ b/packages/ui-vue/components/data-view/composition/column/use-command-column.ts @@ -14,10 +14,11 @@ * limitations under the License. */ import { Ref, ref } from 'vue'; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; import { DataColumn, DataViewOptions, UseCommandColumn, VisualData, VisualDataCell } from '../types'; export function useCommandColumn(props: DataViewOptions): UseCommandColumn { + const { t: getLocaleValue } = useI18n(); const defaultColumnWidth = 120; const enableCommands = ref(props.commandOption.enable || false); const commands = ref(props.commandOption.commands || []); @@ -28,7 +29,7 @@ export function useCommandColumn(props: DataViewOptions): UseCommandColumn { if (!hasCommandColumn) { const commandColumn = { field: '__commands__', - title: LocaleService.getLocaleValue('datagrid.commandColumn.title'), + title: getLocaleValue('datagrid.commandColumn.title'), width: defaultColumnWidth, fixed: 'right', dataType: 'commands', diff --git a/packages/ui-vue/components/data-view/composition/data/use-loading.ts b/packages/ui-vue/components/data-view/composition/data/use-loading.ts index 93f5b44e4da..11ef2707734 100644 --- a/packages/ui-vue/components/data-view/composition/data/use-loading.ts +++ b/packages/ui-vue/components/data-view/composition/data/use-loading.ts @@ -1,13 +1,14 @@ import { computed, inject, Ref, ref, watch } from 'vue'; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; import { FLoadingService } from '../../../loading'; import { DataGridProps } from '../../../data-grid/src/data-grid.props'; export function useLoading(props: DataGridProps, gridRef: Ref) { + const { t: getLocaleValue } = useI18n(); const LoadingService: FLoadingService | any = inject('FLoadingService'); const showLoading = computed(() => typeof props.loading === 'object' ? props.loading.show : props.loading); const loadingMessage = computed(() => typeof props.loading === 'object' ? - props.loading.message : `${LocaleService.getLocaleValue('datagrid.loadingMessage')}...`); + props.loading.message : `${getLocaleValue('datagrid.loadingMessage')}...`); let loadingInstance; function renderLoading() { const config: any = { diff --git a/packages/ui-vue/components/locale/src/lib/locale.service.ts b/packages/ui-vue/components/locale/src/lib/locale.service.ts index d5e19832e9a..71483b2f857 100644 --- a/packages/ui-vue/components/locale/src/lib/locale.service.ts +++ b/packages/ui-vue/components/locale/src/lib/locale.service.ts @@ -36,14 +36,14 @@ export class LocaleService { app.use(LocaleService.i18n); await this.loadResources(); } - public static getLocale(){ - return LocaleService.i18n &&LocaleService.i18n.global.locale; + public static getLocale() { + return LocaleService.i18n && LocaleService.i18n.global.locale; } public static getLocaleValue(key: string) { - return LocaleService.i18n &&LocaleService.i18n.global.te(key) || key; + return LocaleService.i18n && LocaleService.i18n.global.te(key) || key; } - public static getRealPropertyValue(key: string){ - return LocaleService.i18n &&LocaleService.i18n.global.te(key) || key; + public static getRealPropertyValue(key: string) { + return LocaleService.i18n && LocaleService.i18n.global.te(key) || key; } private static async loadResources(config: Partial = {}): Promise> { const resources: Record = {}; -- Gitee From 5290b11e0e1d9223b4bbae734db7ec3a8649a287 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 24 Jul 2025 19:20:01 +0800 Subject: [PATCH 006/109] fix: update combo list locale --- .../combo-list/src/composition/use-data-source.ts | 5 +++-- .../components/combo-list/src/locales/designer/en.json | 0 .../components/combo-list/src/locales/designer/zh-CHS.json | 0 .../components/combo-list/src/locales/designer/zh-CHT.json | 0 .../ui-vue/components/combo-list/src/locales/ui/en.json | 6 ++++++ .../ui-vue/components/combo-list/src/locales/ui/zh-CHS.json | 6 ++++++ .../ui-vue/components/combo-list/src/locales/ui/zh-CHT.json | 6 ++++++ .../event-parameter/src/event-parameter.component.tsx | 1 - 8 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 packages/ui-vue/components/combo-list/src/locales/designer/en.json create mode 100644 packages/ui-vue/components/combo-list/src/locales/designer/zh-CHS.json create mode 100644 packages/ui-vue/components/combo-list/src/locales/designer/zh-CHT.json create mode 100644 packages/ui-vue/components/combo-list/src/locales/ui/en.json create mode 100644 packages/ui-vue/components/combo-list/src/locales/ui/zh-CHS.json create mode 100644 packages/ui-vue/components/combo-list/src/locales/ui/zh-CHT.json diff --git a/packages/ui-vue/components/combo-list/src/composition/use-data-source.ts b/packages/ui-vue/components/combo-list/src/composition/use-data-source.ts index 60e7ad28ba4..af15caa15be 100644 --- a/packages/ui-vue/components/combo-list/src/composition/use-data-source.ts +++ b/packages/ui-vue/components/combo-list/src/composition/use-data-source.ts @@ -1,9 +1,10 @@ import { ref, watch } from "vue"; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; import { ComboListProps, Option } from "../combo-list.props"; import { UseDataSource } from "./types"; export function useDataSource(props: ComboListProps): UseDataSource { + const { t: getLocaleValue } = useI18n(); const displayText = ref(''); const modelValue = ref(props.modelValue); const dataSource = ref(props.data || []); @@ -68,7 +69,7 @@ export function useDataSource(props: ComboListProps): UseDataSource { return isFromJson ? response.text() : response.json(); } if(response.status === 405) { - throw new Error(LocaleService.getLocaleValue('comboList.remoteError')); + throw new Error(getLocaleValue('comboList.remoteError')); } const error = new Error(response.statusText); throw error; diff --git a/packages/ui-vue/components/combo-list/src/locales/designer/en.json b/packages/ui-vue/components/combo-list/src/locales/designer/en.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/combo-list/src/locales/designer/zh-CHS.json b/packages/ui-vue/components/combo-list/src/locales/designer/zh-CHS.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/combo-list/src/locales/designer/zh-CHT.json b/packages/ui-vue/components/combo-list/src/locales/designer/zh-CHT.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/combo-list/src/locales/ui/en.json b/packages/ui-vue/components/combo-list/src/locales/ui/en.json new file mode 100644 index 00000000000..22c7846db3a --- /dev/null +++ b/packages/ui-vue/components/combo-list/src/locales/ui/en.json @@ -0,0 +1,6 @@ +{ + "comboList": { + "remoteError": "The request method type is incorrect", + "placeholder": "Please select" + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/combo-list/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/combo-list/src/locales/ui/zh-CHS.json new file mode 100644 index 00000000000..3a6cc6f1aa0 --- /dev/null +++ b/packages/ui-vue/components/combo-list/src/locales/ui/zh-CHS.json @@ -0,0 +1,6 @@ +{ + "comboList": { + "remoteError": "请求方法类型不正确", + "placeholder": "请选择" + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/combo-list/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/combo-list/src/locales/ui/zh-CHT.json new file mode 100644 index 00000000000..eef80d488e2 --- /dev/null +++ b/packages/ui-vue/components/combo-list/src/locales/ui/zh-CHT.json @@ -0,0 +1,6 @@ +{ + "comboList": { + "remoteError": "請求方法類型不正確", + "placeholder": "請選擇" + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/event-parameter/src/event-parameter.component.tsx b/packages/ui-vue/components/event-parameter/src/event-parameter.component.tsx index 5c4267ed140..2f13de0d4ce 100644 --- a/packages/ui-vue/components/event-parameter/src/event-parameter.component.tsx +++ b/packages/ui-vue/components/event-parameter/src/event-parameter.component.tsx @@ -1,7 +1,6 @@ import { computed, defineComponent, inject, Ref, ref, SetupContext, watch } from 'vue'; import { FDynamicFormGroup } from '@farris/ui-vue/components/dynamic-form'; import { F_MODAL_SERVICE_TOKEN } from '@farris/ui-vue/components/modal'; -import { LocaleService } from '@farris/ui-vue/components/locale'; import FTabs, { FTabPage } from '@farris/ui-vue/components/tabs'; import FTreeView from '@farris/ui-vue/components/tree-view'; import FTextarea from '@farris/ui-vue/components/textarea'; -- Gitee From 0eb05958cec48975f6791c454acb8a1a718739a1 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 24 Jul 2025 19:34:48 +0800 Subject: [PATCH 007/109] fix: update event parameter locale --- .../src/composition/editors/use-combo-tree.ts | 5 ++-- .../composition/editors/use-json-editor.ts | 16 ++++++------ .../src/composition/use-general-editor.ts | 9 ++++--- .../src/locales/designer/en.json | 0 .../src/locales/designer/zh-CHS.json | 0 .../src/locales/designer/zh-CHT.json | 0 .../event-parameter/src/locales/ui/en.json | 26 +++++++++++++++++++ .../src/locales/ui/zh-CHS.json | 26 +++++++++++++++++++ .../src/locales/ui/zh-CHT.json | 26 +++++++++++++++++++ .../pagination/src/locales/designer/en.json | 0 .../src/locales/designer/zh-CHS.json | 0 .../src/locales/designer/zh-CHT.json | 0 .../pagination/src/locales/ui/en.json | 6 +++++ .../pagination/src/locales/ui/zh-CHS.json | 6 +++++ .../pagination/src/locales/ui/zh-CHT.json | 6 +++++ 15 files changed, 112 insertions(+), 14 deletions(-) create mode 100644 packages/ui-vue/components/event-parameter/src/locales/designer/en.json create mode 100644 packages/ui-vue/components/event-parameter/src/locales/designer/zh-CHS.json create mode 100644 packages/ui-vue/components/event-parameter/src/locales/designer/zh-CHT.json create mode 100644 packages/ui-vue/components/event-parameter/src/locales/ui/en.json create mode 100644 packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json create mode 100644 packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json create mode 100644 packages/ui-vue/components/pagination/src/locales/designer/en.json create mode 100644 packages/ui-vue/components/pagination/src/locales/designer/zh-CHS.json create mode 100644 packages/ui-vue/components/pagination/src/locales/designer/zh-CHT.json create mode 100644 packages/ui-vue/components/pagination/src/locales/ui/en.json create mode 100644 packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json create mode 100644 packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json diff --git a/packages/ui-vue/components/event-parameter/src/composition/editors/use-combo-tree.ts b/packages/ui-vue/components/event-parameter/src/composition/editors/use-combo-tree.ts index e3d2dbd322c..140e0324cf0 100644 --- a/packages/ui-vue/components/event-parameter/src/composition/editors/use-combo-tree.ts +++ b/packages/ui-vue/components/event-parameter/src/composition/editors/use-combo-tree.ts @@ -1,12 +1,13 @@ import { computed, watch } from "vue"; +import { useI18n } from 'vue-i18n'; import { editorMap, EditorType, EventParameterProps } from "../../event-parameter.props"; import { UseEditorInput } from "../type"; import { VisualData } from "@farris/ui-vue/components/data-view"; -import { LocaleService } from '@farris/ui-vue/components/locale'; export default function ( props: EventParameterProps, ): UseEditorInput { + const { t: getLocaleValue } = useI18n(); const shouldRenderAppendButton = computed(() => props.editor.type === EditorType.Default || props.editorType === EditorType.Default); @@ -29,7 +30,7 @@ export default function ( type: 'combo-tree', componentProps: { data: props.data, - placeholder: LocaleService.getLocaleValue('eventParameter.comboTree.placeholder'), + placeholder: getLocaleValue('eventParameter.comboTree.placeholder'), enableSearch: false, enableClear: true, editable: false, diff --git a/packages/ui-vue/components/event-parameter/src/composition/editors/use-json-editor.ts b/packages/ui-vue/components/event-parameter/src/composition/editors/use-json-editor.ts index f4c45b7d410..ce337d934f6 100644 --- a/packages/ui-vue/components/event-parameter/src/composition/editors/use-json-editor.ts +++ b/packages/ui-vue/components/event-parameter/src/composition/editors/use-json-editor.ts @@ -1,11 +1,11 @@ -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; import { editorMap, EventParameterProps, EditorControlSource } from "../../event-parameter.props"; import { UseBaseEditor } from "../type"; export default function ( props: EventParameterProps ): UseBaseEditor { - + const { t: getLocaleValue } = useI18n(); function getParameterDescriptors(): any[] { const controlSource = props.editorControlSource as EditorControlSource; const schemaValue = controlSource?.context?.schema?.value; @@ -19,7 +19,7 @@ export default function ( } return []; } catch (error) { - console.error(`${LocaleService.getLocaleValue('eventParameter.jsonEditor.error')}`, error); + console.error(`${getLocaleValue('eventParameter.jsonEditor.error')}`, error); return []; } } @@ -46,11 +46,11 @@ export default function ( formData: props.formData, }, beforeOpen, - dialogTitle: LocaleService.getLocaleValue('eventParameter.jsonEditor.dialogTitle'), - keyColumnTitle: LocaleService.getLocaleValue('eventParameter.jsonEditor.keyColumnTitle'), - valueColumnTitle: LocaleService.getLocaleValue('eventParameter.jsonEditor.dialogTitle'), - addButtonText: LocaleService.getLocaleValue('eventParameter.jsonEditor.dialogTitle'), - keyColumnPlaceholder: LocaleService.getLocaleValue('eventParameter.jsonEditor.dialogTitle'), + dialogTitle: getLocaleValue('eventParameter.jsonEditor.dialogTitle'), + keyColumnTitle: getLocaleValue('eventParameter.jsonEditor.keyColumnTitle'), + valueColumnTitle: getLocaleValue('eventParameter.jsonEditor.dialogTitle'), + addButtonText: getLocaleValue('eventParameter.jsonEditor.dialogTitle'), + keyColumnPlaceholder: getLocaleValue('eventParameter.jsonEditor.dialogTitle'), }, }; } diff --git a/packages/ui-vue/components/event-parameter/src/composition/use-general-editor.ts b/packages/ui-vue/components/event-parameter/src/composition/use-general-editor.ts index d177e32822f..13211dadc90 100644 --- a/packages/ui-vue/components/event-parameter/src/composition/use-general-editor.ts +++ b/packages/ui-vue/components/event-parameter/src/composition/use-general-editor.ts @@ -1,14 +1,15 @@ import { reactive, ref, watch } from "vue"; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; import { EventParameterProps } from "../event-parameter.props"; export function useGeneralEditor( props: EventParameterProps, ) { + const { t: getLocaleValue } = useI18n(); const tabs = reactive([ { id: 'tabField', - title: LocaleService.getLocaleValue('eventParameter.generalEditor.field'), + title: getLocaleValue('eventParameter.generalEditor.field'), treeConfigs: { id: 'tabFieldTree', columns: [{ field: 'name' }], @@ -20,7 +21,7 @@ export function useGeneralEditor( }, { id: 'tabVar', - title: LocaleService.getLocaleValue('eventParameter.generalEditor.tabVar'), + title: getLocaleValue('eventParameter.generalEditor.tabVar'), treeConfigs: { id: 'tabVarTree', data: props.varData, @@ -29,7 +30,7 @@ export function useGeneralEditor( }, { id: 'tabForm', - title: LocaleService.getLocaleValue('eventParameter.generalEditor.form'), + title: getLocaleValue('eventParameter.generalEditor.form'), treeConfigs: { id: 'tabFormTree', data: props.formData, diff --git a/packages/ui-vue/components/event-parameter/src/locales/designer/en.json b/packages/ui-vue/components/event-parameter/src/locales/designer/en.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/event-parameter/src/locales/designer/zh-CHS.json b/packages/ui-vue/components/event-parameter/src/locales/designer/zh-CHS.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/event-parameter/src/locales/designer/zh-CHT.json b/packages/ui-vue/components/event-parameter/src/locales/designer/zh-CHT.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/event-parameter/src/locales/ui/en.json b/packages/ui-vue/components/event-parameter/src/locales/ui/en.json new file mode 100644 index 00000000000..e078aa37835 --- /dev/null +++ b/packages/ui-vue/components/event-parameter/src/locales/ui/en.json @@ -0,0 +1,26 @@ +{ + "comboList": { + "title": "parameter editor", + "ok": "confirm", + "cancel": "cancel", + "workFlowClass": { + "title": "Please select a process category" + }, + "generalEditor": { + "field": "field", + "tabVar": "variable", + "form": "form components" + }, + "jsonEditor": { + "dialogTitle": "Configurable parameter editor", + "keyColumnTitle": "parameter", + "valueColumnTitle": "parameter value", + "addButtonText": "Add configuration parameters", + "keyColumnPlaceholder": "Please enter the parameters", + "error": "Expected array of parameter schema for JsonEditor, but received invalid JSON" + }, + "comboTree": { + "placeholder": "Please select" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json new file mode 100644 index 00000000000..97e6d353845 --- /dev/null +++ b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json @@ -0,0 +1,26 @@ +{ + "comboList": { + "title": "参数编辑器", + "ok": "确定", + "cancel": "取消", + "workFlowClass": { + "title": "请选择流程分类" + }, + "generalEditor": { + "field": "字段", + "tabVar": "变量", + "form": "表单组件" + }, + "jsonEditor": { + "dialogTitle": "可配置参数编辑器", + "keyColumnTitle": "参数", + "valueColumnTitle": "参数值", + "addButtonText": "添加配置参数", + "keyColumnPlaceholder": "请输入参数", + "error": "JsonEditor的参数预期是数组,但收到无效的JSON" + }, + "comboTree": { + "placeholder": "请选择" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json new file mode 100644 index 00000000000..146b9183192 --- /dev/null +++ b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json @@ -0,0 +1,26 @@ +{ + "comboList": { + "title": "參數編輯器", + "ok": "確定", + "cancel": "取消", + "workFlowClass": { + "title": "請選擇流程分類" + }, + "generalEditor": { + "field": "欄位", + "tabVar": "變數", + "form": "表單元件" + }, + "jsonEditor": { + "dialogTitle": "可配置參數編輯器", + "keyColumnTitle": "參數", + "valueColumnTitle": "參數值", + "addButtonText": "添加配置參數", + "keyColumnPlaceholder": "請輸入參數", + "error": "JsonEditor的參數預期是數位,但收到無效的JSON" + }, + "comboTree": { + "placeholder": "請選擇" + } + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/pagination/src/locales/designer/en.json b/packages/ui-vue/components/pagination/src/locales/designer/en.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/pagination/src/locales/designer/zh-CHS.json b/packages/ui-vue/components/pagination/src/locales/designer/zh-CHS.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/pagination/src/locales/designer/zh-CHT.json b/packages/ui-vue/components/pagination/src/locales/designer/zh-CHT.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/ui-vue/components/pagination/src/locales/ui/en.json b/packages/ui-vue/components/pagination/src/locales/ui/en.json new file mode 100644 index 00000000000..22c7846db3a --- /dev/null +++ b/packages/ui-vue/components/pagination/src/locales/ui/en.json @@ -0,0 +1,6 @@ +{ + "comboList": { + "remoteError": "The request method type is incorrect", + "placeholder": "Please select" + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json new file mode 100644 index 00000000000..3a6cc6f1aa0 --- /dev/null +++ b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json @@ -0,0 +1,6 @@ +{ + "comboList": { + "remoteError": "请求方法类型不正确", + "placeholder": "请选择" + } +} \ No newline at end of file diff --git a/packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json new file mode 100644 index 00000000000..eef80d488e2 --- /dev/null +++ b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json @@ -0,0 +1,6 @@ +{ + "comboList": { + "remoteError": "請求方法類型不正確", + "placeholder": "請選擇" + } +} \ No newline at end of file -- Gitee From a80317dd55f0cfd286aa696d2130efc4e4a39d4a Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 24 Jul 2025 19:48:36 +0800 Subject: [PATCH 008/109] fix: update pagination locale --- .../event-parameter/src/locales/ui/en.json | 2 +- .../src/locales/ui/zh-CHS.json | 2 +- .../src/locales/ui/zh-CHT.json | 2 +- .../buttons/goto-buttons.component.tsx | 5 +++-- .../components/pages/page-info.component.tsx | 7 ++++--- .../components/pages/page-list.component.tsx | 7 ++++--- .../pagination/src/locales/ui/en.json | 20 ++++++++++++++++--- .../pagination/src/locales/ui/zh-CHS.json | 20 ++++++++++++++++--- .../pagination/src/locales/ui/zh-CHT.json | 20 ++++++++++++++++--- 9 files changed, 65 insertions(+), 20 deletions(-) diff --git a/packages/ui-vue/components/event-parameter/src/locales/ui/en.json b/packages/ui-vue/components/event-parameter/src/locales/ui/en.json index e078aa37835..be707479fdb 100644 --- a/packages/ui-vue/components/event-parameter/src/locales/ui/en.json +++ b/packages/ui-vue/components/event-parameter/src/locales/ui/en.json @@ -1,5 +1,5 @@ { - "comboList": { + "eventParameter": { "title": "parameter editor", "ok": "confirm", "cancel": "cancel", diff --git a/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json index 97e6d353845..111aeb5600d 100644 --- a/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json +++ b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHS.json @@ -1,5 +1,5 @@ { - "comboList": { + "eventParameter": { "title": "参数编辑器", "ok": "确定", "cancel": "取消", diff --git a/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json index 146b9183192..78b2267b8cf 100644 --- a/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json +++ b/packages/ui-vue/components/event-parameter/src/locales/ui/zh-CHT.json @@ -1,5 +1,5 @@ { - "comboList": { + "eventParameter": { "title": "參數編輯器", "ok": "確定", "cancel": "取消", diff --git a/packages/ui-vue/components/pagination/src/components/buttons/goto-buttons.component.tsx b/packages/ui-vue/components/pagination/src/components/buttons/goto-buttons.component.tsx index aba15356297..c5bf1dc533a 100644 --- a/packages/ui-vue/components/pagination/src/components/buttons/goto-buttons.component.tsx +++ b/packages/ui-vue/components/pagination/src/components/buttons/goto-buttons.component.tsx @@ -14,14 +14,15 @@ * limitations under the License. */ import { ComputedRef, ref, Ref, SetupContext, watch } from 'vue'; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; export default function ( currentPage: Ref, lastPage: ComputedRef, currentPageSize: Ref, context: SetupContext ) { - const gotoPrefix = ref(LocaleService.getLocaleValue('pagination.goto.prefix')); + const { t:getLocaleValue } = useI18n(); + const gotoPrefix = ref(getLocaleValue('pagination.goto.prefix')); const gotoSuffix = ref(''); const pageNumber = ref(currentPage.value); watch(pageNumber, (value: number, previousValue: number) => { diff --git a/packages/ui-vue/components/pagination/src/components/pages/page-info.component.tsx b/packages/ui-vue/components/pagination/src/components/pages/page-info.component.tsx index ee9173d964b..b10e26dd077 100644 --- a/packages/ui-vue/components/pagination/src/components/pages/page-info.component.tsx +++ b/packages/ui-vue/components/pagination/src/components/pages/page-info.component.tsx @@ -14,10 +14,11 @@ * limitations under the License. */ import { computed, ref, Ref } from 'vue'; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; export default function (position: Ref, totalItems: Ref) { - const prefixTotalItems = ref(LocaleService.getLocaleValue('pagination.totalInfo.firstText')); - const suffixTotalItems = ref(LocaleService.getLocaleValue('pagination.totalInfo.lastText')); + const { t: getLocaleValue } = useI18n(); + const prefixTotalItems = ref(getLocaleValue('pagination.totalInfo.firstText')); + const suffixTotalItems = ref(getLocaleValue('pagination.totalInfo.lastText')); const pageInfoClass = computed(() => { const classObject = { diff --git a/packages/ui-vue/components/pagination/src/components/pages/page-list.component.tsx b/packages/ui-vue/components/pagination/src/components/pages/page-list.component.tsx index 89e3faa05eb..bba2119309a 100644 --- a/packages/ui-vue/components/pagination/src/components/pages/page-list.component.tsx +++ b/packages/ui-vue/components/pagination/src/components/pages/page-list.component.tsx @@ -14,16 +14,17 @@ * limitations under the License. */ import { computed, ref, Ref, SetupContext } from 'vue'; -import { LocaleService } from '@farris/ui-vue/components/locale'; +import { useI18n } from 'vue-i18n'; export default function ( currentPage: Ref, currentPageSize: Ref, pageList: Ref, totalItems: Ref, context: SetupContext) { + const { t: getLocaleValue } = useI18n(); const shouldShowPagePanel = ref(false); - const prefixPageSize = ref(LocaleService.getLocaleValue('pagination.show')); - const suffixPageSize = ref(LocaleService.getLocaleValue('pagination.totalInfo.lastText')); + const prefixPageSize = ref(getLocaleValue('pagination.show')); + const suffixPageSize = ref(getLocaleValue('pagination.totalInfo.lastText')); const pageListClass = computed(() => { const classObject = { diff --git a/packages/ui-vue/components/pagination/src/locales/ui/en.json b/packages/ui-vue/components/pagination/src/locales/ui/en.json index 22c7846db3a..0e8aa7eb3b5 100644 --- a/packages/ui-vue/components/pagination/src/locales/ui/en.json +++ b/packages/ui-vue/components/pagination/src/locales/ui/en.json @@ -1,6 +1,20 @@ { - "comboList": { - "remoteError": "The request method type is incorrect", - "placeholder": "Please select" + "pagination": { + "message": "Total {1} items ", + "totalInfo": { + "firstText": "total", + "lastText": "items" + }, + "pageList": { + "firstText": "display", + "lastText": "items" + }, + "previous": "previous", + "next": "next", + "goto": { + "prefix": "go to", + "suffix": "" + }, + "show": "show" } } \ No newline at end of file diff --git a/packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json index 3a6cc6f1aa0..f3b8081e587 100644 --- a/packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json +++ b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHS.json @@ -1,6 +1,20 @@ { - "comboList": { - "remoteError": "请求方法类型不正确", - "placeholder": "请选择" + "pagination": { + "message": "共 {1} 条", + "totalInfo": { + "firstText": "共", + "lastText": "条" + }, + "pageList": { + "firstText": "每页", + "lastText": "条" + }, + "previous": "上一页", + "next": "下一页", + "goto": { + "prefix": "跳转至", + "suffix": "页" + }, + "show": "显示" } } \ No newline at end of file diff --git a/packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json index eef80d488e2..972e29061ef 100644 --- a/packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json +++ b/packages/ui-vue/components/pagination/src/locales/ui/zh-CHT.json @@ -1,6 +1,20 @@ { - "comboList": { - "remoteError": "請求方法類型不正確", - "placeholder": "請選擇" + "pagination": { + "message": "共 {1} 條 ", + "totalInfo": { + "firstText": "共", + "lastText": "條" + }, + "pageList": { + "firstText": "每頁", + "lastText": "條" + }, + "previous": "上一頁", + "next": "下一頁", + "goto": { + "prefix": "跳轉至", + "suffix": "頁" + }, + "show": "顯示" } } \ No newline at end of file -- Gitee From e4e4d688d29229411db4ae6ca3f5d4d048a921e3 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 24 Jul 2025 20:00:15 +0800 Subject: [PATCH 009/109] fix: update data grid locale --- .../components/combo-list/src/combo-list.component.tsx | 4 +++- .../ui-vue/components/combo-list/src/combo-list.props.ts | 3 +-- packages/ui-vue/components/data-grid/src/data-grid.props.ts | 5 ++--- .../ui-vue/components/data-view/composition/use-sidebar.ts | 5 ++++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/ui-vue/components/combo-list/src/combo-list.component.tsx b/packages/ui-vue/components/combo-list/src/combo-list.component.tsx index c15eff3082e..0ab9bef8512 100644 --- a/packages/ui-vue/components/combo-list/src/combo-list.component.tsx +++ b/packages/ui-vue/components/combo-list/src/combo-list.component.tsx @@ -14,6 +14,7 @@ * limitations under the License. */ import { computed, defineComponent, nextTick, Ref, ref, SetupContext, watch } from 'vue'; +import { useI18n } from 'vue-i18n'; import FButtonEdit from '@farris/ui-vue/components/button-edit'; import { comboListProps, ComboListProps, Option } from './combo-list.props'; import ComboListContainer from './components/list-container.component'; @@ -24,6 +25,7 @@ export default defineComponent({ props: comboListProps, emits: ['clear', 'update:modelValue', 'change', 'input'] as (string[] & ThisType) | undefined, setup(props: ComboListProps, context: SetupContext) { + const { t: getLocaleValue } = useI18n(); const comboListContainerRef = ref(); const comboEditorRef: Ref = ref(); // 只读状态下应该也是禁用,不触发任何事件,如果是只读状态,还会触发click等事件 @@ -158,7 +160,7 @@ export default defineComponent({ forcePlaceholder={props.forcePlaceholder} editable={editable.value} buttonContent={props.dropDownIcon} - placeholder={props.placeholder} + placeholder={props.placeholder === undefined ? getLocaleValue('comboList.placeholder') : props.placeholder} enableClear={enableClear.value} maxLength={props.maxLength} tabIndex={props.tabIndex} diff --git a/packages/ui-vue/components/combo-list/src/combo-list.props.ts b/packages/ui-vue/components/combo-list/src/combo-list.props.ts index e0f0ec5e3b4..3a60e886b03 100644 --- a/packages/ui-vue/components/combo-list/src/combo-list.props.ts +++ b/packages/ui-vue/components/combo-list/src/combo-list.props.ts @@ -16,7 +16,6 @@ */ import { ExtractPropTypes, PropType } from 'vue'; import { createPropsResolver } from '@farris/ui-vue/components/dynamic-resolver'; -import { LocaleService } from '@farris/ui-vue/components/locale'; import { schemaMapper } from './schema/schema-mapper'; import comboListSchema from './schema/combo-list.schema.json'; import { schemaResolver } from './schema/schema-resolver'; @@ -149,7 +148,7 @@ export const comboListProps = { /** * 占位符 */ - placeholder: { type: String, default: LocaleService.getLocaleValue('comboList.placeholder') }, + placeholder: { type: String, default: '请选择' }, /** * 可选,下拉面板展示位置 * 默认为`auto` diff --git a/packages/ui-vue/components/data-grid/src/data-grid.props.ts b/packages/ui-vue/components/data-grid/src/data-grid.props.ts index e6580a412d0..deda7da7050 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.props.ts +++ b/packages/ui-vue/components/data-grid/src/data-grid.props.ts @@ -23,7 +23,6 @@ import { VisualData, VisualDataCell } from '@farris/ui-vue/components/data-view'; -import { LocaleService } from '@farris/ui-vue/components/locale'; import { DataGridColumnCommand, SortType } from './designer/data-grid-column.props'; export interface DataGridColumn { @@ -203,7 +202,7 @@ export const rowNumberOptions = { /** 显示行号 */ enable: { type: Boolean, default: false }, /** 行号列表头标题 */ - heading: { type: String, default: LocaleService.getLocaleValue('datagrid.lineNumberTitle') }, + heading: { type: String, default: '序号' }, /** 行号宽度,默认为 36px */ width: { type: Number, default: 36 }, /** 是否展示省略号 */ @@ -388,7 +387,7 @@ export const dataGridProps = { enable: true, width: 32, showEllipsis:true, - heading: LocaleService.getLocaleValue('datagrid.lineNumberTitle') + heading: '序号' } }, /** 行配置 */ diff --git a/packages/ui-vue/components/data-view/composition/use-sidebar.ts b/packages/ui-vue/components/data-view/composition/use-sidebar.ts index a5f7391ee59..0cbf38e5b9e 100644 --- a/packages/ui-vue/components/data-view/composition/use-sidebar.ts +++ b/packages/ui-vue/components/data-view/composition/use-sidebar.ts @@ -14,9 +14,11 @@ * limitations under the License. */ import { computed, ref, watch } from 'vue'; +import { useI18n } from 'vue-i18n'; import { DataViewOptions, RowNumberOptions, UseSelection, UseSidebar, VisualData } from './types'; export function useSidebar(props: DataViewOptions, useSelectionCompostion: UseSelection): UseSidebar { + const { t: getLocaleValue } = useI18n(); const timeStamp = String(Date.now()); // const defaultCheckboxWidth = 24; const defaultCheckboxWidth = 50; @@ -31,7 +33,8 @@ export function useSidebar(props: DataViewOptions, useSelectionCompostion: UseSe const rowNumberWidth = ref(showRowNumer.value ? props.rowNumber?.width ?? 32 : 0); const checkboxWidth = ref(showSidebarCheckBox.value ? defaultCheckboxWidth : 0); - const sidebarTitle = computed(() => showRowNumer.value ? props.rowNumber?.heading ?? '序号' : ''); + // const sidebarTitle = computed(() => showRowNumer.value ? props.rowNumber?.heading ?? '序号' : '');getLocaleValue('datagrid.lineNumberTitle') + const sidebarTitle = computed(() => showRowNumer.value ? props.rowNumber?.heading === undefined ? getLocaleValue('datagrid.lineNumberTitle') : props.rowNumber?.heading : ''); const sidebarWidth = computed(() => { return ((showSidebarCheckBox.value && !props.hierarchy) ? Number(checkboxWidth.value) : 0) + (showRowNumer.value ? Number(rowNumberWidth.value) : 0); -- Gitee From 65653a01d6566243d19e316291ae8fa244addd13 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 25 Jul 2025 13:59:15 +0800 Subject: [PATCH 010/109] fix: implement locale default value --- .../ui-vue/components/combo-list/src/combo-list.component.tsx | 2 +- packages/ui-vue/components/data-view/composition/use-sidebar.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui-vue/components/combo-list/src/combo-list.component.tsx b/packages/ui-vue/components/combo-list/src/combo-list.component.tsx index 0ab9bef8512..9ba0d7e19f2 100644 --- a/packages/ui-vue/components/combo-list/src/combo-list.component.tsx +++ b/packages/ui-vue/components/combo-list/src/combo-list.component.tsx @@ -160,7 +160,7 @@ export default defineComponent({ forcePlaceholder={props.forcePlaceholder} editable={editable.value} buttonContent={props.dropDownIcon} - placeholder={props.placeholder === undefined ? getLocaleValue('comboList.placeholder') : props.placeholder} + placeholder={props.placeholder === '请选择' ? getLocaleValue('comboList.placeholder') : props.placeholder} enableClear={enableClear.value} maxLength={props.maxLength} tabIndex={props.tabIndex} diff --git a/packages/ui-vue/components/data-view/composition/use-sidebar.ts b/packages/ui-vue/components/data-view/composition/use-sidebar.ts index 0cbf38e5b9e..d18087cb4be 100644 --- a/packages/ui-vue/components/data-view/composition/use-sidebar.ts +++ b/packages/ui-vue/components/data-view/composition/use-sidebar.ts @@ -34,7 +34,7 @@ export function useSidebar(props: DataViewOptions, useSelectionCompostion: UseSe const checkboxWidth = ref(showSidebarCheckBox.value ? defaultCheckboxWidth : 0); // const sidebarTitle = computed(() => showRowNumer.value ? props.rowNumber?.heading ?? '序号' : '');getLocaleValue('datagrid.lineNumberTitle') - const sidebarTitle = computed(() => showRowNumer.value ? props.rowNumber?.heading === undefined ? getLocaleValue('datagrid.lineNumberTitle') : props.rowNumber?.heading : ''); + const sidebarTitle = computed(() => showRowNumer.value ? props.rowNumber?.heading === '序号' ? getLocaleValue('datagrid.lineNumberTitle') : props.rowNumber?.heading : ''); const sidebarWidth = computed(() => { return ((showSidebarCheckBox.value && !props.hierarchy) ? Number(checkboxWidth.value) : 0) + (showRowNumer.value ? Number(rowNumberWidth.value) : 0); -- Gitee From 706bcee244c816bc94113e133782e3db64780d3d Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 25 Jul 2025 14:26:23 +0800 Subject: [PATCH 011/109] build: update build lib cli --- packages/ui-vue/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/package.json b/packages/ui-vue/package.json index be3e8adcb56..b1a2c8822cf 100644 --- a/packages/ui-vue/package.json +++ b/packages/ui-vue/package.json @@ -23,7 +23,7 @@ "dev": "vite", "check": "vue-tsc --noEmit", "build": "vue-tsc --noEmit && vite build", - "build:lib": "node --max-old-space-size=8192 ./scripts/index.js build", + "build:lib": "node --max-old-space-size=8192 ./scripts/index.js build && node --max-old-space-size=8192 ./scripts/designer-index.js build", "build:designerlib": "node --max-old-space-size=8192 ./scripts/designer-index.js build", "preview": "vite preview", "test": "jest --config jest.config.js", -- Gitee From de0245b643231d222214dbfe0fada365ab0e5050 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Sat, 26 Jul 2025 14:10:58 +0800 Subject: [PATCH 012/109] chore: update files --- pnpm-lock.yaml | 4691 ++++++++++++++++++++++-------------------------- 1 file changed, 2107 insertions(+), 2584 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd12e70f5c0..4970c4ef8ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@eslint/js': specifier: ^9.31.0 - version: 9.31.0 + version: 9.32.0 axios: specifier: ^1.10.0 version: 1.10.0 @@ -31,10 +31,10 @@ importers: version: 4.0.0 ts-jest: specifier: ^29.4.0 - version: 29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(esbuild@0.23.1)(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(esbuild@0.23.1)(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)))(typescript@5.8.3) typescript-eslint: specifier: ^8.37.0 - version: 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) devDependencies: '@babel/parser': specifier: ^7.28.0 @@ -53,7 +53,7 @@ importers: version: 2.29.5 '@commitlint/cli': specifier: ^19.8.1 - version: 19.8.1(@types/node@18.19.119)(typescript@5.8.3) + version: 19.8.1(@types/node@18.19.120)(typescript@5.8.3) '@commitlint/config-conventional': specifier: ^19.8.1 version: 19.8.1 @@ -77,7 +77,7 @@ importers: version: 15.3.1(rollup@4.45.1) '@testing-library/vue': specifier: ^8.1.0 - version: 8.1.0(@vue/compiler-sfc@3.5.17)(vue@3.5.17(typescript@5.8.3)) + version: 8.1.0(@vue/compiler-sfc@3.5.18)(vue@3.5.18(typescript@5.8.3)) '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -104,28 +104,28 @@ importers: version: 4.17.12 '@types/node': specifier: ^18.19.119 - version: 18.19.119 + version: 18.19.120 '@types/urlencode': specifier: ^1.1.4 version: 1.1.4 '@typescript-eslint/eslint-plugin': specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^7.18.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.17(typescript@5.8.3)) + version: 5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.2.0 - version: 4.2.0(vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.17(typescript@5.8.3)) + version: 4.2.0(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)) '@vue/babel-plugin-jsx': specifier: ^1.4.0 version: 1.4.0(@babel/core@7.28.0) '@vue/compiler-sfc': specifier: ^3.5.17 - version: 3.5.17 + version: 3.5.18 '@vue/test-utils': specifier: ^2.4.6 version: 2.4.6 @@ -161,7 +161,7 @@ importers: version: 1.10.3 compression: specifier: ^1.8.0 - version: 1.8.0 + version: 1.8.1 conventional-changelog-cli: specifier: ^5.0.0 version: 5.0.0(conventional-commits-filter@5.0.0) @@ -188,13 +188,13 @@ importers: version: 3.6.0(esbuild@0.23.1) eslint: specifier: ^9.31.0 - version: 9.31.0(jiti@2.4.2) + version: 9.32.0(jiti@2.5.1) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2)) + version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-vue: specifier: ^9.33.0 - version: 9.33.0(eslint@9.31.0(jiti@2.4.2)) + version: 9.33.0(eslint@9.32.0(jiti@2.5.1)) express: specifier: ^4.21.2 version: 4.21.2 @@ -218,7 +218,7 @@ importers: version: 0.12.2 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + version: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -257,22 +257,22 @@ importers: version: 0.11.1 stylelint: specifier: ^16.21.1 - version: 16.21.1(typescript@5.8.3) + version: 16.22.0(typescript@5.8.3) stylelint-config-recommended-scss: specifier: ^14.1.0 - version: 14.1.0(postcss@8.5.6)(stylelint@16.21.1(typescript@5.8.3)) + version: 14.1.0(postcss@8.4.47)(stylelint@16.22.0(typescript@5.8.3)) stylelint-config-standard: specifier: ^36.0.1 - version: 36.0.1(stylelint@16.21.1(typescript@5.8.3)) + version: 36.0.1(stylelint@16.22.0(typescript@5.8.3)) stylelint-order: specifier: ^6.0.4 - version: 6.0.4(stylelint@16.21.1(typescript@5.8.3)) + version: 6.0.4(stylelint@16.22.0(typescript@5.8.3)) stylelint-scss: specifier: ^6.12.1 - version: 6.12.1(stylelint@16.21.1(typescript@5.8.3)) + version: 6.12.1(stylelint@16.22.0(typescript@5.8.3)) ts-node: specifier: ~10.9.2 - version: 10.9.2(@types/node@18.19.119)(typescript@5.8.3) + version: 10.9.2(@types/node@18.19.120)(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -281,25 +281,25 @@ importers: version: 2.0.0 vite: specifier: ^5.4.19 - version: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + version: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) vite-plugin-dts: specifier: 3.9.1 - version: 3.9.1(@types/node@18.19.119)(rollup@4.45.1)(typescript@5.8.3)(vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) + version: 3.9.1(@types/node@18.19.120)(rollup@4.45.1)(typescript@5.8.3)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 - version: 5.1.0(vue@3.5.17(typescript@5.8.3)) + version: 5.1.0(vue@3.5.18(typescript@5.8.3)) vitepress: - specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + specifier: ^1.6.3 + version: 1.6.3(@algolia/client-search@5.34.1)(@types/node@18.19.120)(async-validator@4.2.5)(axios@1.10.0)(postcss@8.4.47)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass-embedded@1.80.3)(sass@1.89.2)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.8.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(typescript@5.8.3) vitest: specifier: ^1.6.1 - version: 1.6.1(@types/node@18.19.119)(happy-dom@14.12.3)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + version: 1.6.1(@types/node@18.19.120)(happy-dom@14.12.3)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) vue-tsc: specifier: ^2.2.12 version: 2.2.12(typescript@5.8.3) @@ -360,10 +360,10 @@ importers: version: 26.0.24 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) @@ -450,13 +450,13 @@ importers: version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -477,7 +477,7 @@ importers: dependencies: '@docsearch/js': specifier: 3.6.0 - version: 3.6.0(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + version: 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) '@types/lodash-es': specifier: ^4.17.4 version: 4.17.12 @@ -513,7 +513,7 @@ importers: version: 7.8.1 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@5.6.3) @@ -559,16 +559,16 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.28.0) @@ -604,7 +604,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -622,25 +622,25 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -652,10 +652,10 @@ importers: version: 9.0.7 '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) commander: specifier: ^9.4.0 version: 9.5.0 @@ -679,13 +679,13 @@ importers: version: 4.9.5 vite: specifier: ^4.4.1 - version: 4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) vite-plugin-css-injected-by-js: specifier: ^3.5.2 - version: 3.5.2(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0)) + version: 3.5.2(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0)) vite-plugin-dts: specifier: ^3.9.1 - version: 3.9.1(@types/node@24.0.14)(rollup@4.45.1)(typescript@4.9.5)(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0)) + version: 3.9.1(@types/node@20.5.1)(rollup@4.45.1)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0)) devDependencies: rimraf: specifier: ^5.0.7 @@ -768,16 +768,16 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.28.0) @@ -813,7 +813,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -834,13 +834,13 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-dts: specifier: 3.9.1 - version: 3.9.1(@types/node@24.0.14)(rollup@4.45.1)(typescript@5.6.3)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 3.9.1(@types/node@20.5.1)(rollup@4.45.1)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.21.5 version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) @@ -849,13 +849,13 @@ importers: version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@5.33.0)(@types/node@24.0.14)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@24.0.14)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -873,13 +873,13 @@ importers: version: link:../ui-vue '@gsp-svc/cloudprint-vue': specifier: 0.0.2 - version: 0.0.2(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) '@gsp-svc/file-viewer-vue': specifier: 1.0.1 - version: 1.0.1(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 1.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) '@gsp-svc/formdoc-upload-vue': specifier: 1.0.2 - version: 1.0.2(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 1.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -922,7 +922,7 @@ importers: version: 0.4.4(rollup@4.24.0) '@vitejs/plugin-vue': specifier: ^5.1.2 - version: 5.1.4(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.4(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) core-js: specifier: ^3.38.1 version: 3.39.0 @@ -937,7 +937,7 @@ importers: version: 5.12.0(rollup@4.24.0) rollup-plugin-vue: specifier: ^6.0.0 - version: 6.0.0(@vue/compiler-sfc@3.5.17) + version: 6.0.0(@vue/compiler-sfc@3.5.18) tslib: specifier: ^2.7.0 version: 2.8.0 @@ -946,10 +946,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.1 - version: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@24.0.14)(rollup@4.24.0)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) vue-tsc: specifier: ^2.0.29 version: 2.1.6(typescript@5.6.3) @@ -967,7 +967,7 @@ importers: version: link:../ui-vue '@gsp-wf/wf-bizprocess-lookup-vue': specifier: 0.0.2 - version: 0.0.2(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) '@monaco-editor/loader': specifier: ^1.4.0 version: 1.4.0(monaco-editor@0.52.2) @@ -995,7 +995,7 @@ importers: version: 7.25.7 '@commitlint/cli': specifier: ^19.3.0 - version: 19.5.0(@types/node@24.0.14)(typescript@4.9.5) + version: 19.5.0(@types/node@20.5.1)(typescript@4.9.5) '@commitlint/config-conventional': specifier: ^19.2.0 version: 19.5.0 @@ -1019,16 +1019,16 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.28.0) @@ -1064,7 +1064,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -1082,10 +1082,10 @@ importers: version: 4.9.5 vite: specifier: ^4.4.1 - version: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) @@ -1094,7 +1094,7 @@ importers: version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.33.0)(@types/node@24.0.14)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1176,10 +1176,10 @@ importers: version: 26.0.24 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) @@ -1272,7 +1272,7 @@ importers: version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1287,10 +1287,10 @@ importers: dependencies: '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) echarts: specifier: ^5.5.0 version: 5.5.1 @@ -1299,41 +1299,41 @@ importers: version: 5.17.1 eslint-config-airbnb-base: specifier: ^15.0.0 - version: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)) + version: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.19.0(jiti@2.5.1)))(eslint@9.19.0(jiti@2.5.1)) eslint-config-prettier: specifier: ^8.5.0 - version: 8.10.0(eslint@9.19.0(jiti@2.4.2)) + version: 8.10.0(eslint@9.19.0(jiti@2.5.1)) eslint-plugin-import: specifier: ^2.26.0 - version: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.19.0(jiti@2.4.2)) + version: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.19.0(jiti@2.5.1)) eslint-plugin-vue: specifier: ^9.4.0 - version: 9.29.1(eslint@9.19.0(jiti@2.4.2)) + version: 9.29.1(eslint@9.19.0(jiti@2.5.1)) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@4.9.5) devDependencies: '@vitejs/plugin-vue': specifier: ^3.1.0 - version: 3.2.0(vite@3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^2.0.1 - version: 2.1.1(vite@3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 2.1.1(vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) eslint: specifier: ^9.19.0 - version: 9.19.0(jiti@2.4.2) + version: 9.19.0(jiti@2.5.1) typescript: specifier: ^4.8.2 version: 4.9.5 vite: specifier: ^3.1.0 - version: 3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + version: 3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) vue-tsc: specifier: ^0.40.4 version: 0.40.13(typescript@4.9.5) @@ -1366,7 +1366,7 @@ importers: version: 5.12.0(rollup@4.24.0) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.0.14)(typescript@5.6.3) + version: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) tslib: specifier: ^2.7.0 version: 2.8.0 @@ -1403,7 +1403,7 @@ importers: version: 7.25.7 '@commitlint/cli': specifier: ^19.3.0 - version: 19.5.0(@types/node@24.0.14)(typescript@4.9.5) + version: 19.5.0(@types/node@20.5.1)(typescript@4.9.5) '@commitlint/config-conventional': specifier: ^19.2.0 version: 19.5.0 @@ -1427,16 +1427,16 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.28.0) @@ -1472,7 +1472,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -1490,10 +1490,10 @@ importers: version: 4.9.5 vite: specifier: ^4.4.1 - version: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) @@ -1502,7 +1502,7 @@ importers: version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.33.0)(@types/node@24.0.14)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1630,16 +1630,16 @@ importers: version: 26.0.24 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.28.0) @@ -1678,7 +1678,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -1711,10 +1711,10 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) @@ -1723,7 +1723,7 @@ importers: version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.33.0)(@types/node@24.0.14)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1778,19 +1778,19 @@ importers: version: 26.0.24 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vue/compiler-sfc': specifier: ^3.2.0 version: 3.5.12 '@vue/eslint-config-prettier': specifier: ^9.0.0 - version: 9.0.0(eslint@9.31.0(jiti@2.4.2))(prettier@3.5.3) + version: 9.0.0(eslint@9.32.0(jiti@2.5.1))(prettier@3.5.3) '@vue/eslint-config-typescript': specifier: ^13.0.0 - version: 13.0.0(eslint-plugin-vue@9.29.1(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 13.0.0(eslint-plugin-vue@9.29.1(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vue/test-utils': specifier: ^2.0.0 version: 2.4.6 @@ -1805,7 +1805,7 @@ importers: version: 2.2.2 eslint-plugin-vue: specifier: ^9.23.0 - version: 9.29.1(eslint@9.31.0(jiti@2.4.2)) + version: 9.29.1(eslint@9.32.0(jiti@2.5.1)) jest: specifier: ^29.0.0 version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) @@ -1842,7 +1842,7 @@ importers: version: 17.8.1 '@docsearch/js': specifier: 3.6.0 - version: 3.6.0(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + version: 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) '@farris/cli': specifier: workspace:* version: link:../cli @@ -1857,10 +1857,10 @@ importers: version: 26.0.24 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vue/compiler-sfc': specifier: ^3.2.0 version: 3.5.12 @@ -1884,7 +1884,7 @@ importers: version: 2.2.2 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) patch-vue-directive-ssr: specifier: ^0.0.1 version: 0.0.1 @@ -1896,7 +1896,7 @@ importers: version: 4.9.5 vitepress: specifier: 1.0.0-alpha.10 - version: 1.0.0-alpha.10(@algolia/client-search@5.33.0)(@types/node@24.0.14)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(typescript@4.9.5) @@ -1911,7 +1911,7 @@ importers: dependencies: '@edp-bif/runtime-api-vue': specifier: 0.0.1 - version: 0.0.1(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0)) + version: 0.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) '@farris/bef-vue': specifier: workspace:^ version: link:../bef @@ -1932,10 +1932,19 @@ importers: version: link:../ui-vue '@gsp-dip/data-imp-exp-vue': specifier: 0.0.1 - version: 0.0.1(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + '@gsp-svc/cloudprint-vue': + specifier: 0.0.2 + version: 0.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + '@gsp-svc/file-viewer-vue': + specifier: 1.0.1 + version: 1.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + '@gsp-svc/formdoc-upload-vue': + specifier: 1.0.1 + version: 1.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) '@gsp-wf/wf-task-handler-vue': specifier: 0.0.1 - version: 0.0.1(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0)) + version: 0.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) '@types/lodash-es': specifier: ^4.17.4 version: 4.17.12 @@ -2002,16 +2011,16 @@ importers: version: 26.0.24 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.28.0) @@ -2047,7 +2056,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -2065,13 +2074,13 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) @@ -2080,7 +2089,7 @@ importers: version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.33.0)(@types/node@24.0.14)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -2141,7 +2150,7 @@ importers: version: 0.4.4(rollup@4.24.0) '@vitejs/plugin-vue': specifier: ^5.1.2 - version: 5.1.4(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.4(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) core-js: specifier: ^3.38.1 version: 3.39.0 @@ -2156,7 +2165,7 @@ importers: version: 5.12.0(rollup@4.24.0) rollup-plugin-vue: specifier: ^6.0.0 - version: 6.0.0(@vue/compiler-sfc@3.5.17) + version: 6.0.0(@vue/compiler-sfc@3.5.18) tslib: specifier: ^2.7.0 version: 2.8.0 @@ -2165,10 +2174,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.1 - version: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@24.0.14)(rollup@4.24.0)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) vue-tsc: specifier: ^2.0.29 version: 2.1.6(typescript@5.6.3) @@ -2177,7 +2186,7 @@ importers: dependencies: '@docsearch/js': specifier: 3.6.0 - version: 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + version: 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) '@farris/designer-dragula': specifier: 0.0.5 version: 0.0.5 @@ -2219,13 +2228,13 @@ importers: version: 7.8.1 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@5.6.3) vue-i18n: specifier: '11' - version: 11.1.10(vue@3.5.12(typescript@5.6.3)) + version: 11.1.11(vue@3.5.12(typescript@5.6.3)) devDependencies: '@babel/parser': specifier: ^7.19.0 @@ -2262,10 +2271,10 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^7.15.0 - version: 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) @@ -2337,7 +2346,7 @@ importers: version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) @@ -2393,145 +2402,100 @@ packages: '@algolia/cache-browser-local-storage@4.24.0': resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} - '@algolia/cache-browser-local-storage@4.25.2': - resolution: {integrity: sha512-tA1rqAafI+gUdewjZwyTsZVxesl22MTgLWRKt1+TBiL26NiKx7SjRqTI3pzm8ngx1ftM5LSgXkVIgk2+SRgPTg==} - '@algolia/cache-common@4.24.0': resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} - '@algolia/cache-common@4.25.2': - resolution: {integrity: sha512-E+aZwwwmhvZXsRA1+8DhH2JJIwugBzHivASTnoq7bmv0nmForLyH7rMG5cOTiDK36DDLnKq1rMGzxWZZ70KZag==} - '@algolia/cache-in-memory@4.24.0': resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} - '@algolia/cache-in-memory@4.25.2': - resolution: {integrity: sha512-KYcenhfPKgR+WJ6IEwKVEFMKKCWLZdnYuw08+3Pn1cxAXbJcTIKjoYgEXzEW6gJmDaau2l55qNrZo6MBbX7+sw==} - - '@algolia/client-abtesting@5.33.0': - resolution: {integrity: sha512-Pyv+iHkkq7BJWFKzdrXm/JSbcTGvrGqJnIMwHYYlKDjuEBWhYt/z4WDLP9MbFZ9cTKb4qe8OvzEmS/0ERW3ibg==} + '@algolia/client-abtesting@5.34.1': + resolution: {integrity: sha512-M4zb6J7q+pg9V9Xk0k1WDgvupfCtXcxjKGTrNVYemiredLVGOmvVIPAUjg2rx4QmK7DWNApWLsieYwk7PAaOXw==} engines: {node: '>= 14.0.0'} '@algolia/client-account@4.24.0': resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==} - '@algolia/client-account@4.25.2': - resolution: {integrity: sha512-IfRGhBxvjli9mdexrCxX2N4XT9NBN3tvZK5zCaL8zkDcgsthiM9WPvGIZS/pl/FuXB7hA0lE5kqOzsQDP6OmGQ==} - '@algolia/client-analytics@4.24.0': resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} - '@algolia/client-analytics@4.25.2': - resolution: {integrity: sha512-4Yxxhxh+XjXY8zPyo+h6tQuyoJWDBn8E3YLr8j+YAEy5p+r3/5Tp+ANvQ+hNaQXbwZpyf5d4ViYOBjJ8+bWNEg==} - - '@algolia/client-analytics@5.33.0': - resolution: {integrity: sha512-qkRc7ovjWQQJng6U1yM5esLPNDB0leGCaOh3FEfeWRyLB0xnjLsBEUkKanYq9GrewPvi17l78nDhkqB2SYzTCw==} + '@algolia/client-analytics@5.34.1': + resolution: {integrity: sha512-h18zlL+bVUlbNE92olo1d/r6HQPkxhmP7yCpA1osERwpgC6F058kWm0O0aYdrHJIHtWBcs9aRqq7IkQSkpjPJg==} engines: {node: '>= 14.0.0'} '@algolia/client-common@4.24.0': resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} - '@algolia/client-common@4.25.2': - resolution: {integrity: sha512-HXX8vbJPYW29P18GxciiwaDpQid6UhpPP9nW9WE181uGUgFhyP5zaEkYWf9oYBrjMubrGwXi5YEzJOz6Oa4faA==} - - '@algolia/client-common@5.33.0': - resolution: {integrity: sha512-Gq8Z4Fv0DkqDkf/bZl7ZwIF7PSCnRFwpyQoNDnUg+s4SwerXx6VwZJlIx/t5b9+l7vwWsjnKVivCfM4Ab5gw+g==} + '@algolia/client-common@5.34.1': + resolution: {integrity: sha512-otPWALs72KvmVuP0CN0DI6sqVx1jQWKi+/DgAiP8DysVMgiNlva3GDKTtAK6XVGlT08f4h32FNuL0yQODuCfKA==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.33.0': - resolution: {integrity: sha512-/tp1oWD3lpSXhAC4n8j0GMDbmN6pd+pATeO1GeURAFP5TVF+2Jz+NbQ1et0uCTzdazOfjEjSIv0fQSLo7bqSgA==} + '@algolia/client-insights@5.34.1': + resolution: {integrity: sha512-SNDb5wuEpQFM6S5Shk2iytLMusvGycm9uTuYh7cGa1h3U7O65OjjjIgQ0lLY5HPybHNtmXr4Zh/EZ23pZvAJHg==} engines: {node: '>= 14.0.0'} '@algolia/client-personalization@4.24.0': resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} - '@algolia/client-personalization@4.25.2': - resolution: {integrity: sha512-K81PRaHF77mHv2u8foWTHnIf5c+QNf/SnKNM7rB8JPi7TMYi4E5o2mFbgdU1ovd8eg9YMOEAuLkl1Nz1vbM3zQ==} - - '@algolia/client-personalization@5.33.0': - resolution: {integrity: sha512-hZNSqe2BXkrBQ04t5NSlqsNl4u0QrFfhXHbjO5iZ14TWt5jyOdtFMBxF3Qc0o0sqTVYnFIp0xtUbEi+/HkGeyQ==} + '@algolia/client-personalization@5.34.1': + resolution: {integrity: sha512-T8z9KqYJOup83Hw0mgICYWfJoLh//FNWbf4roFd95ZJzZ4v1cN/hvr7Eqml1qWMoCkJb4y/XQjrXsJ6Y9XnMLw==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.33.0': - resolution: {integrity: sha512-kpu2hCIR+848T0lcf3W1GCMe+HQp/LcHceIglA6Dyw6i+y9wH3w8kmXqIV2Svv6JQ9ojEqIL8Knk7NEvD3xIBg==} + '@algolia/client-query-suggestions@5.34.1': + resolution: {integrity: sha512-YA0kC4CwO1mc1dliNgbFgToweRa7Uihjz3izEaV4cXninF1v4SaOrPkQUsiFPprAffjMzOUoT7vahQZ/HZyiKQ==} engines: {node: '>= 14.0.0'} '@algolia/client-search@4.24.0': resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} - '@algolia/client-search@4.25.2': - resolution: {integrity: sha512-pO/LpVnQlbJpcHRk+AroWyyFnh01eOlO6/uLZRUmYvr/hpKZKxI6n7ufgTawbo0KrAu2CePfiOkStYOmDuRjzQ==} - - '@algolia/client-search@5.33.0': - resolution: {integrity: sha512-Z5SAqPLxF8KyE9YPO4tAdHrXyb87DUJ0lXhFrcrG+dl/AQT9nqycQhtqDqdcQnfZrj02PImSWZQpxQj34nGZKw==} + '@algolia/client-search@5.34.1': + resolution: {integrity: sha512-bt5hC9vvjaKvdvsgzfXJ42Sl3qjQqoi/FD8V7HOQgtNFhwSauZOlgLwFoUiw67sM+r7ehF7QDk5WRDgY7fAkIg==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.33.0': - resolution: {integrity: sha512-KNJI60N+twnDLiIY+oGO2Q+syS+yBNOmNdhsB5vCzzrhi3CYs+bufnJ67/BUUfnt+T5+3VlnkvUgDkGBmmZXmA==} + '@algolia/ingestion@1.34.1': + resolution: {integrity: sha512-QLxiBskQxFGzPqKZvBNEvNN95kgDCbBd2X29ZGfh6Sr2QOSU34US6Z9x2duiF4o9FwsB0i6eQ2c9vHfuH0lAQg==} engines: {node: '>= 14.0.0'} '@algolia/logger-common@4.24.0': resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} - '@algolia/logger-common@4.25.2': - resolution: {integrity: sha512-aUXpcodoIpLPsnVc2OHgC9E156R7yXWLW2l+Zn24Cyepfq3IvmuVckBvJDpp7nPnXkEzeMuvnVxQfQsk+zP/BA==} - '@algolia/logger-console@4.24.0': resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} - '@algolia/logger-console@4.25.2': - resolution: {integrity: sha512-H3Y+UB0Ty0htvMJ6zDSufhFTSDlg3Pyj3AXilfDdDRcvfhH4C/cJNVm+CTaGORxL5uKABGsBp+SZjsEMTyAunQ==} - - '@algolia/monitoring@1.33.0': - resolution: {integrity: sha512-47R0kMDTSj8Q7rCUgIRv5Xc518tCBBS0KIZ5oRKg+hspQaJmEO+fxwGLrIIwp5JiaK6y+5sbS7bhtaajelJhpg==} + '@algolia/monitoring@1.34.1': + resolution: {integrity: sha512-NteCvWcWXXdnPGyZH8rXHslcf2pM1WGDNMGNZFXLFtOt1Gf1Tjy2t0NZLp+Mxap3JMV4mbYmactbXrvpQf/lLA==} engines: {node: '>= 14.0.0'} '@algolia/recommend@4.24.0': resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} - '@algolia/recommend@4.25.2': - resolution: {integrity: sha512-puRrGeXwAuVa4mLdvXvmxHRFz9MkcCOLPcjz7MjU4NihlpIa+lZYgikJ7z0SUAaYgd6l5Bh00hXiU/OlX5ffXQ==} - - '@algolia/recommend@5.33.0': - resolution: {integrity: sha512-HpeLoVQuv5kW9xL0RSq1exa8ueNwyx+9B02dzFonlQzKTaSedM0jiWo6m3nWpi1hChAKqjzkL40FkxrgyrWTSg==} + '@algolia/recommend@5.34.1': + resolution: {integrity: sha512-UdgDSrunLIBAAAxQlYLXYLnYFN4wkzkrAYx+wMLEk/pzASWyza3BkecbUFVqoYOBIgwo7Mt4iymzVtFkzL2uCQ==} engines: {node: '>= 14.0.0'} '@algolia/requester-browser-xhr@4.24.0': resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} - '@algolia/requester-browser-xhr@4.25.2': - resolution: {integrity: sha512-aAjfsI0AjWgXLh/xr9eoR8/9HekBkIER3bxGoBf9d1XWMMoTo/q92Da2fewkxwLE6mla95QJ9suJGOtMOewXXQ==} - - '@algolia/requester-browser-xhr@5.33.0': - resolution: {integrity: sha512-uOqDkvY7s9c9rkaZ4+n69LkTmZ5ax3el+8u6ipvODfj1P3HzrGvMUVFy/nGSXxw+XITKcIRphPQcyqn15b02dA==} + '@algolia/requester-browser-xhr@5.34.1': + resolution: {integrity: sha512-567LfFTc9VOiPtuySQohoqaWMeohYWbXK71aMSin+SLMgeKX7hz5LrVmkmMQj9udwWK6/mtHEYZGPYHSuXpLQg==} engines: {node: '>= 14.0.0'} '@algolia/requester-common@4.24.0': resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} - '@algolia/requester-common@4.25.2': - resolution: {integrity: sha512-Q4wC3sgY0UFjV3Rb3icRLTpPB5/M44A8IxzJHM9PNeK1T3iX7X/fmz7ATUYQYZTpwHCYATlsQKWiTpql1hHjVg==} - - '@algolia/requester-fetch@5.33.0': - resolution: {integrity: sha512-NzTEGjwjPhUXPsrjj9nXM43+jtBVeL6UgGNBTQKsxjpqJ3EEAQ2Kq5g7DRK6mVDTQiTBWvBLKChJpn4qxwtLsg==} + '@algolia/requester-fetch@5.34.1': + resolution: {integrity: sha512-YRbygPgGBEik5U593JvyjgxFjcsyZMR25eIQxNHvSQumdAzt5A4E4Idw3yXnwhrmMdjML54ZXT7EAjnTjWy8Xw==} engines: {node: '>= 14.0.0'} '@algolia/requester-node-http@4.24.0': resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} - '@algolia/requester-node-http@4.25.2': - resolution: {integrity: sha512-Ja/FYB7W9ZM+m8UrMIlawNUAKpncvb9Mo+D8Jq5WepGTUyQ9CBYLsjwxv9O8wbj3TSWqTInf4uUBJ2FKR8G7xw==} - - '@algolia/requester-node-http@5.33.0': - resolution: {integrity: sha512-FhEE19ScAYuXL3VLj2I3KhL7683gZwZoa+BQZUEnA05vSbVBhCAqUBQgiVu7j2RF3VceqLX3+GEeY0bHs4y7eA==} + '@algolia/requester-node-http@5.34.1': + resolution: {integrity: sha512-o0mqRYbS82Rt4DE02Od7RL6pNtV7oSxScPuIw8LW4aqO2V5eCF05Pry/SnUgcI/Vb2QCYC66hytBCqzyC/toZA==} engines: {node: '>= 14.0.0'} '@algolia/transporter@4.24.0': resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} - '@algolia/transporter@4.25.2': - resolution: {integrity: sha512-yw3RLHWc6V+pbdsFtq8b6T5bJqLDqnfKWS7nac1Vzcmgvs/V/Lfy7/6iOF9XRilu5aBDOBHoP1SOeIDghguzWw==} - '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -2753,8 +2717,8 @@ packages: resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': - resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + '@babel/helpers@7.28.2': + resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.25.7': @@ -3626,10 +3590,6 @@ packages: resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.27.6': - resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} - engines: {node: '>=6.9.0'} - '@babel/template@7.25.7': resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} @@ -3653,15 +3613,15 @@ packages: resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.1': - resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} + '@babel/types@7.28.2': + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bufbuild/protobuf@2.6.0': - resolution: {integrity: sha512-6cuonJVNOIL7lTj5zgo/Rc2bKAo4/GvN+rKCrUj7GdEHRzCk8zKOfFwUsL9nAVk5rSIsRmlgcpLzTRysopEeeg==} + '@bufbuild/protobuf@2.2.0': + resolution: {integrity: sha512-+imAQkHf7U/Rwvu0wk1XWgsP3WnpCWmK7B48f0XqSNzgk64+grljTKC7pnO/xBiEMUziF7vKRfbBnOQhg126qQ==} '@changesets/apply-release-plan@7.0.12': resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} @@ -4512,6 +4472,10 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -4548,8 +4512,8 @@ packages: resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.31.0': - resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} + '@eslint/js@9.32.0': + resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -4560,8 +4524,8 @@ packages: resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.3': - resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} + '@eslint/plugin-kit@0.3.4': + resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@farris/bef-vue@0.0.2': @@ -4585,9 +4549,6 @@ packages: '@farris/ui-vue@1.5.3': resolution: {integrity: sha512-36IAUj2KLd4kLtzMYRZFx/qWTeXueefMfhf+pmMWIt/I8Ni1X+X1T6EkqaBUYA3S5ltnWf4gHG/Z2YePfgHKWg==} - '@farris/ui-vue@1.5.5': - resolution: {integrity: sha512-w/d+WENP1TMQXbRERHfXrF8D9YHNxw3zQX3ejbVFU+z2KroZ5E6NaixL9vP7VNpr8QLo128jM8NSVYfxvYruVA==} - '@floating-ui/core@1.6.9': resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} @@ -4606,6 +4567,18 @@ packages: '@gsp-dip/data-imp-exp-vue@0.0.1': resolution: {integrity: sha512-pFQLaBIE+uwFgktCINI8OgZzNg9IIVu8TMS9+AP/RMH+nxL7GRV4/FYUA8QL2+qhsDTFAeqDZJbm91gh8zEISw==} + '@gsp-svc/cloudprint-vue@0.0.2': + resolution: {integrity: sha512-yjhAOFRUIKqozgEdOCQQAZN0zuYtnrFe6MBgQ8RBqPeBNW1vsSaQM1LSTj4o8zuSB9Y1PzwpUOn39Pmyg1z0Tw==} + + '@gsp-svc/file-viewer-vue@1.0.1': + resolution: {integrity: sha512-/eZFmvpy5M92Orj/Rla1xZ1ImRujnWUElZYOO7Ae2bVVnlsDLih5OPLNEIUzRj4wyDAYEk+DWBMiW3RLLN57WA==} + + '@gsp-svc/formdoc-upload-vue@1.0.1': + resolution: {integrity: sha512-kGwk4bxQW/C+PPei/a69vPzGG0SaVAyGUfMUqdKUE9KxMjj2jxprr3ReAS8aCORIGdw/3ktGdEyOgbwYajZzRQ==} + + '@gsp-svc/formdoc-upload-vue@1.0.2': + resolution: {integrity: sha512-p7DKPMsIgvredZPL3kh9mefSNdzawsGuR1UzNEYMMofrtffTdTLewAge1VQNHuMFINVuE59Nv3wOZIIRut7K3Q==} + '@gsp-wf/wf-bizprocess-lookup-vue@0.0.2': resolution: {integrity: sha512-T9LrEoM84qf36OpI04BuxA3JuHTrQOtf6edaehyM7OLimiCmbt2lvrawZ2woe/gkxNlqhU9PiOBDtc5urcKHyA==} @@ -4644,14 +4617,14 @@ packages: resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} engines: {node: '>=10.13.0'} - '@iconify-json/simple-icons@1.2.43': - resolution: {integrity: sha512-JERgKGFRfZdyjGyTvVBVW5rftahy9tNUX+P+0QUnbaAEWvEMexXHE9863YVMVrIRhoj/HybGsibg8ZWieo/NDg==} + '@iconify-json/simple-icons@1.2.44': + resolution: {integrity: sha512-CdWgSPygwDlDbKtDWjvi3NtUefnkoepXv90n3dQxJerqzD9kI+nEJOiWUBM+eOyMYQKtxBpLWFBrgeotF0IZKw==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@inquirer/figures@1.0.12': - resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==} + '@inquirer/figures@1.0.7': + resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} engines: {node: '>=18'} '@interactjs/actions@1.10.27': @@ -4727,16 +4700,16 @@ packages: '@interactjs/utils@1.10.27': resolution: {integrity: sha512-+qfLOio2OxQqg1cXSnRaCl+N8MQDQLDS9w+aOGxH8YLAhIMyt7Asxx/46//sT8orgsi16pmlBPtngPHT9s8zKw==} - '@intlify/core-base@11.1.10': - resolution: {integrity: sha512-JhRb40hD93Vk0BgMgDc/xMIFtdXPHoytzeK6VafBNOj6bb6oUZrGamXkBKecMsmGvDQQaPRGG2zpa25VCw8pyw==} + '@intlify/core-base@11.1.11': + resolution: {integrity: sha512-1Z0N8jTfkcD2Luq9HNZt+GmjpFe4/4PpZF3AOzoO1u5PTtSuXZcfhwBatywbfE2ieB/B5QHIoOFmCXY2jqVKEQ==} engines: {node: '>= 16'} - '@intlify/message-compiler@11.1.10': - resolution: {integrity: sha512-TABl3c8tSLWbcD+jkQTyBhrnW251dzqW39MPgEUCsd69Ua3ceoimsbIzvkcPzzZvt1QDxNkenMht+5//V3JvLQ==} + '@intlify/message-compiler@11.1.11': + resolution: {integrity: sha512-7PC6neomoc/z7a8JRjPBbu0T2TzR2MQuY5kn2e049MP7+o32Ve7O8husylkA7K9fQRe4iNXZWTPnDJ6vZdtS1Q==} engines: {node: '>= 16'} - '@intlify/shared@11.1.10': - resolution: {integrity: sha512-6ZW/f3Zzjxfa1Wh0tYQI5pLKUtU+SY7l70pEG+0yd0zjcsYcK0EBt6Fz30Dy0tZhEqemziQQy2aNU3GJzyrMUA==} + '@intlify/shared@11.1.11': + resolution: {integrity: sha512-RIBFTIqxZSsxUqlcyoR7iiC632bq7kkOwYvZlvcVObHfrF4NhuKc4FKvu8iPCrEO+e3XsY7/UVpfgzg+M7ETzA==} engines: {node: '>= 16'} '@isaacs/balanced-match@4.0.1': @@ -4850,9 +4823,6 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/sourcemap-codec@1.5.4': - resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -4866,9 +4836,12 @@ packages: resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} engines: {node: '>=10'} - '@ls-lint/ls-lint@2.2.3': - resolution: {integrity: sha512-ekM12jNm/7O2I/hsRv9HvYkRdfrHpiV1epVuI2NP+eTIcEgdIdKkKCs9KgQydu/8R5YXTov9aHdOgplmCHLupw==} - cpu: [x64, arm64, s390x] + '@keyv/serialize@1.1.0': + resolution: {integrity: sha512-RlDgexML7Z63Q8BSaqhXdCYNBy/JQnqYIwxofUrNLGCblOMHp+xux2Q8nLMLlPpgHQPoU0Do8Z6btCpRBEqZ8g==} + + '@ls-lint/ls-lint@2.3.1': + resolution: {integrity: sha512-vPe6IDByQnQRTxcAYjTxrmga/tSIui50VBFTB5KIJWY3OOFmxE2VtymjeSEfQfiMbhZV/ZPAqYy2lt8pZFQ0Rw==} + cpu: [x64, arm64, s390x, ppc64le] os: [darwin, linux, win32] hasBin: true @@ -4936,48 +4909,24 @@ packages: cpu: [arm64] os: [android] - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - '@parcel/watcher-darwin-arm64@2.4.1': resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - '@parcel/watcher-darwin-x64@2.4.1': resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - '@parcel/watcher-freebsd-x64@2.4.1': resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - '@parcel/watcher-linux-arm-glibc@2.4.1': resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} engines: {node: '>= 10.0.0'} @@ -4985,20 +4934,6 @@ packages: os: [linux] libc: [glibc] - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - libc: [musl] - '@parcel/watcher-linux-arm64-glibc@2.4.1': resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} engines: {node: '>= 10.0.0'} @@ -5006,13 +4941,6 @@ packages: os: [linux] libc: [glibc] - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@parcel/watcher-linux-arm64-musl@2.4.1': resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} engines: {node: '>= 10.0.0'} @@ -5020,13 +4948,6 @@ packages: os: [linux] libc: [musl] - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - '@parcel/watcher-linux-x64-glibc@2.4.1': resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} engines: {node: '>= 10.0.0'} @@ -5034,13 +4955,6 @@ packages: os: [linux] libc: [glibc] - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - '@parcel/watcher-linux-x64-musl@2.4.1': resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} engines: {node: '>= 10.0.0'} @@ -5048,57 +4962,28 @@ packages: os: [linux] libc: [musl] - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] - '@parcel/watcher-win32-arm64@2.4.1': resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - '@parcel/watcher-win32-ia32@2.4.1': resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - '@parcel/watcher-win32-x64@2.4.1': resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - '@parcel/watcher@2.4.1': resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} engines: {node: '>= 10.0.0'} - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -5114,11 +4999,11 @@ packages: '@polka/url@0.5.0': resolution: {integrity: sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==} - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - '@rolldown/pluginutils@1.0.0-beta.27': - resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + '@rolldown/pluginutils@1.0.0-beta.29': + resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} '@rollup/plugin-babel@6.0.4': resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==} @@ -5191,15 +5076,6 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.2.0': - resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/rollup-android-arm-eabi@4.24.0': resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] @@ -5572,32 +5448,24 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} '@types/chai-subset@1.3.5': resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} - '@types/chai-subset@1.3.6': - resolution: {integrity: sha512-m8lERkkQj+uek18hXOZuec3W/fCRTrU4hrnXjH3qhHy96ytuPaPiWGgu7sJb7tZxZonO75vYAjCvpe/e4VUwRw==} - peerDependencies: - '@types/chai': <5.2.0 - '@types/chai@4.3.20': resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} - '@types/conventional-commits-parser@5.0.1': - resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} - '@types/crypto-js@4.2.2': resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} @@ -5673,6 +5541,9 @@ packages: '@types/lodash.debounce@4.0.9': resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} + '@types/lodash@4.17.12': + resolution: {integrity: sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==} + '@types/lodash@4.17.20': resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} @@ -5697,23 +5568,23 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@18.19.119': - resolution: {integrity: sha512-d0F6m9itIPaKnrvEMlzE48UjwZaAnFW7Jwibacw9MNdqadjKNpUm9tfJYDwmShJmgqcoqYUX3EMKO1+RWiuuNg==} + '@types/node@18.19.120': + resolution: {integrity: sha512-WtCGHFXnVI8WHLxDAt5TbnCM4eSE+nI0QN2NJtwzcgMhht2eNz6V9evJrk+lwC8bCY8OWV5Ym8Jz7ZEyGnKnMA==} + + '@types/node@18.19.57': + resolution: {integrity: sha512-I2ioBd/IPrYDMv9UNR5NlPElOZ68QB7yY5V2EsLtSrTO0LM0PnCEFF9biLWHf5k+sIy4ohueCV9t4gk1AEdlVA==} '@types/node@20.5.1': resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} - '@types/node@24.0.14': - resolution: {integrity: sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==} - '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/semver@7.7.0': - resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -5748,9 +5619,8 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@types/zrender@5.0.0': - resolution: {integrity: sha512-70NLuJssk1cp5+8l18zk/z6kpcxKw4/vTbeFKh0R1TIv7/XF7+U7wkGvUOCEzIJv3Px3L1HaUM5ASP0mqKJPKQ==} - deprecated: This is a stub types definition. zrender provides its own type definitions, so you do not need this installed. + '@types/zrender@4.0.6': + resolution: {integrity: sha512-1jZ9bJn2BsfmYFPBHtl5o3uV+ILejAtGrDcYSpT4qaVKEI/0YY+arw3XHU04Ebd8Nca3SQ7uNcLaqiL+tTFVMg==} '@typescript-eslint/eslint-plugin@7.18.0': resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} @@ -5763,11 +5633,11 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.37.0': - resolution: {integrity: sha512-jsuVWeIkb6ggzB+wPCsR4e6loj+rM72ohW6IBn2C+5NCvfUVY8s33iFPySSVXqtm5Hu29Ne/9bnA0JmyLmgenA==} + '@typescript-eslint/eslint-plugin@8.38.0': + resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.37.0 + '@typescript-eslint/parser': ^8.38.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' @@ -5781,15 +5651,15 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.37.0': - resolution: {integrity: sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==} + '@typescript-eslint/parser@8.38.0': + resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.37.0': - resolution: {integrity: sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==} + '@typescript-eslint/project-service@8.38.0': + resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' @@ -5798,12 +5668,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.37.0': - resolution: {integrity: sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==} + '@typescript-eslint/scope-manager@8.38.0': + resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.37.0': - resolution: {integrity: sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==} + '@typescript-eslint/tsconfig-utils@8.38.0': + resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' @@ -5818,8 +5688,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.37.0': - resolution: {integrity: sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==} + '@typescript-eslint/type-utils@8.38.0': + resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5829,8 +5699,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.37.0': - resolution: {integrity: sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==} + '@typescript-eslint/types@8.38.0': + resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -5842,8 +5712,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.37.0': - resolution: {integrity: sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==} + '@typescript-eslint/typescript-estree@8.38.0': + resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' @@ -5854,8 +5724,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.37.0': - resolution: {integrity: sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==} + '@typescript-eslint/utils@8.38.0': + resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5865,8 +5735,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.37.0': - resolution: {integrity: sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==} + '@typescript-eslint/visitor-keys@8.38.0': + resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -6047,26 +5917,26 @@ packages: '@vue/compiler-core@3.5.12': resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} - '@vue/compiler-core@3.5.17': - resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==} + '@vue/compiler-core@3.5.18': + resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==} '@vue/compiler-dom@3.5.12': resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} - '@vue/compiler-dom@3.5.17': - resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==} + '@vue/compiler-dom@3.5.18': + resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==} '@vue/compiler-sfc@3.5.12': resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} - '@vue/compiler-sfc@3.5.17': - resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==} + '@vue/compiler-sfc@3.5.18': + resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==} '@vue/compiler-ssr@3.5.12': resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} - '@vue/compiler-ssr@3.5.17': - resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==} + '@vue/compiler-ssr@3.5.18': + resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -6130,30 +6000,30 @@ packages: '@vue/reactivity@3.5.12': resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} - '@vue/reactivity@3.5.17': - resolution: {integrity: sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==} + '@vue/reactivity@3.5.18': + resolution: {integrity: sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==} '@vue/runtime-core@3.5.12': resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} - '@vue/runtime-core@3.5.17': - resolution: {integrity: sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==} + '@vue/runtime-core@3.5.18': + resolution: {integrity: sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==} '@vue/runtime-dom@3.5.12': resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} - '@vue/runtime-dom@3.5.17': - resolution: {integrity: sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==} + '@vue/runtime-dom@3.5.18': + resolution: {integrity: sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==} '@vue/server-renderer@3.5.12': resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} peerDependencies: vue: 3.5.12 - '@vue/server-renderer@3.5.17': - resolution: {integrity: sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==} + '@vue/server-renderer@3.5.18': + resolution: {integrity: sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==} peerDependencies: - vue: 3.5.17 + vue: 3.5.18 '@vue/shared@3.2.38': resolution: {integrity: sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==} @@ -6161,8 +6031,8 @@ packages: '@vue/shared@3.5.12': resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} - '@vue/shared@3.5.17': - resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==} + '@vue/shared@3.5.18': + resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==} '@vue/test-utils@2.4.6': resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} @@ -6300,6 +6170,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -6347,11 +6222,8 @@ packages: algoliasearch@4.24.0: resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} - algoliasearch@4.25.2: - resolution: {integrity: sha512-lYx98L6kb1VvXypbPI7Z54C4BJB2VT5QvOYthvPq6/POufZj+YdyeZSKjoLBKHJgGmYWQTHOKtcCTdKf98WOCA==} - - algoliasearch@5.33.0: - resolution: {integrity: sha512-WdgSkmyTec5n2W2FA2/7Q7TCSajCV0X6w57u3H5GHnw0UCp/G5xb33/Jx1FX3uMtz17P3wGEzMCP82d0LJqMow==} + algoliasearch@5.34.1: + resolution: {integrity: sha512-s70HlfBgswgEdmCYkUJG8i/ULYhbkk8N9+N8JsWUwszcp7eauPEr5tIX4BY0qDGeKWQ/qZvmt4mxwTusYY23sg==} engines: {node: '>= 14.0.0'} alien-signals@1.0.13: @@ -6649,6 +6521,9 @@ packages: axios@0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + axios@1.10.0: + resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==} + axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} @@ -6812,11 +6687,11 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} braces@1.8.5: resolution: {integrity: sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==} @@ -6900,8 +6775,8 @@ packages: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} - cacheable@1.10.1: - resolution: {integrity: sha512-Fa2BZY0CS9F0PFc/6aVA6tgpOdw+hmv9dkZOlHXII5v5Hw+meJBIWDcPrG9q/dXxGcNbym5t77fzmawrBQfTmQ==} + cacheable@1.10.3: + resolution: {integrity: sha512-M6p10iJ/VT0wT7TLIGUnm958oVrU2cUK8pQAVU21Zu7h8rbk/PeRtRWrvHJBql97Bhzk3g1N6+2VKC+Rjxna9Q==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -7020,16 +6895,12 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@1.4.1: + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} @@ -7219,8 +7090,8 @@ packages: resolution: {integrity: sha512-F3RxWLU4UNfNYFVNwCK58HwQnv/5drvUW176FC//3i0pwpdahoZxMM7dkxWuA2MEafqfwDc+iudk70Sx/VMUIw==} engines: {node: '>= 4.0.0'} - compression@1.8.0: - resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} engines: {node: '>= 0.8.0'} computeds@0.0.1: @@ -7380,8 +7251,8 @@ packages: engines: {node: '>=10'} hasBin: true - conventional-changelog-writer@8.2.0: - resolution: {integrity: sha512-Y2aW4596l9AEvFJRwFGJGiQjt2sBYTjPD18DdvxX9Vpz0Z7HQ+g1Z+6iYDAm1vR3QOJrDBkRHixHK/+FhkR6Pw==} + conventional-changelog-writer@8.0.0: + resolution: {integrity: sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==} engines: {node: '>=18'} hasBin: true @@ -7416,8 +7287,8 @@ packages: engines: {node: '>=16'} hasBin: true - conventional-commits-parser@6.2.0: - resolution: {integrity: sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==} + conventional-commits-parser@6.0.0: + resolution: {integrity: sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==} engines: {node: '>=18'} hasBin: true @@ -7537,10 +7408,14 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-spawn@6.0.6: - resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} + cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -7555,8 +7430,8 @@ packages: css-node-extract@2.1.3: resolution: {integrity: sha512-E7CzbC0I4uAs2dI8mPCVe+K37xuja5kjIugOotpwICFL7vzhmFMAPHvS/MF9gFrmv8DDUANsxrgyT/I3OLukcw==} - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} css-selector-extract@3.3.6: resolution: {integrity: sha512-bBI8ZJKKyR9iHvxXb4t3E6WTMkis94eINopVg7y2FmmMjLXUVduD7mPEcADi4i9FX4wOypFMFpySX+0keuefxg==} @@ -7573,8 +7448,8 @@ packages: resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} css.escape@1.5.1: @@ -7704,15 +7579,15 @@ packages: resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} engines: {node: '>=10'} - decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -7863,8 +7738,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dot-case@2.1.1: resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} @@ -7915,8 +7790,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.185: - resolution: {integrity: sha512-dYOZfUk57hSMPePoIQ1fZWl1Fkj+OshhEVuPacNKWzC1efe56OsHY3l/jCfiAgIICOU3VgOIdoq7ahg7r7n6MQ==} + electron-to-chromium@1.5.191: + resolution: {integrity: sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==} electron-to-chromium@1.5.41: resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} @@ -7948,8 +7823,8 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} @@ -7970,10 +7845,6 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -8016,6 +7887,10 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} @@ -8497,8 +8372,8 @@ packages: jiti: optional: true - eslint@9.31.0: - resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} + eslint@9.32.0: + resolution: {integrity: sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -8666,15 +8541,15 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -8690,8 +8565,8 @@ packages: picomatch: optional: true - file-entry-cache@10.1.1: - resolution: {integrity: sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==} + file-entry-cache@10.1.3: + resolution: {integrity: sha512-D+w75Ub8T55yor7fPgN06rkCAUbAYw2vpxJmmjv/GDAcvCnv9g7IvHhIZoxzRZThrXPFI2maeY24pPbtyYU7Lg==} file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -8727,8 +8602,8 @@ packages: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} find-up@1.1.2: @@ -8775,8 +8650,11 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.11: - resolution: {integrity: sha512-zfOAns94mp7bHG/vCn9Ru2eDCmIxVQ5dELUHKjHfDEOJmHNzE+uGa6208kfkgmtym4a0FFjEuFksCXFacbVhSg==} + flat-cache@6.1.12: + resolution: {integrity: sha512-U+HqqpZPPXP5d24bWuRzjGqVqUcw64k4nZAbruniDwdRg0H10tvN7H6ku1tjhA4rg5B9GS3siEvwO2qjJJ6f8Q==} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -8830,16 +8708,12 @@ packages: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} - form-data@4.0.3: - resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} - engines: {node: '>= 6'} - forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - fp-ts@2.16.10: - resolution: {integrity: sha512-vuROzbNVfCmUkZSUbnWSltR1sbheyQbTzug7LB/46fEa1c0EucLeBaCEUE0gF3ZGUGBt9lVUiziGOhhj6K1ORA==} + fp-ts@2.16.9: + resolution: {integrity: sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==} fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -9203,10 +9077,6 @@ packages: has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -9383,10 +9253,6 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} @@ -9411,8 +9277,8 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} - index-to-position@1.1.0: - resolution: {integrity: sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==} + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} engines: {node: '>=18'} inferred-types@0.37.6: @@ -9473,8 +9339,8 @@ packages: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} engines: {node: '>= 0.10'} - is-arguments@1.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} is-array-buffer@3.0.4: @@ -9824,8 +9690,8 @@ packages: resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} engines: {node: '>= 0.4'} is-what@4.1.16: @@ -10046,15 +9912,15 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - js-beautify@1.15.4: - resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} + js-beautify@1.15.1: + resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} engines: {node: '>=14'} hasBin: true @@ -10079,9 +9945,6 @@ packages: js-tokens@9.0.0: resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -10108,11 +9971,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -10173,8 +10031,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.3.4: - resolution: {integrity: sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==} + keyv@5.4.0: + resolution: {integrity: sha512-TMckyVjEoacG5IteUpUrOBsFORtheqziVyyY2dLUwg1jwTb8u48LX4TgmtogkNl9Y9unaEJ1luj10fGyjMGFOQ==} kind-of@1.1.0: resolution: {integrity: sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==} @@ -10262,8 +10120,8 @@ packages: engines: {node: '>=18.12.0'} hasBin: true - listr2@8.3.3: - resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} load-json-file@1.1.0: @@ -10282,10 +10140,6 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} - local-pkg@0.5.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} - locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -10446,9 +10300,6 @@ packages: resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} engines: {node: 20 || >=22} - lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -10593,8 +10444,8 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdn-data@2.22.1: - resolution: {integrity: sha512-u9Xnc9zLuF/CL2IHPow7HcXPpb8okQyzYpwL5wFsY//JRedSWYglYRg3PYWoQCu1zO+tBTmWOJN/iM0mPC5CRQ==} + mdn-data@2.23.0: + resolution: {integrity: sha512-786vq1+4079JSeu2XdcDjrhi/Ry7BWtjDl9WtGPWLiIHb2T66GvIVflZTBoSNZ5JqTtJGYEVMuFA/lbQlMOyDQ==} mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} @@ -10671,8 +10522,8 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} engines: {node: '>= 0.6'} mime-types@2.1.35: @@ -10764,9 +10615,6 @@ packages: mlly@1.7.2: resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - modify-values@1.0.1: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} @@ -10812,8 +10660,8 @@ packages: resolution: {integrity: sha512-FrJc5AxzXSqiQNF+8CyJk6VxuKO4UVPgw32FZuFZ3X9W+JqOAQBTokZhh0ZkEqGpEOyp3z778ssmBTvdrTAdqw==} deprecated: Package no longer supported. Use at your own risk - nan@2.23.0: - resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} + nan@2.22.0: + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} @@ -10942,8 +10790,8 @@ packages: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + nwsapi@2.2.13: + resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} object-assign@3.0.0: resolution: {integrity: sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==} @@ -11033,8 +10881,8 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} engines: {node: '>= 0.8'} once@1.4.0: @@ -11179,8 +11027,8 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + package-manager-detector@0.2.2: + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} param-case@2.1.1: resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} @@ -11209,8 +11057,8 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-json@8.3.0: - resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} parse-node-version@1.0.1: @@ -11221,8 +11069,8 @@ packages: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} @@ -11298,8 +11146,8 @@ packages: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} - path-to-regexp@0.1.10: - resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} path-type@1.1.0: resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} @@ -11316,9 +11164,6 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -11342,10 +11187,6 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} engines: {node: '>=0.10'} @@ -11376,8 +11217,8 @@ packages: resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} engines: {node: '>=0.10.0'} - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} pkg-dir@4.2.0: @@ -11387,9 +11228,6 @@ packages: pkg-types@1.2.1: resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - plugin-error@0.1.2: resolution: {integrity: sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==} engines: {node: '>=0.10.0'} @@ -11413,10 +11251,6 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} @@ -11470,9 +11304,6 @@ packages: preact@10.24.3: resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} - preact@10.26.9: - resolution: {integrity: sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==} - prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -11511,8 +11342,8 @@ packages: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} private@0.1.8: @@ -11542,14 +11373,14 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} pump@2.0.1: resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} @@ -11576,9 +11407,6 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - quansync@0.2.10: - resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} - querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -11695,10 +11523,6 @@ packages: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} @@ -11862,8 +11686,8 @@ packages: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} resolve@1.19.0: @@ -11894,8 +11718,8 @@ packages: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfdc@1.4.1: @@ -11974,9 +11798,6 @@ packages: rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -12248,10 +12069,6 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} - engines: {node: '>= 0.4'} - shelljs@0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} engines: {node: '>=4'} @@ -12275,6 +12092,10 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + side-channel@1.1.0: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} @@ -12405,8 +12226,8 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} @@ -12453,9 +12274,6 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -12464,6 +12282,10 @@ packages: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -12594,9 +12416,6 @@ packages: strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - strip-literal@2.1.1: - resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} - strong-type@0.1.6: resolution: {integrity: sha512-eJe5caH6Pi5oMMeQtIoBPpvNu/s4jiyb63u5tkHNnQXomK+puyQ5i+Z5iTLBr/xUz/pIcps0NSfzzFI34+gAXg==} engines: {node: '>=12.0.0'} @@ -12638,8 +12457,8 @@ packages: peerDependencies: stylelint: ^16.0.2 - stylelint@16.21.1: - resolution: {integrity: sha512-WCXdXnYK2tpCbebgMF0Bme3YZH/Rh/UXerj75twYo4uLULlcrLwFVdZTvTEF8idFnAcW21YUDJFyKOfaf6xJRw==} + stylelint@16.22.0: + resolution: {integrity: sha512-SVEMTdjKNV4ollUrIY9ordZ36zHv2/PHzPjfPMau370MlL2VYXeLgSNMMiEbLGRO8RmD2R8/BVUeF2DfnfkC0w==} engines: {node: '>=18.12.0'} hasBin: true @@ -12806,9 +12625,8 @@ packages: resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} engines: {node: '>=0.10.0'} - to-buffer@1.2.1: - resolution: {integrity: sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==} - engines: {node: '>= 0.4'} + to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} to-fast-properties@1.0.3: resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} @@ -12880,8 +12698,8 @@ packages: resolution: {integrity: sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==} engines: {node: '>=6'} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -12948,9 +12766,6 @@ packages: tslib@2.8.0: resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -12987,6 +12802,10 @@ packages: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + engines: {node: '>=16'} + type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -13033,8 +12852,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.37.0: - resolution: {integrity: sha512-TnbEjzkE9EmcO0Q2zM+GE8NQLItNAJpMmED1BdgoBMYNdqMhzlbqfdSwiRlAzEK2pA9UzVW0gzaaIzXWg2BjfA==} + typescript-eslint@8.38.0: + resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -13069,9 +12888,6 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -13099,9 +12915,6 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -13387,34 +13200,6 @@ packages: terser: optional: true - vite@4.5.14: - resolution: {integrity: sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@4.5.5: resolution: {integrity: sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -13653,11 +13438,8 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - - vue-component-type-helpers@2.2.12: - resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==} + vue-component-type-helpers@2.1.6: + resolution: {integrity: sha512-ng11B8B/ZADUMMOsRbqv0arc442q7lifSubD0v8oDXIFoMg/mXwAPUunrroIDkY+mcD0dHKccdaznSVp8EoX3w==} vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} @@ -13676,8 +13458,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue-i18n@11.1.10: - resolution: {integrity: sha512-C+IwnSg8QDSOAox0gdFYP5tsKLx5jNWxiawNoiNB/Tw4CReXmM1VJMXbduhbrEzAFLhreqzfDocuSVjGbxQrag==} + vue-i18n@11.1.11: + resolution: {integrity: sha512-LvyteQoXeQiuILbzqv13LbyBna/TEv2Ha+4ZWK2AwGHUzZ8+IBaZS0TJkCgn5izSPLcgZwXy9yyTrewCb2u/MA==} engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 @@ -13725,8 +13507,8 @@ packages: typescript: optional: true - vue@3.5.17: - resolution: {integrity: sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==} + vue@3.5.18: + resolution: {integrity: sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -13843,8 +13625,8 @@ packages: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -13879,6 +13661,11 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} + hasBin: true + yaml@2.8.0: resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} engines: {node: '>= 14.6'} @@ -13921,10 +13708,6 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} - engines: {node: '>=12.20'} - yoctocolors-cjs@2.1.2: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} @@ -13945,88 +13728,78 @@ packages: snapshots: - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0)(search-insights@2.17.2)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0)(search-insights@2.17.2) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1)(search-insights@2.17.2) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0)(search-insights@2.17.2) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0)(search-insights@2.17.2)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1) search-insights: 2.17.2 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0) search-insights: 2.17.2 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0) - '@algolia/client-search': 5.33.0 - algoliasearch: 5.33.0 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1) + '@algolia/client-search': 5.34.1 + algoliasearch: 5.34.1 - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0)': + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0) - '@algolia/client-search': 5.33.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0) + '@algolia/client-search': 5.34.1 algoliasearch: 4.24.0 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1)': dependencies: - '@algolia/client-search': 5.33.0 - algoliasearch: 5.33.0 + '@algolia/client-search': 5.34.1 + algoliasearch: 5.34.1 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0)': + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0)': dependencies: - '@algolia/client-search': 5.33.0 + '@algolia/client-search': 5.34.1 algoliasearch: 4.24.0 '@algolia/cache-browser-local-storage@4.24.0': dependencies: '@algolia/cache-common': 4.24.0 - '@algolia/cache-browser-local-storage@4.25.2': - dependencies: - '@algolia/cache-common': 4.25.2 - '@algolia/cache-common@4.24.0': {} - '@algolia/cache-common@4.25.2': {} - '@algolia/cache-in-memory@4.24.0': dependencies: '@algolia/cache-common': 4.24.0 - '@algolia/cache-in-memory@4.25.2': - dependencies: - '@algolia/cache-common': 4.25.2 - - '@algolia/client-abtesting@5.33.0': + '@algolia/client-abtesting@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 '@algolia/client-account@4.24.0': dependencies: @@ -14034,12 +13807,6 @@ snapshots: '@algolia/client-search': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-account@4.25.2': - dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/transporter': 4.25.2 - '@algolia/client-analytics@4.24.0': dependencies: '@algolia/client-common': 4.24.0 @@ -14047,38 +13814,26 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-analytics@4.25.2': - dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 - - '@algolia/client-analytics@5.33.0': + '@algolia/client-analytics@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 '@algolia/client-common@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-common@4.25.2': - dependencies: - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 - - '@algolia/client-common@5.33.0': {} + '@algolia/client-common@5.34.1': {} - '@algolia/client-insights@5.33.0': + '@algolia/client-insights@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 '@algolia/client-personalization@4.24.0': dependencies: @@ -14086,25 +13841,19 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-personalization@4.25.2': - dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 - - '@algolia/client-personalization@5.33.0': + '@algolia/client-personalization@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 - '@algolia/client-query-suggestions@5.33.0': + '@algolia/client-query-suggestions@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 '@algolia/client-search@4.24.0': dependencies: @@ -14112,44 +13861,32 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-search@4.25.2': + '@algolia/client-search@5.34.1': dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 - '@algolia/client-search@5.33.0': + '@algolia/ingestion@1.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 - - '@algolia/ingestion@1.33.0': - dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 '@algolia/logger-common@4.24.0': {} - '@algolia/logger-common@4.25.2': {} - '@algolia/logger-console@4.24.0': dependencies: '@algolia/logger-common': 4.24.0 - '@algolia/logger-console@4.25.2': - dependencies: - '@algolia/logger-common': 4.25.2 - - '@algolia/monitoring@1.33.0': + '@algolia/monitoring@1.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 '@algolia/recommend@4.24.0': dependencies: @@ -14165,58 +13902,34 @@ snapshots: '@algolia/requester-node-http': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/recommend@4.25.2': - dependencies: - '@algolia/cache-browser-local-storage': 4.25.2 - '@algolia/cache-common': 4.25.2 - '@algolia/cache-in-memory': 4.25.2 - '@algolia/client-common': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/logger-common': 4.25.2 - '@algolia/logger-console': 4.25.2 - '@algolia/requester-browser-xhr': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/requester-node-http': 4.25.2 - '@algolia/transporter': 4.25.2 - - '@algolia/recommend@5.33.0': + '@algolia/recommend@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + '@algolia/client-common': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 '@algolia/requester-browser-xhr@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-browser-xhr@4.25.2': - dependencies: - '@algolia/requester-common': 4.25.2 - - '@algolia/requester-browser-xhr@5.33.0': + '@algolia/requester-browser-xhr@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 + '@algolia/client-common': 5.34.1 '@algolia/requester-common@4.24.0': {} - '@algolia/requester-common@4.25.2': {} - - '@algolia/requester-fetch@5.33.0': + '@algolia/requester-fetch@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 + '@algolia/client-common': 5.34.1 '@algolia/requester-node-http@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http@4.25.2': - dependencies: - '@algolia/requester-common': 4.25.2 - - '@algolia/requester-node-http@5.33.0': + '@algolia/requester-node-http@5.34.1': dependencies: - '@algolia/client-common': 5.33.0 + '@algolia/client-common': 5.34.1 '@algolia/transporter@4.24.0': dependencies: @@ -14224,12 +13937,6 @@ snapshots: '@algolia/logger-common': 4.24.0 '@algolia/requester-common': 4.24.0 - '@algolia/transporter@4.25.2': - dependencies: - '@algolia/cache-common': 4.25.2 - '@algolia/logger-common': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -14293,13 +14000,13 @@ snapshots: '@babel/generator': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.27.6 + '@babel/helpers': 7.28.2 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -14316,23 +14023,23 @@ snapshots: '@babel/generator@7.28.0': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.29 - jsesc: 3.1.0 + jsesc: 3.0.2 '@babel/helper-annotate-as-pure@7.25.7': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.25.8 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.28.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color @@ -14348,7 +14055,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.1 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -14360,7 +14067,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.25.7 '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.8) '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -14373,7 +14080,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.25.7 '@babel/helper-replace-supers': 7.25.7(@babel/core@7.28.0) '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -14394,24 +14101,17 @@ snapshots: '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-annotate-as-pure': 7.25.7 regexpu-core: 6.1.1 semver: 6.3.1 '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-annotate-as-pure': 7.25.7 regexpu-core: 6.1.1 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.2.0 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -14424,9 +14124,9 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - debug: 4.4.1 + debug: 4.3.7 lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -14435,9 +14135,9 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - debug: 4.4.1 + debug: 4.3.7 lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -14456,15 +14156,15 @@ snapshots: '@babel/helper-member-expression-to-functions@7.25.7': dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.28.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color '@babel/helper-member-expression-to-functions@7.27.1': dependencies: '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -14478,27 +14178,27 @@ snapshots: '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.25.7 '@babel/helper-simple-access': 7.25.7 '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-module-transforms@7.25.7(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.25.7 '@babel/helper-simple-access': 7.25.7 '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14513,11 +14213,11 @@ snapshots: '@babel/helper-optimise-call-expression@7.25.7': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.25.8 '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/helper-plugin-utils@7.25.7': {} @@ -14526,18 +14226,18 @@ snapshots: '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-wrap-function': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-wrap-function': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14555,7 +14255,7 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-member-expression-to-functions': 7.25.7 '@babel/helper-optimise-call-expression': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14564,7 +14264,7 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-member-expression-to-functions': 7.25.7 '@babel/helper-optimise-call-expression': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14579,22 +14279,22 @@ snapshots: '@babel/helper-simple-access@7.25.7': dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.28.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.7': dependencies: '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -14612,9 +14312,9 @@ snapshots: '@babel/helper-wrap-function@7.25.7': dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.25.7 - '@babel/types': 7.28.1 + '@babel/template': 7.25.7 + '@babel/traverse': 7.28.0 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color @@ -14622,7 +14322,7 @@ snapshots: dependencies: '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -14631,21 +14331,21 @@ snapshots: '@babel/template': 7.25.7 '@babel/types': 7.25.8 - '@babel/helpers@7.27.6': + '@babel/helpers@7.28.2': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 '@babel/parser@7.12.3': dependencies: - '@babel/types': 7.12.1 + '@babel/types': 7.25.8 '@babel/parser@7.25.8': dependencies: @@ -14653,13 +14353,13 @@ snapshots: '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14667,7 +14367,7 @@ snapshots: dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14740,7 +14440,7 @@ snapshots: dependencies: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14748,7 +14448,7 @@ snapshots: dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -14789,42 +14489,42 @@ snapshots: '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-decorators@7.25.7(@babel/core@7.25.8)': dependencies: @@ -14861,11 +14561,6 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -14874,22 +14569,22 @@ snapshots: '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.8)': dependencies: @@ -14901,11 +14596,6 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -14914,92 +14604,92 @@ snapshots: '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': dependencies: @@ -15009,14 +14699,14 @@ snapshots: '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.25.8) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.8) + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-arrow-functions@7.25.7(@babel/core@7.25.8)': dependencies: @@ -15038,7 +14728,7 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.8) - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -15047,7 +14737,7 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.28.0) - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -15063,7 +14753,7 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.25.7(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.8) transitivePeerDependencies: @@ -15072,7 +14762,7 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.25.7(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.28.0) transitivePeerDependencies: @@ -15172,7 +14862,7 @@ snapshots: '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.8) - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -15184,7 +14874,7 @@ snapshots: '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-replace-supers': 7.25.7(@babel/core@7.28.0) - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -15205,13 +14895,13 @@ snapshots: dependencies: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 - '@babel/template': 7.27.2 + '@babel/template': 7.25.7 '@babel/plugin-transform-computed-properties@7.25.7(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/template': 7.27.2 + '@babel/template': 7.25.7 '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': dependencies: @@ -15376,7 +15066,7 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -15385,7 +15075,7 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -15514,7 +15204,7 @@ snapshots: '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -15524,7 +15214,7 @@ snapshots: '@babel/helper-module-transforms': 7.25.7(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -15921,7 +15611,7 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.8) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.8) transitivePeerDependencies: @@ -15932,7 +15622,7 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.28.0) transitivePeerDependencies: @@ -16245,15 +15935,15 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.1 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/types': 7.25.8 esutils: 2.0.3 '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.1 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/types': 7.25.8 esutils: 2.0.3 '@babel/preset-typescript@7.25.7(@babel/core@7.25.8)': @@ -16293,11 +15983,9 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/runtime@7.27.6': {} - '@babel/template@7.25.7': dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.25.7 '@babel/parser': 7.28.0 '@babel/types': 7.25.8 @@ -16305,7 +15993,7 @@ snapshots: dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@babel/traverse@7.25.7': dependencies: @@ -16326,14 +16014,14 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.28.1 - debug: 4.4.1 + '@babel/types': 7.28.2 + debug: 4.3.7 transitivePeerDependencies: - supports-color '@babel/types@7.12.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.25.7 lodash: 4.17.21 to-fast-properties: 2.0.0 @@ -16343,14 +16031,14 @@ snapshots: '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 - '@babel/types@7.28.1': + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 '@bcoe/v8-coverage@0.2.3': {} - '@bufbuild/protobuf@2.6.0': {} + '@bufbuild/protobuf@2.2.0': {} '@changesets/apply-release-plan@7.0.12': dependencies: @@ -16366,7 +16054,7 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.6.3 '@changesets/assemble-release-plan@6.0.9': dependencies: @@ -16375,7 +16063,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.7.2 + semver: 7.6.3 '@changesets/changelog-git@0.2.1': dependencies: @@ -16405,10 +16093,10 @@ snapshots: fs-extra: 7.0.1 mri: 1.2.0 p-limit: 2.3.0 - package-manager-detector: 0.2.11 + package-manager-detector: 0.2.2 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.6.3 spawndamnit: 3.0.1 term-size: 2.2.1 @@ -16431,7 +16119,7 @@ snapshots: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.7.2 + semver: 7.6.3 '@changesets/get-release-plan@4.0.13': dependencies: @@ -16510,11 +16198,11 @@ snapshots: - '@swc/core' - '@swc/wasm' - '@commitlint/cli@19.5.0(@types/node@24.0.14)(typescript@4.9.5)': + '@commitlint/cli@19.5.0(@types/node@20.5.1)(typescript@4.9.5)': dependencies: '@commitlint/format': 19.5.0 '@commitlint/lint': 19.5.0 - '@commitlint/load': 19.5.0(@types/node@24.0.14)(typescript@4.9.5) + '@commitlint/load': 19.5.0(@types/node@20.5.1)(typescript@4.9.5) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 tinyexec: 0.3.1 @@ -16523,11 +16211,11 @@ snapshots: - '@types/node' - typescript - '@commitlint/cli@19.8.1(@types/node@18.19.119)(typescript@5.8.3)': + '@commitlint/cli@19.8.1(@types/node@18.19.120)(typescript@5.8.3)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@18.19.119)(typescript@5.8.3) + '@commitlint/load': 19.8.1(@types/node@18.19.120)(typescript@5.8.3) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.1 @@ -16606,7 +16294,7 @@ snapshots: '@commitlint/format@19.5.0': dependencies: '@commitlint/types': 19.5.0 - chalk: 5.3.0 + chalk: 5.4.1 '@commitlint/format@19.8.1': dependencies: @@ -16621,12 +16309,12 @@ snapshots: '@commitlint/is-ignored@19.5.0': dependencies: '@commitlint/types': 19.5.0 - semver: 7.7.2 + semver: 7.6.3 '@commitlint/is-ignored@19.8.1': dependencies: '@commitlint/types': 19.8.1 - semver: 7.7.2 + semver: 7.6.3 '@commitlint/lint@17.8.1': dependencies: @@ -16657,27 +16345,27 @@ snapshots: '@commitlint/types': 17.8.1 '@types/node': 20.5.1 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.6.3) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig: 8.3.6(typescript@5.8.3) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@4.9.5))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) - typescript: 5.6.3 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@commitlint/load@19.5.0(@types/node@24.0.14)(typescript@4.9.5)': + '@commitlint/load@19.5.0(@types/node@20.5.1)(typescript@4.9.5)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 '@commitlint/resolve-extends': 19.5.0 '@commitlint/types': 19.5.0 - chalk: 5.3.0 + chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@4.9.5) - cosmiconfig-typescript-loader: 5.1.0(@types/node@24.0.14)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5) + cosmiconfig-typescript-loader: 5.1.0(@types/node@20.5.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -16685,7 +16373,7 @@ snapshots: - '@types/node' - typescript - '@commitlint/load@19.8.1(@types/node@18.19.119)(typescript@5.8.3)': + '@commitlint/load@19.8.1(@types/node@18.19.120)(typescript@5.8.3)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 @@ -16693,7 +16381,7 @@ snapshots: '@commitlint/types': 19.8.1 chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@5.8.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@18.19.119)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@18.19.120)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -16753,7 +16441,7 @@ snapshots: dependencies: '@commitlint/config-validator': 17.8.1 '@commitlint/types': 17.8.1 - import-fresh: 3.3.1 + import-fresh: 3.3.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 resolve-global: 1.0.0 @@ -16823,20 +16511,20 @@ snapshots: '@commitlint/types@19.5.0': dependencies: '@types/conventional-commits-parser': 5.0.0 - chalk: 5.3.0 + chalk: 5.4.1 '@commitlint/types@19.8.1': dependencies: - '@types/conventional-commits-parser': 5.0.1 + '@types/conventional-commits-parser': 5.0.0 chalk: 5.4.1 - '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0)': + '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)': dependencies: - '@types/semver': 7.7.0 - semver: 7.7.2 + '@types/semver': 7.5.8 + semver: 7.6.3 optionalDependencies: conventional-commits-filter: 5.0.0 - conventional-commits-parser: 6.2.0 + conventional-commits-parser: 6.0.0 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -16870,14 +16558,14 @@ snapshots: '@docsearch/js@1.0.0-alpha.28(react-dom@16.14.0(react@16.14.0))(react@16.14.0)': dependencies: '@docsearch/react': 1.0.0-alpha.28(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - preact: 10.26.9 + preact: 10.24.3 transitivePeerDependencies: - react - react-dom - '@docsearch/js@3.6.0(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': + '@docsearch/js@3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@docsearch/react': 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) preact: 10.24.3 transitivePeerDependencies: - '@algolia/client-search' @@ -16886,9 +16574,9 @@ snapshots: - react-dom - search-insights - '@docsearch/js@3.6.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': + '@docsearch/js@3.6.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': dependencies: - '@docsearch/react': 3.6.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@docsearch/react': 3.6.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) preact: 10.24.3 transitivePeerDependencies: - '@algolia/client-search' @@ -16897,10 +16585,10 @@ snapshots: - react-dom - search-insights - '@docsearch/js@3.8.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': + '@docsearch/js@3.8.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': dependencies: - '@docsearch/react': 3.8.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - preact: 10.26.9 + '@docsearch/react': 3.8.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + preact: 10.24.3 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -16913,14 +16601,14 @@ snapshots: '@docsearch/css': 1.0.0-alpha.28 '@francoischalifour/autocomplete-core': 1.0.0-alpha.28 '@francoischalifour/autocomplete-preset-algolia': 1.0.0-alpha.28 - algoliasearch: 4.25.2 + algoliasearch: 4.24.0 react: 16.14.0 react-dom: 16.14.0(react@16.14.0) - '@docsearch/react@3.6.0(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': + '@docsearch/react@3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0)(search-insights@2.17.2) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0) '@docsearch/css': 3.6.0 algoliasearch: 4.24.0 optionalDependencies: @@ -16930,10 +16618,10 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docsearch/react@3.6.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': + '@docsearch/react@3.6.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.33.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0)(search-insights@2.17.2) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.34.1)(algoliasearch@4.24.0) '@docsearch/css': 3.6.2 algoliasearch: 4.24.0 optionalDependencies: @@ -16943,12 +16631,12 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docsearch/react@3.8.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': + '@docsearch/react@3.8.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.33.0)(algoliasearch@5.33.0) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1)(search-insights@2.17.2) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.34.1)(algoliasearch@5.34.1) '@docsearch/css': 3.8.2 - algoliasearch: 5.33.0 + algoliasearch: 5.34.1 optionalDependencies: react: 16.14.0 react-dom: 16.14.0(react@16.14.0) @@ -16967,7 +16655,7 @@ snapshots: '@edp-aif/common-api': 1.1.0 tslib: 1.14.1 - '@edp-bif/runtime-api-vue@0.0.1(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))': + '@edp-bif/runtime-api-vue@0.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': dependencies: '@edp-aif/common-api': 1.1.0 '@edp-bif/common-api': 1.2.2(@edp-aif/common-api@1.1.0) @@ -16975,7 +16663,7 @@ snapshots: '@farris/bef-vue': 0.0.3 '@farris/command-services-vue': 0.0.3(typescript@4.9.5) '@farris/devkit-vue': 0.0.5(typescript@4.9.5) - '@farris/ui-vue': 1.5.3(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/shared': 3.5.12 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) async-validator: 4.2.5 @@ -17227,25 +16915,22 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.19.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.19.0(jiti@2.5.1))': dependencies: - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.19.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.31.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.32.0(jiti@2.5.1))': dependencies: - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.7.0(eslint@9.19.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.32.0(jiti@2.5.1))': dependencies: - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@2.4.2))': - dependencies: - eslint: 9.31.0(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.11.1': {} '@eslint-community/regexpp@4.12.1': {} @@ -17260,7 +16945,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -17292,11 +16977,11 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.3.7 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 @@ -17305,7 +16990,7 @@ snapshots: '@eslint/js@9.19.0': {} - '@eslint/js@9.31.0': {} + '@eslint/js@9.32.0': {} '@eslint/object-schema@2.1.6': {} @@ -17314,7 +16999,7 @@ snapshots: '@eslint/core': 0.10.0 levn: 0.4.1 - '@eslint/plugin-kit@0.3.3': + '@eslint/plugin-kit@0.3.4': dependencies: '@eslint/core': 0.15.1 levn: 0.4.1 @@ -17329,9 +17014,9 @@ snapshots: '@farris/devkit-vue': 0.0.4(typescript@4.9.5) '@farris/ui-vue': link:packages/ui-vue lodash: 4.17.21 - moment: 2.30.1 - vue: 3.5.17(typescript@4.9.5) - vue-router: 4.4.5(vue@3.5.17(typescript@4.9.5)) + moment: 2.29.1 + vue: 3.5.12(typescript@4.9.5) + vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) transitivePeerDependencies: - debug - typescript @@ -17354,8 +17039,8 @@ snapshots: '@farris/devkit-vue@0.0.4(typescript@4.9.5)': dependencies: axios: 1.10.0 - vue: 3.5.17(typescript@4.9.5) - vue-router: 4.4.5(vue@3.5.17(typescript@4.9.5)) + vue: 3.5.12(typescript@4.9.5) + vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) transitivePeerDependencies: - debug - typescript @@ -17372,15 +17057,24 @@ snapshots: '@farris/devkit-vue@0.0.5(typescript@4.9.5)': dependencies: axios: 1.10.0 - vue: 3.5.17(typescript@4.9.5) - vue-router: 4.4.5(vue@3.5.17(typescript@4.9.5)) + vue: 3.5.12(typescript@4.9.5) + vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) + transitivePeerDependencies: + - debug + - typescript + + '@farris/devkit-vue@0.0.5(typescript@5.6.3)': + dependencies: + axios: 1.10.0 + vue: 3.5.12(typescript@5.6.3) + vue-router: 4.4.5(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - debug - typescript - '@farris/ui-vue@1.5.3(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@farris/ui-vue@1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: - '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@docsearch/js': 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) '@monaco-editor/loader': 1.4.0(monaco-editor@0.52.2) '@types/lodash-es': 4.17.12 '@vue/shared': 3.5.12 @@ -17388,12 +17082,12 @@ snapshots: async-validator: 4.2.5 bignumber.js: 9.1.2 date-fns: 3.6.0 - echarts: 5.5.1 + echarts: 5.6.0 jsonp: 0.2.1 lodash: 4.17.21 lodash-es: 4.17.21 rxjs: 7.8.1 - vite-plugin-dts: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-dts: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -17408,10 +17102,9 @@ snapshots: - vite - vue - '@farris/ui-vue@1.5.5(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@farris/ui-vue@1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@farris/designer-dragula': 0.0.5 + '@docsearch/js': 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) '@monaco-editor/loader': 1.4.0(monaco-editor@0.52.2) '@types/lodash-es': 4.17.12 '@vue/shared': 3.5.12 @@ -17419,12 +17112,12 @@ snapshots: async-validator: 4.2.5 bignumber.js: 9.1.2 date-fns: 3.6.0 - echarts: 5.5.1 + echarts: 5.6.0 jsonp: 0.2.1 lodash: 4.17.21 lodash-es: 4.17.21 rxjs: 7.8.1 - vite-plugin-dts: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-dts: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -17454,19 +17147,19 @@ snapshots: '@francoischalifour/autocomplete-preset-algolia@1.0.0-alpha.28': {} - '@gsp-dip/data-imp-exp-vue@0.0.1(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': + '@gsp-dip/data-imp-exp-vue@0.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': dependencies: '@farris/bef-vue': 0.0.2 '@farris/command-services-vue': 0.0.3(typescript@4.9.5) '@farris/devkit-vue': 0.0.5(typescript@4.9.5) - '@farris/ui-vue': 1.5.3(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/shared': 3.5.12 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) async-validator: 4.2.5 bignumber.js: 9.1.2 lodash: 4.17.21 lodash-es: 4.17.21 - moment: 2.30.1 + moment: 2.29.1 mxgraph: 4.2.2 rxjs: 7.8.1 vue: 3.5.12(typescript@4.9.5) @@ -17486,21 +17179,22 @@ snapshots: - typescript - vite - '@gsp-wf/wf-bizprocess-lookup-vue@0.0.2(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': + '@gsp-svc/cloudprint-vue@0.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': dependencies: - '@farris/ui-vue': 1.5.5(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@farris/bef-vue': 0.0.2 + '@farris/devkit-vue': 0.0.5(typescript@5.6.3) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/shared': 3.5.12 - '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) async-validator: 4.2.5 - axios: 0.21.4 bignumber.js: 9.1.2 lodash: 4.17.21 lodash-es: 4.17.21 - moment: 2.30.1 + moment: 2.29.1 mxgraph: 4.2.2 rxjs: 7.8.1 - vue: 3.5.12(typescript@4.9.5) - vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) + vue: 3.5.12(typescript@5.6.3) + vue-router: 4.4.5(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -17516,12 +17210,11 @@ snapshots: - typescript - vite - '@gsp-wf/wf-task-handler-vue@0.0.1(@algolia/client-search@4.24.0)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': + '@gsp-svc/cloudprint-vue@0.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': dependencies: '@farris/bef-vue': 0.0.2 - '@farris/command-services-vue': 0.0.3(typescript@4.9.5) '@farris/devkit-vue': 0.0.5(typescript@4.9.5) - '@farris/ui-vue': 1.5.3(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/shared': 3.5.12 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) async-validator: 4.2.5 @@ -17548,21 +17241,27 @@ snapshots: - typescript - vite - '@gsp-wf/wf-bizprocess-lookup-vue@0.0.2(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@5.6.3)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@gsp-svc/file-viewer-vue@1.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': dependencies: - '@farris/ui-vue': 1.5.5(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.17(typescript@5.6.3)) - '@vue/shared': 3.5.17 - '@vueuse/core': 9.2.0(vue@3.5.17(typescript@5.6.3)) + '@edp-aif/common-api': 1.1.0 + '@edp-bif/common-api': 1.2.2(@edp-aif/common-api@1.1.0) + '@edp-pmf/mxgraph-ts': 0.0.7 + '@farris/bef-vue': 0.0.3 + '@farris/command-services-vue': 0.0.3(typescript@5.6.3) + '@farris/devkit-vue': 0.0.5(typescript@5.6.3) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + '@vue/shared': 3.5.12 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) async-validator: 4.2.5 - axios: 0.21.4 + axios: 1.10.0 bignumber.js: 9.1.2 lodash: 4.17.21 lodash-es: 4.17.21 - moment: 2.30.1 + moment: 2.29.1 mxgraph: 4.2.2 - rxjs: 7.8.2 - vue: 3.5.17(typescript@5.6.3) - vue-router: 4.4.5(vue@3.5.17(typescript@5.6.3)) + rxjs: 7.8.1 + vue: 3.5.12(typescript@5.6.3) + vue-router: 4.4.5(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -17578,22 +17277,160 @@ snapshots: - typescript - vite - '@gsp-wf/wf-task-handler-vue@0.0.1(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))': + '@gsp-svc/file-viewer-vue@1.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': dependencies: - '@farris/bef-vue': 0.0.3 + '@edp-aif/common-api': 1.1.0 + '@edp-bif/common-api': 1.2.2(@edp-aif/common-api@1.1.0) + '@edp-pmf/mxgraph-ts': 0.0.7 + '@farris/bef-vue': 0.0.3 + '@farris/command-services-vue': 0.0.3(typescript@4.9.5) + '@farris/devkit-vue': 0.0.5(typescript@4.9.5) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vue/shared': 3.5.12 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + async-validator: 4.2.5 + axios: 1.10.0 + bignumber.js: 9.1.2 + lodash: 4.17.21 + lodash-es: 4.17.21 + moment: 2.29.1 + mxgraph: 4.2.2 + rxjs: 7.8.1 + vue: 3.5.12(typescript@4.9.5) + vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - debug + - monaco-editor + - react + - react-dom + - rollup + - search-insights + - supports-color + - typescript + - vite + + '@gsp-svc/formdoc-upload-vue@1.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': + dependencies: + '@edp-aif/common-api': 1.1.0 + '@edp-bif/common-api': 1.2.2(@edp-aif/common-api@1.1.0) + '@edp-pmf/mxgraph-ts': 0.0.7 + '@farris/bef-vue': 0.0.3 + '@farris/command-services-vue': 0.0.3(typescript@4.9.5) + '@farris/devkit-vue': 0.0.5(typescript@4.9.5) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vue/shared': 3.5.12 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + async-validator: 4.2.5 + axios: 1.10.0 + bignumber.js: 9.1.2 + lodash: 4.17.21 + lodash-es: 4.17.21 + moment: 2.29.1 + mxgraph: 4.2.2 + rxjs: 7.8.1 + vue: 3.5.12(typescript@4.9.5) + vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - debug + - monaco-editor + - react + - react-dom + - rollup + - search-insights + - supports-color + - typescript + - vite + + '@gsp-svc/formdoc-upload-vue@1.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': + dependencies: + '@edp-aif/common-api': 1.1.0 + '@edp-bif/common-api': 1.2.2(@edp-aif/common-api@1.1.0) + '@edp-pmf/mxgraph-ts': 0.0.7 + '@farris/bef-vue': 0.0.3 + '@farris/command-services-vue': 0.0.3(typescript@5.6.3) + '@farris/devkit-vue': 0.0.5(typescript@5.6.3) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.24.0)(search-insights@2.17.2)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + '@vue/shared': 3.5.12 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) + async-validator: 4.2.5 + axios: 1.10.0 + bignumber.js: 9.1.2 + lodash: 4.17.21 + lodash-es: 4.17.21 + moment: 2.29.1 + mxgraph: 4.2.2 + rxjs: 7.8.1 + vue: 3.5.12(typescript@5.6.3) + vue-router: 4.4.5(vue@3.5.12(typescript@5.6.3)) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - debug + - monaco-editor + - react + - react-dom + - rollup + - search-insights + - supports-color + - typescript + - vite + + '@gsp-wf/wf-bizprocess-lookup-vue@0.0.2(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': + dependencies: + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vue/shared': 3.5.12 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + async-validator: 4.2.5 + axios: 0.21.4 + bignumber.js: 9.1.2 + lodash: 4.17.21 + lodash-es: 4.17.21 + moment: 2.29.1 + mxgraph: 4.2.2 + rxjs: 7.8.1 + vue: 3.5.12(typescript@4.9.5) + vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - debug + - monaco-editor + - react + - react-dom + - rollup + - search-insights + - supports-color + - typescript + - vite + + '@gsp-wf/wf-task-handler-vue@0.0.1(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': + dependencies: + '@farris/bef-vue': 0.0.3 '@farris/devkit-vue': 0.0.5(typescript@4.9.5) - '@farris/ui-vue': 1.5.5(@algolia/client-search@5.33.0)(@types/node@24.0.14)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.17(typescript@4.9.5)) - '@vue/shared': 3.5.17 - '@vueuse/core': 9.2.0(vue@3.5.17(typescript@4.9.5)) + '@farris/ui-vue': 1.5.3(@algolia/client-search@5.34.1)(@types/node@20.5.1)(monaco-editor@0.52.2)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(rollup@4.45.1)(search-insights@2.17.2)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vue/shared': 3.5.12 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) async-validator: 4.2.5 bignumber.js: 9.1.2 lodash: 4.17.21 lodash-es: 4.17.21 moment: 2.29.1 mxgraph: 4.2.2 - rxjs: 7.8.2 - vue: 3.5.17(typescript@4.9.5) - vue-router: 4.4.5(vue@3.5.17(typescript@4.9.5)) + rxjs: 7.8.1 + vue: 3.5.12(typescript@4.9.5) + vue-router: 4.4.5(vue@3.5.12(typescript@4.9.5)) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -17628,13 +17465,13 @@ snapshots: '@hutson/parse-repository-url@5.0.0': {} - '@iconify-json/simple-icons@1.2.43': + '@iconify-json/simple-icons@1.2.44': dependencies: '@iconify/types': 2.0.0 '@iconify/types@2.0.0': {} - '@inquirer/figures@1.0.12': {} + '@inquirer/figures@1.0.7': {} '@interactjs/actions@1.10.27(@interactjs/core@1.10.27(@interactjs/utils@1.10.27))(@interactjs/utils@1.10.27)': dependencies: @@ -17738,17 +17575,17 @@ snapshots: '@interactjs/utils@1.10.27': {} - '@intlify/core-base@11.1.10': + '@intlify/core-base@11.1.11': dependencies: - '@intlify/message-compiler': 11.1.10 - '@intlify/shared': 11.1.10 + '@intlify/message-compiler': 11.1.11 + '@intlify/shared': 11.1.11 - '@intlify/message-compiler@11.1.10': + '@intlify/message-compiler@11.1.11': dependencies: - '@intlify/shared': 11.1.10 + '@intlify/shared': 11.1.11 source-map-js: 1.2.1 - '@intlify/shared@11.1.10': {} + '@intlify/shared@11.1.11': {} '@isaacs/balanced-match@4.0.1': {} @@ -17778,27 +17615,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -17819,21 +17656,21 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -17854,21 +17691,21 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -17889,21 +17726,21 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -17928,7 +17765,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -17946,7 +17783,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.19.119 + '@types/node': 18.19.120 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -17967,8 +17804,8 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.29 - '@types/node': 18.19.119 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 18.19.120 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -17995,7 +17832,7 @@ snapshots: '@jest/source-map@29.6.3': dependencies: - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 @@ -18015,9 +17852,9 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -18027,7 +17864,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.7 + pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -18037,7 +17874,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.0.14 + '@types/node': 18.19.120 '@types/yargs': 15.0.19 chalk: 4.1.2 @@ -18046,19 +17883,19 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.119 + '@types/node': 18.19.120 '@types/yargs': 17.0.33 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.12': dependencies: - '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.29 '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -18067,13 +17904,11 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.5.4': {} - '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -18082,12 +17917,12 @@ snapshots: '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/sourcemap-codec': 1.5.0 '@jsdevtools/ez-spawn@3.0.4': dependencies: @@ -18096,126 +17931,124 @@ snapshots: string-argv: 0.3.2 type-detect: 4.1.0 - '@keyv/serialize@1.0.3': - dependencies: - buffer: 6.0.3 + '@keyv/serialize@1.1.0': {} '@ls-lint/ls-lint@2.3.1': {} '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.27.6 + '@babel/runtime': 7.25.7 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.27.6 + '@babel/runtime': 7.25.7 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 - '@microsoft/api-extractor-model@7.28.13(@types/node@18.19.119)': + '@microsoft/api-extractor-model@7.28.13(@types/node@18.19.120)': dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@18.19.119) + '@rushstack/node-core-library': 4.0.2(@types/node@18.19.120) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.28.13(@types/node@24.0.14)': + '@microsoft/api-extractor-model@7.28.13(@types/node@20.5.1)': dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@24.0.14) + '@rushstack/node-core-library': 4.0.2(@types/node@20.5.1) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.29.8(@types/node@18.19.119)': + '@microsoft/api-extractor-model@7.29.8(@types/node@18.19.57)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.119) + '@rushstack/node-core-library': 5.9.0(@types/node@18.19.57) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.29.8(@types/node@24.0.14)': + '@microsoft/api-extractor-model@7.29.8(@types/node@20.5.1)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@24.0.14) + '@rushstack/node-core-library': 5.9.0(@types/node@20.5.1) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.43.0(@types/node@18.19.119)': + '@microsoft/api-extractor@7.43.0(@types/node@18.19.120)': dependencies: - '@microsoft/api-extractor-model': 7.28.13(@types/node@18.19.119) + '@microsoft/api-extractor-model': 7.28.13(@types/node@18.19.120) '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@18.19.119) + '@rushstack/node-core-library': 4.0.2(@types/node@18.19.120) '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.10.0(@types/node@18.19.119) - '@rushstack/ts-command-line': 4.19.1(@types/node@18.19.119) + '@rushstack/terminal': 0.10.0(@types/node@18.19.120) + '@rushstack/ts-command-line': 4.19.1(@types/node@18.19.120) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 typescript: 5.4.2 transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.43.0(@types/node@24.0.14)': + '@microsoft/api-extractor@7.43.0(@types/node@20.5.1)': dependencies: - '@microsoft/api-extractor-model': 7.28.13(@types/node@24.0.14) + '@microsoft/api-extractor-model': 7.28.13(@types/node@20.5.1) '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@24.0.14) + '@rushstack/node-core-library': 4.0.2(@types/node@20.5.1) '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.10.0(@types/node@24.0.14) - '@rushstack/ts-command-line': 4.19.1(@types/node@24.0.14) + '@rushstack/terminal': 0.10.0(@types/node@20.5.1) + '@rushstack/ts-command-line': 4.19.1(@types/node@20.5.1) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 typescript: 5.4.2 transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.11(@types/node@18.19.119)': + '@microsoft/api-extractor@7.47.11(@types/node@18.19.57)': dependencies: - '@microsoft/api-extractor-model': 7.29.8(@types/node@18.19.119) + '@microsoft/api-extractor-model': 7.29.8(@types/node@18.19.57) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.119) + '@rushstack/node-core-library': 5.9.0(@types/node@18.19.57) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.2(@types/node@18.19.119) - '@rushstack/ts-command-line': 4.23.0(@types/node@18.19.119) + '@rushstack/terminal': 0.14.2(@types/node@18.19.57) + '@rushstack/ts-command-line': 4.23.0(@types/node@18.19.57) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 typescript: 5.4.2 transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.11(@types/node@24.0.14)': + '@microsoft/api-extractor@7.47.11(@types/node@20.5.1)': dependencies: - '@microsoft/api-extractor-model': 7.29.8(@types/node@24.0.14) + '@microsoft/api-extractor-model': 7.29.8(@types/node@20.5.1) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@24.0.14) + '@rushstack/node-core-library': 5.9.0(@types/node@20.5.1) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.2(@types/node@24.0.14) - '@rushstack/ts-command-line': 4.23.0(@types/node@24.0.14) + '@rushstack/terminal': 0.14.2(@types/node@20.5.1) + '@rushstack/ts-command-line': 4.23.0(@types/node@20.5.1) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 typescript: 5.4.2 @@ -18234,7 +18067,7 @@ snapshots: '@microsoft/tsdoc': 0.15.0 ajv: 8.12.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.8 '@microsoft/tsdoc@0.10.0': {} @@ -18260,85 +18093,46 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.17.1 '@one-ini/wasm@0.1.1': {} '@parcel/watcher-android-arm64@2.4.1': optional: true - '@parcel/watcher-android-arm64@2.5.1': - optional: true - '@parcel/watcher-darwin-arm64@2.4.1': optional: true - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - '@parcel/watcher-darwin-x64@2.4.1': optional: true - '@parcel/watcher-darwin-x64@2.5.1': - optional: true - '@parcel/watcher-freebsd-x64@2.4.1': optional: true - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true - '@parcel/watcher-linux-arm-glibc@2.4.1': optional: true - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - '@parcel/watcher-linux-arm64-glibc@2.4.1': optional: true - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - '@parcel/watcher-linux-arm64-musl@2.4.1': optional: true - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - '@parcel/watcher-linux-x64-glibc@2.4.1': optional: true - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - '@parcel/watcher-linux-x64-musl@2.4.1': optional: true - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - '@parcel/watcher-win32-arm64@2.4.1': optional: true - '@parcel/watcher-win32-arm64@2.5.1': - optional: true - '@parcel/watcher-win32-ia32@2.4.1': optional: true - '@parcel/watcher-win32-ia32@2.5.1': - optional: true - '@parcel/watcher-win32-x64@2.4.1': optional: true - '@parcel/watcher-win32-x64@2.5.1': - optional: true - '@parcel/watcher@2.4.1': dependencies: detect-libc: 1.0.3 @@ -18359,28 +18153,6 @@ snapshots: '@parcel/watcher-win32-ia32': 2.4.1 '@parcel/watcher-win32-x64': 2.4.1 - '@parcel/watcher@2.5.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - optional: true - '@pkgjs/parseargs@0.11.0': optional: true @@ -18390,15 +18162,15 @@ snapshots: '@polka/url@0.5.0': {} - '@polka/url@1.0.0-next.29': {} + '@polka/url@1.0.0-next.28': {} - '@rolldown/pluginutils@1.0.0-beta.27': {} + '@rolldown/pluginutils@1.0.0-beta.29': {} '@rollup/plugin-babel@6.0.4(@babel/core@7.25.8)(@types/babel__core@7.20.5)(rollup@4.24.0)': dependencies: '@babel/core': 7.25.8 - '@babel/helper-module-imports': 7.27.1 - '@rollup/pluginutils': 5.2.0(rollup@4.24.0) + '@babel/helper-module-imports': 7.25.7 + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) optionalDependencies: '@types/babel__core': 7.20.5 rollup: 4.24.0 @@ -18408,8 +18180,8 @@ snapshots: '@rollup/plugin-babel@6.0.4(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@4.24.0)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@rollup/pluginutils': 5.2.0(rollup@4.24.0) + '@babel/helper-module-imports': 7.25.7 + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) optionalDependencies: '@types/babel__core': 7.20.5 rollup: 4.24.0 @@ -18419,8 +18191,8 @@ snapshots: '@rollup/plugin-babel@6.0.4(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@4.45.1)': dependencies: '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@rollup/pluginutils': 5.2.0(rollup@4.45.1) + '@babel/helper-module-imports': 7.25.7 + '@rollup/pluginutils': 5.1.2(rollup@4.45.1) optionalDependencies: '@types/babel__core': 7.20.5 rollup: 4.45.1 @@ -18485,11 +18257,11 @@ snapshots: '@rollup/plugin-node-resolve@15.3.1(rollup@4.45.1)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.45.1) + '@rollup/pluginutils': 5.1.2(rollup@4.45.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 - resolve: 1.22.10 + resolve: 1.22.8 optionalDependencies: rollup: 4.45.1 @@ -18516,7 +18288,7 @@ snapshots: '@rollup/pluginutils@5.1.2(rollup@4.24.0)': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: @@ -18524,28 +18296,12 @@ snapshots: '@rollup/pluginutils@5.1.2(rollup@4.45.1)': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: rollup: 4.45.1 - '@rollup/pluginutils@5.2.0(rollup@4.24.0)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.24.0 - - '@rollup/pluginutils@5.2.0(rollup@4.45.1)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.45.1 - '@rollup/rollup-android-arm-eabi@4.24.0': optional: true @@ -18658,53 +18414,53 @@ snapshots: '@rushstack/eslint-patch@1.11.0': {} - '@rushstack/node-core-library@3.66.1(@types/node@18.19.119)': + '@rushstack/node-core-library@3.66.1(@types/node@18.19.57)': dependencies: colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 z-schema: 5.0.5 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.57 - '@rushstack/node-core-library@3.66.1(@types/node@24.0.14)': + '@rushstack/node-core-library@3.66.1(@types/node@20.5.1)': dependencies: colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 z-schema: 5.0.5 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 - '@rushstack/node-core-library@4.0.2(@types/node@18.19.119)': + '@rushstack/node-core-library@4.0.2(@types/node@18.19.120)': dependencies: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 z-schema: 5.0.5 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 - '@rushstack/node-core-library@4.0.2(@types/node@24.0.14)': + '@rushstack/node-core-library@4.0.2(@types/node@20.5.1)': dependencies: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 z-schema: 5.0.5 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 - '@rushstack/node-core-library@5.9.0(@types/node@18.19.119)': + '@rushstack/node-core-library@5.9.0(@types/node@18.19.57)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -18712,12 +18468,12 @@ snapshots: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.57 - '@rushstack/node-core-library@5.9.0(@types/node@24.0.14)': + '@rushstack/node-core-library@5.9.0(@types/node@20.5.1)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -18725,79 +18481,79 @@ snapshots: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.8 semver: 7.5.4 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 '@rushstack/rig-package@0.5.2': dependencies: - resolve: 1.22.10 + resolve: 1.22.8 strip-json-comments: 3.1.1 '@rushstack/rig-package@0.5.3': dependencies: - resolve: 1.22.10 + resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.10.0(@types/node@18.19.119)': + '@rushstack/terminal@0.10.0(@types/node@18.19.120)': dependencies: - '@rushstack/node-core-library': 4.0.2(@types/node@18.19.119) + '@rushstack/node-core-library': 4.0.2(@types/node@18.19.120) supports-color: 8.1.1 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 - '@rushstack/terminal@0.10.0(@types/node@24.0.14)': + '@rushstack/terminal@0.10.0(@types/node@20.5.1)': dependencies: - '@rushstack/node-core-library': 4.0.2(@types/node@24.0.14) + '@rushstack/node-core-library': 4.0.2(@types/node@20.5.1) supports-color: 8.1.1 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 - '@rushstack/terminal@0.14.2(@types/node@18.19.119)': + '@rushstack/terminal@0.14.2(@types/node@18.19.57)': dependencies: - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.119) + '@rushstack/node-core-library': 5.9.0(@types/node@18.19.57) supports-color: 8.1.1 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.57 - '@rushstack/terminal@0.14.2(@types/node@24.0.14)': + '@rushstack/terminal@0.14.2(@types/node@20.5.1)': dependencies: - '@rushstack/node-core-library': 5.9.0(@types/node@24.0.14) + '@rushstack/node-core-library': 5.9.0(@types/node@20.5.1) supports-color: 8.1.1 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 - '@rushstack/ts-command-line@4.19.1(@types/node@18.19.119)': + '@rushstack/ts-command-line@4.19.1(@types/node@18.19.120)': dependencies: - '@rushstack/terminal': 0.10.0(@types/node@18.19.119) + '@rushstack/terminal': 0.10.0(@types/node@18.19.120) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.19.1(@types/node@24.0.14)': + '@rushstack/ts-command-line@4.19.1(@types/node@20.5.1)': dependencies: - '@rushstack/terminal': 0.10.0(@types/node@24.0.14) + '@rushstack/terminal': 0.10.0(@types/node@20.5.1) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.23.0(@types/node@18.19.119)': + '@rushstack/ts-command-line@4.23.0(@types/node@18.19.57)': dependencies: - '@rushstack/terminal': 0.14.2(@types/node@18.19.119) + '@rushstack/terminal': 0.14.2(@types/node@18.19.57) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.23.0(@types/node@24.0.14)': + '@rushstack/ts-command-line@4.23.0(@types/node@20.5.1)': dependencies: - '@rushstack/terminal': 0.14.2(@types/node@24.0.14) + '@rushstack/terminal': 0.14.2(@types/node@20.5.1) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -18905,8 +18661,8 @@ snapshots: '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.27.6 + '@babel/code-frame': 7.25.7 + '@babel/runtime': 7.25.7 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -18930,14 +18686,14 @@ snapshots: '@vue/test-utils': 2.4.6 vue: 3.5.12(typescript@5.6.3) - '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.5.17)(vue@3.5.17(typescript@5.8.3))': + '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.5.18)(vue@3.5.18(typescript@5.8.3))': dependencies: - '@babel/runtime': 7.27.6 + '@babel/runtime': 7.25.7 '@testing-library/dom': 9.3.4 '@vue/test-utils': 2.4.6 - vue: 3.5.17(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) optionalDependencies: - '@vue/compiler-sfc': 3.5.17 + '@vue/compiler-sfc': 3.5.18 '@tootallnate/once@2.0.0': {} @@ -18965,47 +18721,39 @@ snapshots: '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 - '@types/babel__generator': 7.27.0 + '@babel/types': 7.25.8 + '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 + '@types/babel__traverse': 7.20.6 - '@types/babel__generator@7.27.0': + '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.25.8 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.25.8 - '@types/babel__traverse@7.20.7': + '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.28.1 + '@babel/types': 7.25.8 '@types/chai-subset@1.3.5': dependencies: '@types/chai': 4.3.20 - '@types/chai-subset@1.3.6(@types/chai@4.3.20)': - dependencies: - '@types/chai': 4.3.20 - '@types/chai@4.3.20': {} '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 24.0.14 - - '@types/conventional-commits-parser@5.0.1': - dependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 '@types/crypto-js@4.2.2': {} '@types/echarts@4.9.22': dependencies: - '@types/zrender': 5.0.0 + '@types/zrender': 4.0.6 '@types/estree@1.0.6': {} @@ -19015,20 +18763,20 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 '@types/gulp-autoprefixer@0.0.33': dependencies: - '@types/node': 24.0.14 + '@types/node': 18.19.57 '@types/gulp-rename@2.0.6': dependencies: - '@types/node': 24.0.14 + '@types/node': 18.19.57 '@types/vinyl': 2.0.12 '@types/gulp-sass@5.0.4': dependencies: - '@types/node': 24.0.14 + '@types/node': 18.19.57 '@types/node-sass': 4.11.7 '@types/hast@3.0.4': @@ -19068,9 +18816,9 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 '@types/tough-cookie': 4.0.5 - parse5: 7.3.0 + parse5: 7.2.0 '@types/json-schema@7.0.15': {} @@ -19082,11 +18830,13 @@ snapshots: '@types/lodash-es@4.17.12': dependencies: - '@types/lodash': 4.17.20 + '@types/lodash': 4.17.12 '@types/lodash.debounce@4.0.9': dependencies: - '@types/lodash': 4.17.20 + '@types/lodash': 4.17.12 + + '@types/lodash@4.17.12': {} '@types/lodash@4.17.20': {} @@ -19110,31 +18860,31 @@ snapshots: '@types/node-sass@4.11.7': dependencies: - '@types/node': 24.0.14 + '@types/node': 18.19.120 '@types/node@12.20.55': {} - '@types/node@18.19.119': + '@types/node@18.19.120': dependencies: undici-types: 5.26.5 - '@types/node@20.5.1': {} - - '@types/node@24.0.14': + '@types/node@18.19.57': dependencies: - undici-types: 7.8.0 + undici-types: 5.26.5 + + '@types/node@20.5.1': {} '@types/normalize-package-data@2.4.4': {} '@types/resolve@1.20.2': {} - '@types/semver@7.7.0': {} + '@types/semver@7.5.8': {} '@types/stack-utils@2.0.3': {} '@types/through@0.0.33': dependencies: - '@types/node': 24.0.14 + '@types/node': 18.19.120 '@types/tough-cookie@4.0.5': {} @@ -19145,7 +18895,7 @@ snapshots: '@types/vinyl@2.0.12': dependencies: '@types/expect': 1.20.4 - '@types/node': 24.0.14 + '@types/node': 18.19.120 '@types/web-bluetooth@0.0.15': {} @@ -19161,91 +18911,89 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@types/zrender@5.0.0': - dependencies: - zrender: 5.6.1 + '@types/zrender@4.0.6': {} - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.19.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@4.9.5) + ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) - '@typescript-eslint/utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) + '@typescript-eslint/utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@4.9.5) + ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.6.3) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.8.3) + ts-api-utils: 1.3.0(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/type-utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.37.0 - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.38.0 + eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -19254,75 +19002,75 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 - eslint: 9.19.0(jiti@2.4.2) + debug: 4.3.7 + eslint: 9.19.0(jiti@2.5.1) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3)': + '@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.37.0 - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.38.0 + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.37.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.38.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - debug: 4.4.1 + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) + '@typescript-eslint/types': 8.38.0 + debug: 4.3.7 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -19332,70 +19080,70 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.37.0': + '@typescript-eslint/scope-manager@8.38.0': dependencies: - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/visitor-keys': 8.37.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 - '@typescript-eslint/tsconfig-utils@8.37.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) - debug: 4.4.1 - eslint: 9.19.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@4.9.5) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) + debug: 4.3.7 + eslint: 9.19.0(jiti@2.5.1) + ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/type-utils@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) - '@typescript-eslint/utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@4.9.5) + '@typescript-eslint/utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) + ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3) - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@5.6.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) + ts-api-utils: 1.3.0(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -19403,18 +19151,18 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.37.0': {} + '@typescript-eslint/types@8.38.0': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@4.9.5)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@4.9.5) + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: @@ -19424,12 +19172,12 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.6.3) + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -19439,84 +19187,84 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.8.3) + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.37.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.38.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.37.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/visitor-keys': 8.37.0 - debug: 4.4.1 - fast-glob: 3.3.3 + '@typescript-eslint/project-service': 8.38.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 + debug: 4.3.7 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.6.3 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/utils@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.19.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.19.0(jiti@2.5.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5)': + '@typescript-eslint/utils@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.32.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.6.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.32.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.32.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - eslint: 9.31.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) + eslint: 9.32.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -19526,48 +19274,50 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.37.0': + '@typescript-eslint/visitor-keys@8.38.0': dependencies: - '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/types': 8.38.0 eslint-visitor-keys: 4.2.1 - '@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@ungap/structured-clone@1.3.0': {} + + '@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) - '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.25.8) - vite: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) - '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.25.8) - vite: 4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) + vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - supports-color @@ -19575,30 +19325,20 @@ snapshots: dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) - '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.25.8) - vite: 5.4.9(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) - '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.25.8) - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.17(typescript@5.8.3))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) - '@rolldown/pluginutils': 1.0.0-beta.27 + '@rolldown/pluginutils': 1.0.0-beta.29 '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.28.0) - vite: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) - vue: 3.5.17(typescript@5.8.3) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - supports-color @@ -19610,60 +19350,55 @@ snapshots: dependencies: vite: 2.9.18(sass@1.89.2) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@18.19.119)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - vite: 3.2.11(@types/node@18.19.119)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) + vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - vite: 3.2.11(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: - vite: 3.2.11(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - vite: 3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - vite: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - vite: 4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) + vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: - vite: 5.4.9(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.17(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3))': dependencies: - vite: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) - vue: 3.5.17(typescript@5.8.3) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vue: 3.5.18(typescript@5.8.3) '@vitest/expect@0.29.8': dependencies: @@ -19709,7 +19444,7 @@ snapshots: '@vitest/snapshot@1.6.1': dependencies: - magic-string: 0.30.17 + magic-string: 0.30.12 pathe: 1.1.2 pretty-format: 29.7.0 @@ -19776,7 +19511,7 @@ snapshots: '@volar/typescript-faster@0.40.13': dependencies: - semver: 7.7.2 + semver: 7.6.3 '@volar/typescript@1.11.1': dependencies: @@ -19787,7 +19522,7 @@ snapshots: dependencies: '@volar/language-core': 2.4.15 path-browserify: 1.0.1 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 '@volar/typescript@2.4.6': dependencies: @@ -19799,11 +19534,11 @@ snapshots: dependencies: '@volar/code-gen': 0.40.13 '@volar/source-map': 0.40.13 - '@vue/compiler-core': 3.5.17 - '@vue/compiler-dom': 3.5.17 - '@vue/compiler-sfc': 3.5.17 + '@vue/compiler-core': 3.5.12 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-sfc': 3.5.18 '@vue/reactivity': 3.5.12 - '@vue/shared': 3.5.17 + '@vue/shared': 3.5.12 '@volar/vue-typescript@0.40.13': dependencies: @@ -19821,7 +19556,7 @@ snapshots: '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) '@babel/template': 7.25.7 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.25.7 '@babel/types': 7.25.8 '@vue/babel-helper-vue-transform-on': 1.2.5 '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.25.8) @@ -19838,7 +19573,7 @@ snapshots: '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.28.0) '@babel/template': 7.25.7 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.25.7 '@babel/types': 7.25.8 '@vue/babel-helper-vue-transform-on': 1.2.5 '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.28.0) @@ -19849,22 +19584,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.25.8)': - dependencies: - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.25.8) - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 - '@vue/babel-helper-vue-transform-on': 1.4.0 - '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.25.8) - '@vue/shared': 3.5.17 - optionalDependencies: - '@babel/core': 7.25.8 - transitivePeerDependencies: - - supports-color - '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.28.0)': dependencies: '@babel/helper-module-imports': 7.27.1 @@ -19872,10 +19591,10 @@ snapshots: '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 + '@babel/types': 7.28.2 '@vue/babel-helper-vue-transform-on': 1.4.0 '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.28.0) - '@vue/shared': 3.5.17 + '@vue/shared': 3.5.18 optionalDependencies: '@babel/core': 7.28.0 transitivePeerDependencies: @@ -19883,34 +19602,23 @@ snapshots: '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.25.8)': dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.25.7 '@babel/core': 7.25.8 '@babel/helper-module-imports': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/parser': 7.28.0 - '@vue/compiler-sfc': 3.5.17 + '@vue/compiler-sfc': 3.5.18 transitivePeerDependencies: - supports-color '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.28.0)': dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.25.7 '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/parser': 7.28.0 - '@vue/compiler-sfc': 3.5.17 - transitivePeerDependencies: - - supports-color - - '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.25.8)': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/core': 7.25.8 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/parser': 7.28.0 - '@vue/compiler-sfc': 3.5.17 + '@vue/compiler-sfc': 3.5.18 transitivePeerDependencies: - supports-color @@ -19921,22 +19629,22 @@ snapshots: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/parser': 7.28.0 - '@vue/compiler-sfc': 3.5.17 + '@vue/compiler-sfc': 3.5.18 transitivePeerDependencies: - supports-color '@vue/compiler-core@3.5.12': dependencies: - '@babel/parser': 7.25.8 + '@babel/parser': 7.28.0 '@vue/shared': 3.5.12 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@3.5.17': + '@vue/compiler-core@3.5.18': dependencies: '@babel/parser': 7.28.0 - '@vue/shared': 3.5.17 + '@vue/shared': 3.5.18 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 @@ -19946,10 +19654,10 @@ snapshots: '@vue/compiler-core': 3.5.12 '@vue/shared': 3.5.12 - '@vue/compiler-dom@3.5.17': + '@vue/compiler-dom@3.5.18': dependencies: - '@vue/compiler-core': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/compiler-core': 3.5.18 + '@vue/shared': 3.5.18 '@vue/compiler-sfc@3.5.12': dependencies: @@ -19963,13 +19671,13 @@ snapshots: postcss: 8.4.47 source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.17': + '@vue/compiler-sfc@3.5.18': dependencies: '@babel/parser': 7.28.0 - '@vue/compiler-core': 3.5.17 - '@vue/compiler-dom': 3.5.17 - '@vue/compiler-ssr': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/compiler-core': 3.5.18 + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-ssr': 3.5.18 + '@vue/shared': 3.5.18 estree-walker: 2.0.2 magic-string: 0.30.17 postcss: 8.5.6 @@ -19980,10 +19688,10 @@ snapshots: '@vue/compiler-dom': 3.5.12 '@vue/shared': 3.5.12 - '@vue/compiler-ssr@3.5.17': + '@vue/compiler-ssr@3.5.18': dependencies: - '@vue/compiler-dom': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/compiler-dom': 3.5.18 + '@vue/shared': 3.5.18 '@vue/compiler-vue2@2.7.16': dependencies: @@ -20010,22 +19718,22 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/eslint-config-prettier@9.0.0(eslint@9.31.0(jiti@2.4.2))(prettier@3.5.3)': + '@vue/eslint-config-prettier@9.0.0(eslint@9.32.0(jiti@2.5.1))(prettier@3.5.3)': dependencies: - eslint: 9.31.0(jiti@2.4.2) - eslint-config-prettier: 9.1.0(eslint@9.31.0(jiti@2.4.2)) - eslint-plugin-prettier: 5.2.3(eslint-config-prettier@9.1.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(prettier@3.5.3) + eslint: 9.32.0(jiti@2.5.1) + eslint-config-prettier: 9.1.0(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-prettier: 5.2.3(eslint-config-prettier@9.1.0(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(prettier@3.5.3) prettier: 3.5.3 transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.29.1(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5)': + '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.29.1(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5)': dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) - '@typescript-eslint/parser': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@4.9.5) - eslint: 9.31.0(jiti@2.4.2) - eslint-plugin-vue: 9.29.1(eslint@9.31.0(jiti@2.4.2)) - vue-eslint-parser: 9.4.3(eslint@9.31.0(jiti@2.4.2)) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) + '@typescript-eslint/parser': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) + eslint: 9.32.0(jiti@2.5.1) + eslint-plugin-vue: 9.29.1(eslint@9.32.0(jiti@2.5.1)) + vue-eslint-parser: 9.4.3(eslint@9.32.0(jiti@2.5.1)) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: @@ -20035,8 +19743,8 @@ snapshots: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.3.1 @@ -20049,8 +19757,8 @@ snapshots: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.3.1 @@ -20063,8 +19771,8 @@ snapshots: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.3.1 @@ -20076,9 +19784,9 @@ snapshots: '@vue/language-core@2.1.6(typescript@5.6.3)': dependencies: '@volar/language-core': 2.4.6 - '@vue/compiler-dom': 3.5.17 + '@vue/compiler-dom': 3.5.12 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.17 + '@vue/shared': 3.5.12 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -20089,9 +19797,9 @@ snapshots: '@vue/language-core@2.2.12(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.15 - '@vue/compiler-dom': 3.5.17 + '@vue/compiler-dom': 3.5.12 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.17 + '@vue/shared': 3.5.12 alien-signals: 1.0.13 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -20107,19 +19815,19 @@ snapshots: dependencies: '@vue/shared': 3.5.12 - '@vue/reactivity@3.5.17': + '@vue/reactivity@3.5.18': dependencies: - '@vue/shared': 3.5.17 + '@vue/shared': 3.5.18 '@vue/runtime-core@3.5.12': dependencies: '@vue/reactivity': 3.5.12 '@vue/shared': 3.5.12 - '@vue/runtime-core@3.5.17': + '@vue/runtime-core@3.5.18': dependencies: - '@vue/reactivity': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/reactivity': 3.5.18 + '@vue/shared': 3.5.18 '@vue/runtime-dom@3.5.12': dependencies: @@ -20128,11 +19836,11 @@ snapshots: '@vue/shared': 3.5.12 csstype: 3.1.3 - '@vue/runtime-dom@3.5.17': + '@vue/runtime-dom@3.5.18': dependencies: - '@vue/reactivity': 3.5.17 - '@vue/runtime-core': 3.5.17 - '@vue/shared': 3.5.17 + '@vue/reactivity': 3.5.18 + '@vue/runtime-core': 3.5.18 + '@vue/shared': 3.5.18 csstype: 3.1.3 '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@4.9.5))': @@ -20147,40 +19855,34 @@ snapshots: '@vue/shared': 3.5.12 vue: 3.5.12(typescript@5.6.3) - '@vue/server-renderer@3.5.17(vue@3.5.17(typescript@4.9.5))': - dependencies: - '@vue/compiler-ssr': 3.5.17 - '@vue/shared': 3.5.17 - vue: 3.5.17(typescript@4.9.5) - - '@vue/server-renderer@3.5.17(vue@3.5.17(typescript@5.6.3))': + '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.8.3))': dependencies: - '@vue/compiler-ssr': 3.5.17 - '@vue/shared': 3.5.17 - vue: 3.5.17(typescript@5.6.3) + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + vue: 3.5.12(typescript@5.8.3) - '@vue/server-renderer@3.5.17(vue@3.5.17(typescript@5.8.3))': + '@vue/server-renderer@3.5.18(vue@3.5.18(typescript@5.8.3))': dependencies: - '@vue/compiler-ssr': 3.5.17 - '@vue/shared': 3.5.17 - vue: 3.5.17(typescript@5.8.3) + '@vue/compiler-ssr': 3.5.18 + '@vue/shared': 3.5.18 + vue: 3.5.18(typescript@5.8.3) '@vue/shared@3.2.38': {} '@vue/shared@3.5.12': {} - '@vue/shared@3.5.17': {} + '@vue/shared@3.5.18': {} '@vue/test-utils@2.4.6': dependencies: - js-beautify: 1.15.4 - vue-component-type-helpers: 2.2.12 + js-beautify: 1.15.1 + vue-component-type-helpers: 2.1.6 '@vue/tsconfig@0.5.1': {} '@vuedx/compiler-sfc@0.7.2': dependencies: - '@vue/compiler-core': 3.5.17 + '@vue/compiler-core': 3.5.12 '@vuedx/shared': 0.7.5 '@vuedx/template-ast-types': 0.7.4 lru-cache: 6.0.0 @@ -20192,7 +19894,7 @@ snapshots: dependencies: '@babel/parser': 7.12.3 '@babel/types': 7.12.1 - '@vue/compiler-core': 3.5.17 + '@vue/compiler-core': 3.5.12 '@vuedx/compiler-sfc': 0.7.2 '@vuedx/shared': 0.7.5 '@vuedx/template-ast-types': 0.7.4 @@ -20219,7 +19921,7 @@ snapshots: '@vuedx/template-ast-types@0.7.4': dependencies: - '@vue/compiler-core': 3.5.17 + '@vue/compiler-core': 3.5.12 '@vuedx/transforms@0.7.6': dependencies: @@ -20233,7 +19935,7 @@ snapshots: '@vuedx/typescript-plugin-vue': 0.7.6 '@vuedx/vue-virtual-textdocument': 0.7.6 chalk: 4.1.2 - fast-glob: 3.3.3 + fast-glob: 3.3.2 minimist: 1.2.8 resolve-from: 5.0.0 typescript: 4.9.5 @@ -20271,7 +19973,7 @@ snapshots: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 12.8.2 '@vueuse/shared': 12.8.2(typescript@5.8.3) - vue: 3.5.17(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - typescript @@ -20295,31 +19997,11 @@ snapshots: - '@vue/composition-api' - vue - '@vueuse/core@9.2.0(vue@3.5.17(typescript@4.9.5))': - dependencies: - '@types/web-bluetooth': 0.0.15 - '@vueuse/metadata': 9.2.0 - '@vueuse/shared': 9.2.0(vue@3.5.17(typescript@4.9.5)) - vue-demi: 0.14.10(vue@3.5.17(typescript@4.9.5)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@vueuse/core@9.2.0(vue@3.5.17(typescript@5.6.3))': - dependencies: - '@types/web-bluetooth': 0.0.15 - '@vueuse/metadata': 9.2.0 - '@vueuse/shared': 9.2.0(vue@3.5.17(typescript@5.6.3)) - vue-demi: 0.14.10(vue@3.5.17(typescript@5.6.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - '@vueuse/integrations@12.8.2(async-validator@4.2.5)(axios@1.10.0)(focus-trap@7.6.5)(typescript@5.8.3)': dependencies: '@vueuse/core': 12.8.2(typescript@5.8.3) '@vueuse/shared': 12.8.2(typescript@5.8.3) - vue: 3.5.17(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) optionalDependencies: async-validator: 4.2.5 axios: 1.10.0 @@ -20333,7 +20015,7 @@ snapshots: '@vueuse/shared@12.8.2(typescript@5.8.3)': dependencies: - vue: 3.5.17(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - typescript @@ -20351,14 +20033,14 @@ snapshots: - '@vue/composition-api' - vue - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - fp-ts: 2.16.10 + fp-ts: 2.16.9 inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -20376,14 +20058,14 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -20401,9 +20083,62 @@ snapshots: - terser - vite - '@yankeeinlondon/gray-matter@6.2.1(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': + '@yankeeinlondon/builder-api@1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': + dependencies: + '@types/markdown-it': 12.2.3 + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + fp-ts: 2.16.9 + inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + markdown-it: 13.0.2 + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - encoding + - happy-dom + - jsdom + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + '@yankeeinlondon/builder-api@1.4.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)': + dependencies: + '@types/markdown-it': 12.2.3 + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + fp-ts: 2.16.9 + inferred-types: 0.37.6 + markdown-it: 13.0.2 + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - encoding + - jsdom + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + '@yankeeinlondon/gray-matter@6.2.1': + dependencies: + inferred-types: 0.37.6 + js-yaml: 4.1.0 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + '@yankeeinlondon/gray-matter@6.2.1(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)': dependencies: - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) js-yaml: 4.1.0 kind-of: 6.0.3 section-matter: 1.0.0 @@ -20445,7 +20180,7 @@ snapshots: '@yankeeinlondon/happy-wrapper@2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': dependencies: - fp-ts: 2.16.10 + fp-ts: 2.16.9 happy-dom: 8.9.0 native-dash: 1.25.0(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: @@ -20464,7 +20199,7 @@ snapshots: '@yankeeinlondon/happy-wrapper@2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)': dependencies: - fp-ts: 2.16.10 + fp-ts: 2.16.9 happy-dom: 8.9.0 native-dash: 1.25.0(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: @@ -20497,26 +20232,32 @@ snapshots: acorn-globals@7.0.1: dependencies: - acorn: 8.15.0 + acorn: 8.14.0 acorn-walk: 8.3.4 + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 acorn-walk@8.3.4: dependencies: - acorn: 8.15.0 + acorn: 8.14.0 acorn@8.13.0: {} + acorn@8.14.0: {} + acorn@8.15.0: {} add-stream@1.0.0: {} agent-base@6.0.2: dependencies: - debug: 4.4.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -20557,7 +20298,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.0.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -20579,39 +20320,21 @@ snapshots: '@algolia/requester-node-http': 4.24.0 '@algolia/transporter': 4.24.0 - algoliasearch@4.25.2: - dependencies: - '@algolia/cache-browser-local-storage': 4.25.2 - '@algolia/cache-common': 4.25.2 - '@algolia/cache-in-memory': 4.25.2 - '@algolia/client-account': 4.25.2 - '@algolia/client-analytics': 4.25.2 - '@algolia/client-common': 4.25.2 - '@algolia/client-personalization': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/logger-common': 4.25.2 - '@algolia/logger-console': 4.25.2 - '@algolia/recommend': 4.25.2 - '@algolia/requester-browser-xhr': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/requester-node-http': 4.25.2 - '@algolia/transporter': 4.25.2 - - algoliasearch@5.33.0: - dependencies: - '@algolia/client-abtesting': 5.33.0 - '@algolia/client-analytics': 5.33.0 - '@algolia/client-common': 5.33.0 - '@algolia/client-insights': 5.33.0 - '@algolia/client-personalization': 5.33.0 - '@algolia/client-query-suggestions': 5.33.0 - '@algolia/client-search': 5.33.0 - '@algolia/ingestion': 1.33.0 - '@algolia/monitoring': 1.33.0 - '@algolia/recommend': 5.33.0 - '@algolia/requester-browser-xhr': 5.33.0 - '@algolia/requester-fetch': 5.33.0 - '@algolia/requester-node-http': 5.33.0 + algoliasearch@5.34.1: + dependencies: + '@algolia/client-abtesting': 5.34.1 + '@algolia/client-analytics': 5.34.1 + '@algolia/client-common': 5.34.1 + '@algolia/client-insights': 5.34.1 + '@algolia/client-personalization': 5.34.1 + '@algolia/client-query-suggestions': 5.34.1 + '@algolia/client-search': 5.34.1 + '@algolia/ingestion': 1.34.1 + '@algolia/monitoring': 1.34.1 + '@algolia/recommend': 5.34.1 + '@algolia/requester-browser-xhr': 5.34.1 + '@algolia/requester-fetch': 5.34.1 + '@algolia/requester-node-http': 5.34.1 alien-signals@1.0.13: {} @@ -20824,7 +20547,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.0 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.2: dependencies: @@ -20838,7 +20561,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.0 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 arraybuffer.prototype.slice@1.0.3: dependencies: @@ -20873,7 +20596,7 @@ snapshots: async-done@1.3.2: dependencies: - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 once: 1.4.0 process-nextick-args: 2.0.1 stream-exhaust: 1.0.2 @@ -20910,7 +20633,7 @@ snapshots: available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.1.0 + possible-typed-array-names: 1.0.0 axios@0.21.4: dependencies: @@ -20918,14 +20641,6 @@ snapshots: transitivePeerDependencies: - debug - axios@1.10.0: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.3 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - axios@1.10.0: dependencies: follow-redirects: 1.15.9 @@ -20934,12 +20649,6 @@ snapshots: transitivePeerDependencies: - debug - axios@0.21.4: - dependencies: - follow-redirects: 1.15.9 - transitivePeerDependencies: - - debug - axios@1.7.7: dependencies: follow-redirects: 1.15.9 @@ -21049,7 +20758,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -21059,10 +20768,10 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.1 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 + '@types/babel__traverse': 7.20.6 babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.8): dependencies: @@ -21149,7 +20858,7 @@ snapshots: '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.8) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.8) '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.8) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.25.8) + '@babel/plugin-syntax-import-attributes': 7.25.7(@babel/core@7.25.8) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.8) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.8) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.8) @@ -21168,7 +20877,7 @@ snapshots: '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.25.7(@babel/core@7.28.0) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0) @@ -21329,12 +21038,12 @@ snapshots: boolbase@1.0.0: {} - brace-expansion@1.1.12: + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 @@ -21408,7 +21117,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6 + inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) vitest: 0.25.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -21434,7 +21143,7 @@ snapshots: browserslist@4.25.1: dependencies: caniuse-lite: 1.0.30001727 - electron-to-chromium: 1.5.185 + electron-to-chromium: 1.5.191 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -21481,10 +21190,10 @@ snapshots: dependencies: '@jsdevtools/ez-spawn': 3.0.4 cac: 6.7.14 - fast-glob: 3.3.3 + fast-glob: 3.3.2 kleur: 4.1.5 prompts: 2.4.2 - semver: 7.7.2 + semver: 7.6.3 bytes@3.1.2: {} @@ -21502,10 +21211,10 @@ snapshots: union-value: 1.0.1 unset-value: 1.0.0 - cacheable@1.10.1: + cacheable@1.10.3: dependencies: hookified: 1.10.0 - keyv: 5.3.4 + keyv: 5.4.0 call-bind-apply-helpers@1.0.2: dependencies: @@ -21523,8 +21232,8 @@ snapshots: call-bind@1.0.8: dependencies: call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 + es-define-property: 1.0.0 + get-intrinsic: 1.2.4 set-function-length: 1.2.2 call-bound@1.0.4: @@ -21684,13 +21393,9 @@ snapshots: dependencies: readdirp: 4.0.2 - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - ci-info@3.9.0: {} - cjs-module-lexer@1.4.3: {} + cjs-module-lexer@1.4.1: {} class-utils@0.3.6: dependencies: @@ -21855,7 +21560,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.54.0 + mime-db: 1.53.0 compressing@1.10.3: dependencies: @@ -21864,18 +21569,18 @@ snapshots: get-ready: 1.0.0 iconv-lite: 0.5.2 mkdirp: 0.5.6 - pump: 3.0.3 + pump: 3.0.2 streamifier: 0.1.1 tar-stream: 1.6.2 yazl: 2.5.1 - compression@1.8.0: + compression@1.8.1: dependencies: bytes: 3.1.2 compressible: 2.0.18 debug: 2.6.9 negotiator: 0.6.4 - on-headers: 1.0.2 + on-headers: 1.1.0 safe-buffer: 5.2.1 vary: 1.1.2 transitivePeerDependencies: @@ -22013,10 +21718,10 @@ snapshots: dependencies: '@hutson/parse-repository-url': 5.0.0 add-stream: 1.0.0 - conventional-changelog-writer: 8.2.0 - conventional-commits-parser: 6.2.0 - git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) - git-semver-tags: 8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + conventional-changelog-writer: 8.0.0 + conventional-commits-parser: 6.0.0 + git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0) + git-semver-tags: 8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0) hosted-git-info: 7.0.2 normalize-package-data: 6.0.2 read-package-up: 11.0.0 @@ -22073,12 +21778,13 @@ snapshots: split: 1.0.1 through2: 4.0.2 - conventional-changelog-writer@8.2.0: + conventional-changelog-writer@8.0.0: dependencies: + '@types/semver': 7.5.8 conventional-commits-filter: 5.0.0 handlebars: 4.7.8 meow: 13.2.0 - semver: 7.7.2 + semver: 7.6.3 conventional-changelog@3.1.25: dependencies: @@ -22140,7 +21846,7 @@ snapshots: meow: 12.1.1 split2: 4.2.0 - conventional-commits-parser@6.2.0: + conventional-commits-parser@6.0.0: dependencies: meow: 13.2.0 @@ -22194,40 +21900,40 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@4.9.5))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.8.3): dependencies: '@types/node': 20.5.1 - cosmiconfig: 8.3.6(typescript@5.6.3) - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) - typescript: 5.6.3 + cosmiconfig: 8.3.6(typescript@5.8.3) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) + typescript: 5.8.3 - cosmiconfig-typescript-loader@5.1.0(@types/node@24.0.14)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5): + cosmiconfig-typescript-loader@5.1.0(@types/node@20.5.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5): dependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 cosmiconfig: 9.0.0(typescript@4.9.5) jiti: 1.21.6 typescript: 4.9.5 - cosmiconfig-typescript-loader@6.1.0(@types/node@18.19.119)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@18.19.120)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 cosmiconfig: 9.0.0(typescript@5.8.3) - jiti: 2.4.2 + jiti: 2.5.1 typescript: 5.8.3 - cosmiconfig@8.3.6(typescript@5.6.3): + cosmiconfig@8.3.6(typescript@5.8.3): dependencies: - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.6.3 + typescript: 5.8.3 cosmiconfig@9.0.0(typescript@4.9.5): dependencies: env-paths: 2.2.1 - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: @@ -22236,7 +21942,7 @@ snapshots: cosmiconfig@9.0.0(typescript@5.8.3): dependencies: env-paths: 2.2.1 - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: @@ -22264,13 +21970,13 @@ snapshots: p-filter: 3.0.0 p-map: 6.0.0 - create-jest@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -22279,13 +21985,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -22294,13 +22000,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)): + create-jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -22309,13 +22015,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -22326,7 +22032,7 @@ snapshots: create-require@1.1.1: {} - cross-spawn@6.0.6: + cross-spawn@6.0.5: dependencies: nice-try: 1.0.5 path-key: 2.0.1 @@ -22334,6 +22040,12 @@ snapshots: shebang-command: 1.2.0 which: 1.3.1 + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -22349,12 +22061,12 @@ snapshots: change-case: 3.1.0 postcss: 6.0.23 - css-select@5.2.2: + css-select@5.1.0: dependencies: boolbase: 1.0.0 - css-what: 6.2.2 + css-what: 6.1.0 domhandler: 5.0.3 - domutils: 3.2.2 + domutils: 3.1.0 nth-check: 2.1.1 css-selector-extract@3.3.6: @@ -22376,7 +22088,7 @@ snapshots: mdn-data: 2.12.2 source-map-js: 1.2.1 - css-what@6.2.2: {} + css-what@6.1.0: {} css.escape@1.5.1: {} @@ -22449,7 +22161,7 @@ snapshots: date-fns@2.30.0: dependencies: - '@babel/runtime': 7.27.6 + '@babel/runtime': 7.25.7 date-fns@3.6.0: {} @@ -22484,11 +22196,11 @@ snapshots: decamelize@5.0.1: {} - decimal.js@10.6.0: {} + decimal.js@10.4.3: {} decode-uri-component@0.2.2: {} - dedent@1.6.0: {} + dedent@1.5.3: {} deep-eql@4.1.4: dependencies: @@ -22496,24 +22208,24 @@ snapshots: deep-equal@2.2.3: dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 es-get-iterator: 1.1.3 - get-intrinsic: 1.3.0 - is-arguments: 1.2.0 - is-array-buffer: 3.0.5 - is-date-object: 1.1.0 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 isarray: 2.0.5 object-is: 1.1.6 object-keys: 1.1.1 - object.assign: 4.1.7 - regexp.prototype.flags: 1.5.4 - side-channel: 1.1.0 - which-boxed-primitive: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 which-collection: 1.0.2 - which-typed-array: 1.1.19 + which-typed-array: 1.1.15 deep-is@0.1.4: {} @@ -22531,9 +22243,9 @@ snapshots: define-data-property@1.1.4: dependencies: - es-define-property: 1.0.1 + es-define-property: 1.0.0 es-errors: 1.3.0 - gopd: 1.2.0 + gopd: 1.0.1 define-lazy-prop@2.0.0: {} @@ -22632,7 +22344,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@3.2.2: + domutils@3.1.0: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -22660,7 +22372,7 @@ snapshots: duplexify@3.7.1: dependencies: - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 inherits: 2.0.4 readable-stream: 2.3.8 stream-shift: 1.0.3 @@ -22689,7 +22401,7 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.1 - semver: 7.7.2 + semver: 7.6.3 ee-first@1.1.1: {} @@ -22697,7 +22409,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.185: {} + electron-to-chromium@1.5.191: {} electron-to-chromium@1.5.41: {} @@ -22719,7 +22431,7 @@ snapshots: encodeurl@2.0.0: {} - end-of-stream@1.4.5: + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -22739,8 +22451,6 @@ snapshots: entities@4.5.0: {} - entities@6.0.1: {} - env-paths@2.2.1: {} environment@1.1.0: {} @@ -22761,7 +22471,7 @@ snapshots: es-define-property: 1.0.0 es-errors: 1.3.0 es-object-atoms: 1.0.0 - es-set-tostringtag: 2.1.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 @@ -22865,15 +22575,15 @@ snapshots: es-get-iterator@1.1.3: dependencies: - call-bind: 1.0.8 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - is-arguments: 1.2.0 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 is-map: 2.0.3 is-set: 2.0.3 - is-string: 1.1.1 + is-string: 1.0.7 isarray: 2.0.5 - stop-iteration-iterator: 1.1.0 + stop-iteration-iterator: 1.0.0 es-object-atoms@1.0.0: dependencies: @@ -22883,6 +22593,12 @@ snapshots: dependencies: es-errors: 1.3.0 + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 @@ -22907,8 +22623,8 @@ snapshots: es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 + is-date-object: 1.0.5 + is-symbol: 1.0.4 es5-ext@0.10.64: dependencies: @@ -23033,7 +22749,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.23.1): dependencies: - debug: 4.4.1 + debug: 4.3.7 esbuild: 0.23.1 transitivePeerDependencies: - supports-color @@ -23043,7 +22759,7 @@ snapshots: esbuild: 0.23.1 resolve: 1.22.8 safe-identifier: 0.4.2 - sass: 1.89.2 + sass: 1.80.3 sass-embedded: 1.80.3 esbuild-sunos-64@0.14.54: @@ -23217,52 +22933,52 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.19.0(jiti@2.5.1)))(eslint@9.19.0(jiti@2.5.1)): dependencies: confusing-browser-globals: 1.0.11 - eslint: 9.19.0(jiti@2.4.2) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.19.0(jiti@2.4.2)) + eslint: 9.19.0(jiti@2.5.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.19.0(jiti@2.5.1)) object.assign: 4.1.5 object.entries: 1.1.8 semver: 6.3.1 - eslint-config-prettier@8.10.0(eslint@9.19.0(jiti@2.4.2)): + eslint-config-prettier@8.10.0(eslint@9.19.0(jiti@2.5.1)): dependencies: - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.19.0(jiti@2.5.1) - eslint-config-prettier@9.1.0(eslint@9.31.0(jiti@2.4.2)): + eslint-config-prettier@9.1.0(eslint@9.32.0(jiti@2.5.1)): dependencies: - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 + is-core-module: 2.15.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) - eslint: 9.19.0(jiti@2.4.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) + eslint: 9.19.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.32.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint@9.19.0(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -23271,9 +22987,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.19.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -23285,13 +23001,13 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@4.9.5) + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0(jiti@2.5.1))(typescript@4.9.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -23300,9 +23016,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.32.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -23314,59 +23030,59 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.2.3(eslint-config-prettier@9.1.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(prettier@3.5.3): + eslint-plugin-prettier@5.2.3(eslint-config-prettier@9.1.0(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(prettier@3.5.3): dependencies: - eslint: 9.31.0(jiti@2.4.2) + eslint: 9.32.0(jiti@2.5.1) prettier: 3.5.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.31.0(jiti@2.4.2)) + eslint-config-prettier: 9.1.0(eslint@9.32.0(jiti@2.5.1)) - eslint-plugin-vue@9.29.1(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-vue@9.29.1(eslint@9.19.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.19.0(jiti@2.4.2)) - eslint: 9.19.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.19.0(jiti@2.5.1)) + eslint: 9.19.0(jiti@2.5.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.19.0(jiti@2.4.2)) + vue-eslint-parser: 9.4.3(eslint@9.19.0(jiti@2.5.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-vue@9.29.1(eslint@9.31.0(jiti@2.4.2)): + eslint-plugin-vue@9.29.1(eslint@9.32.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.31.0(jiti@2.4.2)) - eslint: 9.31.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.32.0(jiti@2.5.1)) + eslint: 9.32.0(jiti@2.5.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.31.0(jiti@2.4.2)) + vue-eslint-parser: 9.4.3(eslint@9.32.0(jiti@2.5.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-vue@9.33.0(eslint@9.31.0(jiti@2.4.2)): + eslint-plugin-vue@9.33.0(eslint@9.32.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) - eslint: 9.31.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.32.0(jiti@2.5.1)) + eslint: 9.32.0(jiti@2.5.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 - semver: 7.7.2 - vue-eslint-parser: 9.4.3(eslint@9.31.0(jiti@2.4.2)) + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@9.32.0(jiti@2.5.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -23392,9 +23108,9 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.19.0(jiti@2.4.2): + eslint@9.19.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.19.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 '@eslint/core': 0.10.0 @@ -23429,29 +23145,29 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 transitivePeerDependencies: - supports-color - eslint@9.31.0(jiti@2.4.2): + eslint@9.32.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.32.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.0 '@eslint/core': 0.15.1 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.31.0 - '@eslint/plugin-kit': 0.3.3 + '@eslint/js': 9.32.0 + '@eslint/plugin-kit': 0.3.4 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -23471,7 +23187,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 transitivePeerDependencies: - supports-color @@ -23484,8 +23200,8 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 4.2.0 espree@10.4.0: @@ -23496,8 +23212,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -23518,7 +23234,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -23548,7 +23264,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.6 + cross-spawn: 7.0.3 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -23720,13 +23436,13 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.0.6: {} + fast-uri@3.0.3: {} fastest-levenshtein@1.0.16: {} - fastq@1.19.1: + fastq@1.17.1: dependencies: - reusify: 1.1.0 + reusify: 1.0.4 fb-watchman@2.0.2: dependencies: @@ -23740,9 +23456,9 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - file-entry-cache@10.1.1: + file-entry-cache@10.1.3: dependencies: - flat-cache: 6.1.11 + flat-cache: 6.1.12 file-entry-cache@8.0.0: dependencies: @@ -23796,7 +23512,7 @@ snapshots: make-dir: 3.1.0 pkg-dir: 4.2.0 - find-up-simple@1.0.1: {} + find-up-simple@1.0.0: {} find-up@1.1.2: dependencies: @@ -23860,15 +23576,17 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.3.1 keyv: 4.5.4 - flat-cache@6.1.11: + flat-cache@6.1.12: dependencies: - cacheable: 1.10.1 + cacheable: 1.10.3 flatted: 3.3.3 hookified: 1.10.0 + flatted@3.3.1: {} + flatted@3.3.3: {} flush-write-stream@1.1.1: @@ -23919,17 +23637,9 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 - form-data@4.0.3: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 - forwarded@0.2.0: {} - fp-ts@2.16.10: {} + fp-ts@2.16.9: {} fraction.js@4.3.7: {} @@ -23979,7 +23689,7 @@ snapshots: fsevents@1.2.13: dependencies: bindings: 1.5.0 - nan: 2.23.0 + nan: 2.22.0 optional: true fsevents@2.3.3: @@ -24084,9 +23794,9 @@ snapshots: meow: 12.1.1 split2: 4.2.0 - git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0): + git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0): dependencies: - '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0) meow: 13.2.0 transitivePeerDependencies: - conventional-commits-filter @@ -24102,9 +23812,9 @@ snapshots: meow: 8.1.2 semver: 6.3.1 - git-semver-tags@8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0): + git-semver-tags@8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0): dependencies: - '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0) meow: 13.2.0 transitivePeerDependencies: - conventional-commits-filter @@ -24237,13 +23947,13 @@ snapshots: globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.2.0 + gopd: 1.0.1 globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.3 + fast-glob: 3.3.2 ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -24251,7 +23961,7 @@ snapshots: globby@13.2.2: dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.3 + fast-glob: 3.3.2 ignore: 5.3.2 merge2: 1.4.1 slash: 4.0.0 @@ -24437,8 +24147,6 @@ snapshots: has-bigints@1.0.2: {} - has-bigints@1.1.0: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -24449,7 +24157,7 @@ snapshots: has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.1 + es-define-property: 1.0.0 has-proto@1.0.3: {} @@ -24463,7 +24171,7 @@ snapshots: has-tostringtag@1.0.2: dependencies: - has-symbols: 1.1.0 + has-symbols: 1.0.3 has-value@0.3.1: dependencies: @@ -24562,14 +24270,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -24608,11 +24316,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - import-lazy@4.0.0: {} import-local@3.2.0: @@ -24628,11 +24331,11 @@ snapshots: indent-string@5.0.0: {} - index-to-position@1.1.0: {} + index-to-position@0.1.2: {} inferred-types@0.37.6: dependencies: - brilliant-errors: 0.7.3(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + brilliant-errors: 0.7.3(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) inferred-types@0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0): dependencies: @@ -24698,14 +24401,14 @@ snapshots: inquirer@9.3.7: dependencies: - '@inquirer/figures': 1.0.12 + '@inquirer/figures': 1.0.7 ansi-escapes: 4.3.2 cli-width: 4.1.0 external-editor: 3.1.0 mute-stream: 1.0.0 ora: 5.4.1 run-async: 3.0.0 - rxjs: 7.8.2 + rxjs: 7.8.1 string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 @@ -24715,7 +24418,7 @@ snapshots: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.1.0 + side-channel: 1.0.6 internal-slot@1.1.0: dependencies: @@ -24746,9 +24449,9 @@ snapshots: dependencies: hasown: 2.0.2 - is-arguments@1.2.0: + is-arguments@1.1.1: dependencies: - call-bound: 1.0.4 + call-bind: 1.0.7 has-tostringtag: 1.0.2 is-array-buffer@3.0.4: @@ -24778,7 +24481,7 @@ snapshots: is-bigint@1.1.0: dependencies: - has-bigints: 1.1.0 + has-bigints: 1.0.2 is-binary-path@1.0.1: dependencies: @@ -24966,7 +24669,7 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 is-regex@1.1.4: dependencies: @@ -25065,10 +24768,10 @@ snapshots: dependencies: call-bound: 1.0.4 - is-weakset@2.0.4: + is-weakset@2.0.3: dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-what@4.1.16: {} @@ -25096,7 +24799,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@babel/parser': 7.28.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -25106,11 +24809,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@babel/parser': 7.28.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -25122,7 +24825,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1 + debug: 4.3.7 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -25162,10 +24865,10 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 chalk: 4.1.2 co: 4.6.0 - dedent: 1.6.0 + dedent: 1.5.3 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -25182,16 +24885,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -25201,16 +24904,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -25220,16 +24923,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)): + jest-cli@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + create-jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -25239,16 +24942,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -25258,12 +24961,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.0) + babel-jest: 29.7.0(@babel/core@7.25.8) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -25283,18 +24986,18 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + '@types/node': 18.19.120 + ts-node: 10.9.2(@types/node@18.19.120)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.0) + babel-jest: 29.7.0(@babel/core@7.25.8) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -25314,18 +25017,18 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) + '@types/node': 18.19.120 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.0) + babel-jest: 29.7.0(@babel/core@7.25.8) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -25345,18 +25048,18 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.119 - ts-node: 10.9.2(@types/node@24.0.14)(typescript@4.9.5) + '@types/node': 18.19.120 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.0) + babel-jest: 29.7.0(@babel/core@7.25.8) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -25376,18 +25079,18 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.119 - ts-node: 10.9.2(@types/node@24.0.14)(typescript@5.6.3) + '@types/node': 18.19.120 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.0) + babel-jest: 29.7.0(@babel/core@7.25.8) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -25407,18 +25110,49 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 24.0.14 - ts-node: 10.9.2(@types/node@24.0.14)(typescript@4.9.5) + '@types/node': 18.19.57 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.0) + babel-jest: 29.7.0(@babel/core@7.25.8) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.5.1 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): + dependencies: + '@babel/core': 7.25.8 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.8) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -25438,8 +25172,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 24.0.14 - ts-node: 10.9.2(@types/node@24.0.14)(typescript@5.6.3) + '@types/node': 20.5.1 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -25476,7 +25210,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 18.19.119 + '@types/node': 18.19.120 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -25490,7 +25224,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -25502,7 +25236,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 18.19.119 + '@types/node': 18.19.120 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -25528,7 +25262,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.25.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -25541,7 +25275,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -25565,8 +25299,8 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 + resolve: 1.22.8 + resolve.exports: 2.0.2 slash: 3.0.0 jest-runner@29.7.0: @@ -25576,7 +25310,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -25604,9 +25338,9 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 chalk: 4.1.2 - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -25624,15 +25358,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.28.0 - '@babel/generator': 7.28.0 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) - '@babel/types': 7.28.1 + '@babel/core': 7.25.8 + '@babel/generator': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) + '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.8) + '@babel/types': 7.25.8 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.8) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -25643,14 +25377,14 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.7.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -25669,7 +25403,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.119 + '@types/node': 18.19.120 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -25678,53 +25412,53 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)): + jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)): + jest@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)): + jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5)) + jest-cli: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)): + jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@24.0.14)(ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -25733,11 +25467,11 @@ snapshots: jiti@1.21.6: {} - jiti@2.4.2: {} + jiti@2.5.1: {} jju@1.4.0: {} - js-beautify@1.15.4: + js-beautify@1.15.1: dependencies: config-chain: 1.1.13 editorconfig: 1.0.4 @@ -25759,8 +25493,6 @@ snapshots: js-tokens@9.0.0: {} - js-tokens@9.0.1: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -25773,21 +25505,21 @@ snapshots: jsdom@20.0.3: dependencies: abab: 2.0.6 - acorn: 8.15.0 + acorn: 8.14.0 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.6.0 + decimal.js: 10.4.3 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.3 + form-data: 4.0.1 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.3.0 + nwsapi: 2.2.13 + parse5: 7.2.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -25796,7 +25528,7 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.18.3 + ws: 8.18.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -25807,8 +25539,6 @@ snapshots: jsesc@3.0.2: {} - jsesc@3.1.0: {} - json-buffer@3.0.1: {} json-parse-better-errors@1.0.2: {} @@ -25859,9 +25589,9 @@ snapshots: dependencies: json-buffer: 3.0.1 - keyv@5.3.4: + keyv@5.4.0: dependencies: - '@keyv/serialize': 1.0.3 + '@keyv/serialize': 1.1.0 kind-of@1.1.0: {} @@ -25920,7 +25650,7 @@ snapshots: is-plain-object: 2.0.4 object.map: 1.0.1 rechoir: 0.6.2 - resolve: 1.22.10 + resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -25947,7 +25677,7 @@ snapshots: debug: 4.4.1 execa: 8.0.1 lilconfig: 3.1.3 - listr2: 8.3.3 + listr2: 8.2.5 micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 @@ -25955,7 +25685,7 @@ snapshots: transitivePeerDependencies: - supports-color - listr2@8.3.3: + listr2@8.2.5: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -25986,11 +25716,6 @@ snapshots: mlly: 1.7.2 pkg-types: 1.2.1 - local-pkg@0.5.1: - dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 - locate-path@2.0.0: dependencies: p-locate: 2.0.0 @@ -26104,7 +25829,7 @@ snapshots: log-symbols@5.1.0: dependencies: - chalk: 5.3.0 + chalk: 5.4.1 is-unicode-supported: 1.3.0 log-symbols@6.0.0: @@ -26138,11 +25863,6 @@ snapshots: lru-cache@11.1.0: {} - lru-cache@4.1.5: - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -26169,7 +25889,7 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/sourcemap-codec': 1.5.0 make-dir-cli@4.0.0: dependencies: @@ -26187,7 +25907,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.6.3 make-dir@5.0.0: {} @@ -26260,7 +25980,7 @@ snapshots: dependencies: findup-sync: 2.0.0 micromatch: 3.1.10 - resolve: 1.22.10 + resolve: 1.22.8 stack-trace: 0.0.10 transitivePeerDependencies: - supports-color @@ -26294,7 +26014,7 @@ snapshots: mdn-data@2.12.2: {} - mdn-data@2.22.1: {} + mdn-data@2.23.0: {} mdurl@1.0.1: {} @@ -26404,7 +26124,7 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.54.0: {} + mime-db@1.53.0: {} mime-types@2.1.35: dependencies: @@ -26426,27 +26146,27 @@ snapshots: minimatch@3.0.8: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.11 minimatch@3.1.2: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.11 minimatch@5.1.6: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.1 minimatch@7.4.6: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.1 minimatch@9.0.1: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.1 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.1 minimist-options@4.1.0: dependencies: @@ -26477,18 +26197,11 @@ snapshots: mlly@1.7.2: dependencies: - acorn: 8.15.0 + acorn: 8.14.0 pathe: 1.1.2 pkg-types: 1.2.1 ufo: 1.5.4 - mlly@1.7.4: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - modify-values@1.0.1: {} moment@2.29.1: {} @@ -26517,7 +26230,7 @@ snapshots: mxgraph@4.2.2: {} - nan@2.23.0: + nan@2.22.0: optional: true nanoid@3.3.11: {} @@ -26635,21 +26348,21 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.10 + resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.16.1 - semver: 7.7.2 + is-core-module: 2.15.1 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.7.2 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -26668,12 +26381,12 @@ snapshots: dependencies: ansi-styles: 3.2.1 chalk: 2.4.2 - cross-spawn: 6.0.6 + cross-spawn: 6.0.5 memorystream: 0.3.1 minimatch: 3.1.2 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.8.3 + shell-quote: 1.8.1 string.prototype.padend: 3.1.6 npm-run-path@4.0.1: @@ -26690,7 +26403,7 @@ snapshots: number-is-nan@1.0.1: {} - nwsapi@2.2.20: {} + nwsapi@2.2.13: {} object-assign@3.0.0: {} @@ -26710,7 +26423,7 @@ snapshots: object-is@1.1.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 object-keys@1.1.1: {} @@ -26750,16 +26463,16 @@ snapshots: object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 object.groupby@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.3 object.map@1.0.1: dependencies: @@ -26792,13 +26505,13 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.0.0 on-finished@2.4.1: dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + on-headers@1.1.0: {} once@1.4.0: dependencies: @@ -26863,7 +26576,7 @@ snapshots: ora@8.1.0: dependencies: - chalk: 5.4.1 + chalk: 5.3.0 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -26941,7 +26654,7 @@ snapshots: p-limit@5.0.0: dependencies: - yocto-queue: 1.2.1 + yocto-queue: 1.1.1 p-locate@2.0.0: dependencies: @@ -26975,9 +26688,7 @@ snapshots: package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.10 + package-manager-detector@0.2.2: {} param-case@2.1.1: dependencies: @@ -27012,24 +26723,24 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-json@8.3.0: + parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.27.1 - index-to-position: 1.1.0 - type-fest: 4.41.0 + '@babel/code-frame': 7.25.7 + index-to-position: 0.1.2 + type-fest: 4.26.1 parse-node-version@1.0.1: {} parse-passwd@1.0.0: {} - parse5@7.3.0: + parse5@7.2.0: dependencies: - entities: 6.0.1 + entities: 4.5.0 parseurl@1.3.3: {} @@ -27086,7 +26797,7 @@ snapshots: lru-cache: 11.1.0 minipass: 7.1.2 - path-to-regexp@0.1.10: {} + path-to-regexp@0.1.12: {} path-type@1.1.0: dependencies: @@ -27102,8 +26813,6 @@ snapshots: pathe@1.1.2: {} - pathe@2.0.3: {} - pathval@1.1.1: {} pause-stream@0.0.11: @@ -27120,8 +26829,6 @@ snapshots: picomatch@4.0.2: {} - picomatch@4.0.3: {} - pidtree@0.3.1: {} pidtree@0.6.0: {} @@ -27138,7 +26845,7 @@ snapshots: pinkie@2.0.4: {} - pirates@4.0.7: {} + pirates@4.0.6: {} pkg-dir@4.2.0: dependencies: @@ -27150,12 +26857,6 @@ snapshots: mlly: 1.7.2 pathe: 1.1.2 - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.3 - plugin-error@0.1.2: dependencies: ansi-cyan: 0.1.1 @@ -27188,8 +26889,6 @@ snapshots: possible-typed-array-names@1.0.0: {} - possible-typed-array-names@1.1.0: {} - postcss-media-query-parser@0.2.3: {} postcss-resolve-nested-selector@0.1.6: {} @@ -27200,11 +26899,11 @@ snapshots: postcss-scss@3.0.5: dependencies: - postcss: 8.5.6 + postcss: 8.4.47 - postcss-scss@4.0.9(postcss@8.5.6): + postcss-scss@4.0.9(postcss@8.4.47): dependencies: - postcss: 8.5.6 + postcss: 8.4.47 postcss-selector-parser@6.1.2: dependencies: @@ -27216,9 +26915,9 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sorting@8.0.2(postcss@8.5.6): + postcss-sorting@8.0.2(postcss@8.4.47): dependencies: - postcss: 8.5.6 + postcss: 8.4.47 postcss-value-parser@4.2.0: {} @@ -27242,8 +26941,6 @@ snapshots: preact@10.24.3: {} - preact@10.26.9: {} - prelude-ls@1.2.1: {} preserve@0.2.0: @@ -27278,7 +26975,7 @@ snapshots: pretty-hrtime@1.0.3: {} - prismjs@1.30.0: {} + prismjs@1.29.0: {} private@0.1.8: {} @@ -27306,18 +27003,16 @@ snapshots: proxy-from-env@1.1.0: {} - psl@1.15.0: - dependencies: - punycode: 2.3.1 + psl@1.9.0: {} pump@2.0.1: dependencies: - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 once: 1.4.0 - pump@3.0.3: + pump@3.0.2: dependencies: - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 once: 1.4.0 pumpify@1.5.1: @@ -27336,9 +27031,7 @@ snapshots: qs@6.13.0: dependencies: - side-channel: 1.1.0 - - quansync@0.2.10: {} + side-channel: 1.0.6 querystringify@2.2.0: {} @@ -27390,9 +27083,9 @@ snapshots: read-package-up@11.0.0: dependencies: - find-up-simple: 1.0.1 + find-up-simple: 1.0.0 read-pkg: 9.0.1 - type-fest: 4.41.0 + type-fest: 4.26.1 read-pkg-up@1.0.1: dependencies: @@ -27446,8 +27139,8 @@ snapshots: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 - parse-json: 8.3.0 - type-fest: 4.41.0 + parse-json: 8.1.0 + type-fest: 4.26.1 unicorn-magic: 0.1.0 read-yaml-file@1.1.0: @@ -27501,11 +27194,9 @@ snapshots: readdirp@4.0.2: {} - readdirp@4.1.2: {} - rechoir@0.6.2: dependencies: - resolve: 1.22.10 + resolve: 1.22.8 redent@3.0.0: dependencies: @@ -27544,7 +27235,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.27.6 + '@babel/runtime': 7.25.7 regex-cache@0.4.4: dependencies: @@ -27674,11 +27365,11 @@ snapshots: resolve-url@0.2.1: {} - resolve.exports@2.0.3: {} + resolve.exports@2.0.2: {} resolve@1.19.0: dependencies: - is-core-module: 2.16.1 + is-core-module: 2.15.1 path-parse: 1.0.7 resolve@1.22.10: @@ -27689,7 +27380,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.16.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -27710,7 +27401,7 @@ snapshots: ret@0.1.15: {} - reusify@1.1.0: {} + reusify@1.0.4: {} rfdc@1.4.1: {} @@ -27783,9 +27474,9 @@ snapshots: transitivePeerDependencies: - supports-color - rollup-plugin-vue@6.0.0(@vue/compiler-sfc@3.5.17): + rollup-plugin-vue@6.0.0(@vue/compiler-sfc@3.5.18): dependencies: - '@vue/compiler-sfc': 3.5.17 + '@vue/compiler-sfc': 3.5.18 debug: 4.3.7 hash-sum: 2.0.0 rollup-pluginutils: 2.8.2 @@ -27866,10 +27557,6 @@ snapshots: dependencies: tslib: 2.8.0 - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 - safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -27976,11 +27663,11 @@ snapshots: sass-embedded@1.80.3: dependencies: - '@bufbuild/protobuf': 2.6.0 + '@bufbuild/protobuf': 2.2.0 buffer-builder: 0.2.0 colorjs.io: 0.5.2 immutable: 4.3.7 - rxjs: 7.8.2 + rxjs: 7.8.1 supports-color: 8.1.1 varint: 6.0.0 optionalDependencies: @@ -28020,11 +27707,11 @@ snapshots: sass@1.89.2: dependencies: - chokidar: 4.0.3 + chokidar: 4.0.1 immutable: 5.1.3 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.1 + '@parcel/watcher': 2.4.1 saxes@6.0.0: dependencies: @@ -28101,8 +27788,8 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 has-property-descriptors: 1.0.2 set-function-name@2.0.2: @@ -28141,8 +27828,6 @@ snapshots: shell-quote@1.8.1: {} - shell-quote@1.8.3: {} - shelljs@0.8.5: dependencies: glob: 7.2.3 @@ -28186,6 +27871,13 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + side-channel@1.1.0: dependencies: es-errors: 1.3.0 @@ -28202,7 +27894,7 @@ snapshots: sirv@1.0.19: dependencies: - '@polka/url': 1.0.0-next.29 + '@polka/url': 1.0.0-next.28 mrmime: 1.0.1 totalist: 1.1.0 @@ -28313,16 +28005,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 + spdx-license-ids: 3.0.20 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.21: {} + spdx-license-ids@3.0.20: {} speakingurl@14.0.1: {} @@ -28361,14 +28053,16 @@ snapshots: std-env@3.7.0: {} - std-env@3.9.0: {} - stdin-discarder@0.1.0: dependencies: bl: 5.1.0 stdin-discarder@0.2.2: {} + stop-iteration-iterator@1.0.0: + dependencies: + internal-slot: 1.0.7 + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -28418,10 +28112,10 @@ snapshots: string.prototype.padend@3.1.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 string.prototype.trim@1.2.10: dependencies: @@ -28451,13 +28145,13 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.0.0 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.0.0 string_decoder@0.10.31: {} @@ -28512,57 +28206,53 @@ snapshots: strip-literal@1.3.0: dependencies: - acorn: 8.13.0 + acorn: 8.14.0 strip-literal@2.1.0: dependencies: js-tokens: 9.0.0 - strip-literal@2.1.1: - dependencies: - js-tokens: 9.0.1 - strong-type@0.1.6: {} strong-type@1.1.0: {} - stylelint-config-recommended-scss@14.1.0(postcss@8.5.6)(stylelint@16.21.1(typescript@5.8.3)): + stylelint-config-recommended-scss@14.1.0(postcss@8.4.47)(stylelint@16.22.0(typescript@5.8.3)): dependencies: - postcss-scss: 4.0.9(postcss@8.5.6) - stylelint: 16.21.1(typescript@5.8.3) - stylelint-config-recommended: 14.0.1(stylelint@16.21.1(typescript@5.8.3)) - stylelint-scss: 6.12.1(stylelint@16.21.1(typescript@5.8.3)) + postcss-scss: 4.0.9(postcss@8.4.47) + stylelint: 16.22.0(typescript@5.8.3) + stylelint-config-recommended: 14.0.1(stylelint@16.22.0(typescript@5.8.3)) + stylelint-scss: 6.12.1(stylelint@16.22.0(typescript@5.8.3)) optionalDependencies: - postcss: 8.5.6 + postcss: 8.4.47 - stylelint-config-recommended@14.0.1(stylelint@16.21.1(typescript@5.8.3)): + stylelint-config-recommended@14.0.1(stylelint@16.22.0(typescript@5.8.3)): dependencies: - stylelint: 16.21.1(typescript@5.8.3) + stylelint: 16.22.0(typescript@5.8.3) - stylelint-config-standard@36.0.1(stylelint@16.21.1(typescript@5.8.3)): + stylelint-config-standard@36.0.1(stylelint@16.22.0(typescript@5.8.3)): dependencies: - stylelint: 16.21.1(typescript@5.8.3) - stylelint-config-recommended: 14.0.1(stylelint@16.21.1(typescript@5.8.3)) + stylelint: 16.22.0(typescript@5.8.3) + stylelint-config-recommended: 14.0.1(stylelint@16.22.0(typescript@5.8.3)) - stylelint-order@6.0.4(stylelint@16.21.1(typescript@5.8.3)): + stylelint-order@6.0.4(stylelint@16.22.0(typescript@5.8.3)): dependencies: - postcss: 8.5.6 - postcss-sorting: 8.0.2(postcss@8.5.6) - stylelint: 16.21.1(typescript@5.8.3) + postcss: 8.4.47 + postcss-sorting: 8.0.2(postcss@8.4.47) + stylelint: 16.22.0(typescript@5.8.3) - stylelint-scss@6.12.1(stylelint@16.21.1(typescript@5.8.3)): + stylelint-scss@6.12.1(stylelint@16.22.0(typescript@5.8.3)): dependencies: css-tree: 3.1.0 is-plain-object: 5.0.0 known-css-properties: 0.36.0 - mdn-data: 2.22.1 + mdn-data: 2.23.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - stylelint: 16.21.1(typescript@5.8.3) + stylelint: 16.22.0(typescript@5.8.3) - stylelint@16.21.1(typescript@5.8.3): + stylelint@16.22.0(typescript@5.8.3): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -28577,7 +28267,7 @@ snapshots: debug: 4.4.1 fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 10.1.1 + file-entry-cache: 10.1.3 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -28642,9 +28332,9 @@ snapshots: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 - css-select: 5.2.2 + css-select: 5.1.0 css-tree: 2.3.1 - css-what: 6.2.2 + css-what: 6.1.0 csso: 5.0.5 picocolors: 1.1.1 @@ -28658,7 +28348,7 @@ snapshots: synckit@0.9.2: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.8.1 + tslib: 2.8.0 tabbable@6.2.0: {} @@ -28676,10 +28366,10 @@ snapshots: dependencies: bl: 1.2.3 buffer-alloc: 1.2.0 - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 fs-constants: 1.0.0 readable-stream: 2.3.8 - to-buffer: 1.2.1 + to-buffer: 1.1.1 xtend: 4.0.2 temp-dir@2.0.0: {} @@ -28700,7 +28390,7 @@ snapshots: terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.15.0 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -28768,11 +28458,7 @@ snapshots: is-absolute: 1.0.0 is-negated-glob: 1.0.0 - to-buffer@1.2.1: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 + to-buffer@1.1.1: {} to-fast-properties@1.0.3: {} @@ -28808,7 +28494,7 @@ snapshots: tough-cookie@4.1.4: dependencies: - psl: 1.15.0 + psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 @@ -28833,15 +28519,15 @@ snapshots: dependencies: matchit: 1.1.0 - ts-api-utils@1.4.3(typescript@4.9.5): + ts-api-utils@1.3.0(typescript@4.9.5): dependencies: typescript: 4.9.5 - ts-api-utils@1.4.3(typescript@5.6.3): + ts-api-utils@1.3.0(typescript@5.6.3): dependencies: typescript: 5.6.3 - ts-api-utils@1.4.3(typescript@5.8.3): + ts-api-utils@1.3.0(typescript@5.8.3): dependencies: typescript: 5.8.3 @@ -28849,12 +28535,12 @@ snapshots: dependencies: typescript: 5.8.3 - ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(esbuild@0.23.1)(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(esbuild@0.23.1)(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@18.19.119)(ts-node@10.9.2(@types/node@18.19.119)(typescript@5.8.3)) + jest: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -28875,42 +28561,42 @@ snapshots: '@ts-morph/common': 0.19.0 code-block-writer: 12.0.0 - ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5): + ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.57 + '@types/node': 18.19.120 acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - optional: true - ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3): + ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.119 - acorn: 8.15.0 + '@types/node': 20.5.1 + acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optional: true ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3): dependencies: @@ -28920,7 +28606,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 20.5.1 - acorn: 8.15.0 + acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -28930,40 +28616,21 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@24.0.14)(typescript@4.9.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 24.0.14 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optional: true - - ts-node@10.9.2(@types/node@24.0.14)(typescript@5.6.3): + ts-node@10.9.2(@types/node@20.5.1)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.0.14 - acorn: 8.15.0 + '@types/node': 20.5.1 + acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.3 + typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -28980,8 +28647,6 @@ snapshots: tslib@2.8.0: {} - tslib@2.8.1: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -29002,6 +28667,8 @@ snapshots: type-fest@1.4.0: {} + type-fest@4.26.1: {} + type-fest@4.41.0: {} type-is@1.6.18: @@ -29034,7 +28701,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.3 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -29052,7 +28719,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.3 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -29070,21 +28737,21 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.3 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 + possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.10 typedarray@0.0.6: {} - typescript-eslint@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.32.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -29103,8 +28770,6 @@ snapshots: ufo@1.5.4: {} - ufo@1.6.1: {} - uglify-js@3.19.3: {} unbox-primitive@1.0.2: @@ -29117,7 +28782,7 @@ snapshots: unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 - has-bigints: 1.1.0 + has-bigints: 1.0.2 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 @@ -29140,8 +28805,6 @@ snapshots: undici-types@5.26.5: {} - undici-types@7.8.0: {} - unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -29254,7 +28917,7 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -29342,14 +29005,14 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vite-node@0.29.8(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0): + vite-node@0.29.8(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0): dependencies: cac: 6.7.14 debug: 4.3.7 mlly: 1.7.2 pathe: 1.1.2 picocolors: 1.1.1 - vite: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -29360,14 +29023,14 @@ snapshots: - supports-color - terser - vite-node@0.29.8(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0): + vite-node@0.29.8(@types/node@18.19.57)(sass@1.89.2)(terser@5.36.0): dependencies: cac: 6.7.14 debug: 4.3.7 mlly: 1.7.2 pathe: 1.1.2 picocolors: 1.1.1 - vite: 4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -29378,13 +29041,13 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): + vite-node@1.6.0(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.9(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.19(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -29396,31 +29059,13 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): + vite-node@1.6.1(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vite-node@1.6.1(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): - dependencies: - cac: 6.7.14 - debug: 4.4.1 - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -29434,29 +29079,11 @@ snapshots: vite-plugin-banner@0.8.0: {} - vite-plugin-css-injected-by-js@3.5.2(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0)): - dependencies: - vite: 4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) - - vite-plugin-dts@2.3.0(@types/node@18.19.119)(rollup@4.45.1)(vite@5.4.9(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-css-injected-by-js@3.5.2(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0)): dependencies: - '@babel/parser': 7.28.0 - '@microsoft/api-extractor': 7.47.11(@types/node@18.19.119) - '@rollup/pluginutils': 5.1.2(rollup@4.45.1) - '@rushstack/node-core-library': 3.66.1(@types/node@18.19.119) - debug: 4.3.7 - fast-glob: 3.3.2 - fs-extra: 10.1.0 - kolorist: 1.8.0 - magic-string: 0.29.0 - ts-morph: 18.0.0 - vite: 5.4.9(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color + vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) - vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: '@babel/parser': 7.25.8 '@microsoft/api-extractor': 7.47.11(@types/node@18.19.57) @@ -29468,162 +29095,163 @@ snapshots: kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@babel/parser': 7.28.0 - '@microsoft/api-extractor': 7.47.11(@types/node@24.0.14) + '@babel/parser': 7.25.8 + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@rushstack/node-core-library': 3.66.1(@types/node@24.0.14) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@24.0.14)(rollup@4.24.0)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)): dependencies: - '@babel/parser': 7.28.0 - '@microsoft/api-extractor': 7.47.11(@types/node@24.0.14) + '@babel/parser': 7.25.8 + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@rushstack/node-core-library': 3.66.1(@types/node@24.0.14) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0)): dependencies: - '@babel/parser': 7.28.0 - '@microsoft/api-extractor': 7.47.11(@types/node@24.0.14) + '@babel/parser': 7.25.8 + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.45.1) - '@rushstack/node-core-library': 3.66.1(@types/node@24.0.14) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@babel/parser': 7.28.0 - '@microsoft/api-extractor': 7.47.11(@types/node@24.0.14) + '@babel/parser': 7.25.8 + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.45.1) - '@rushstack/node-core-library': 3.66.1(@types/node@24.0.14) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@24.0.14)(rollup@4.45.1)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@babel/parser': 7.28.0 - '@microsoft/api-extractor': 7.47.11(@types/node@24.0.14) + '@babel/parser': 7.25.8 + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.45.1) - '@rushstack/node-core-library': 3.66.1(@types/node@24.0.14) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@3.9.1(@types/node@18.19.119)(rollup@4.45.1)(typescript@5.8.3)(vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)): + vite-plugin-dts@3.9.1(@types/node@18.19.120)(rollup@4.45.1)(typescript@5.8.3)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)): dependencies: - '@microsoft/api-extractor': 7.43.0(@types/node@18.19.119) - '@rollup/pluginutils': 5.2.0(rollup@4.45.1) + '@microsoft/api-extractor': 7.43.0(@types/node@18.19.120) + '@rollup/pluginutils': 5.1.2(rollup@4.45.1) '@vue/language-core': 1.8.27(typescript@5.8.3) - debug: 4.4.1 + debug: 4.3.7 kolorist: 1.8.0 - magic-string: 0.30.17 + magic-string: 0.30.12 typescript: 5.8.3 vue-tsc: 1.8.27(typescript@5.8.3) optionalDependencies: - vite: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@3.9.1(@types/node@24.0.14)(rollup@4.45.1)(typescript@4.9.5)(vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0)): + vite-plugin-dts@3.9.1(@types/node@20.5.1)(rollup@4.45.1)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0)): dependencies: - '@microsoft/api-extractor': 7.43.0(@types/node@24.0.14) - '@rollup/pluginutils': 5.2.0(rollup@4.45.1) + '@microsoft/api-extractor': 7.43.0(@types/node@20.5.1) + '@rollup/pluginutils': 5.1.2(rollup@4.45.1) '@vue/language-core': 1.8.27(typescript@4.9.5) - debug: 4.4.1 + debug: 4.3.7 kolorist: 1.8.0 - magic-string: 0.30.17 + magic-string: 0.30.12 typescript: 4.9.5 vue-tsc: 1.8.27(typescript@4.9.5) optionalDependencies: - vite: 4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@3.9.1(@types/node@24.0.14)(rollup@4.45.1)(typescript@5.6.3)(vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@3.9.1(@types/node@20.5.1)(rollup@4.45.1)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@microsoft/api-extractor': 7.43.0(@types/node@24.0.14) - '@rollup/pluginutils': 5.2.0(rollup@4.45.1) + '@microsoft/api-extractor': 7.43.0(@types/node@20.5.1) + '@rollup/pluginutils': 5.1.2(rollup@4.45.1) '@vue/language-core': 1.8.27(typescript@5.6.3) - debug: 4.4.1 + debug: 4.3.7 kolorist: 1.8.0 - magic-string: 0.30.17 + magic-string: 0.30.12 typescript: 5.6.3 vue-tsc: 1.8.27(typescript@5.6.3) optionalDependencies: - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-md@0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): + vite-plugin-md@0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) gray-matter: 4.0.3 markdown-it: 13.0.2 source-map-js: 1.2.1 transitivePeerDependencies: - '@edge-runtime/vm' + - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding @@ -29636,18 +29264,17 @@ snapshots: - sugarss - supports-color - terser + - vite - vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/builder-api': 1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + gray-matter: 4.0.3 markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding @@ -29661,14 +29288,14 @@ snapshots: - supports-color - terser - vite-plugin-md@0.21.5(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.21.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) + '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -29687,7 +29314,7 @@ snapshots: vite-plugin-md@0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/builder-api': 1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 @@ -29708,15 +29335,15 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -29732,39 +29359,15 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)) + '@yankeeinlondon/builder-api': 1.4.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + '@yankeeinlondon/gray-matter': 6.2.1 + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-md@0.22.5(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@vitejs/plugin-vue': 5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -29789,16 +29392,16 @@ snapshots: svgo: 3.3.2 vue: 3.5.12(typescript@5.6.3) - vite-svg-loader@5.1.0(vue@3.5.17(typescript@5.8.3)): + vite-svg-loader@5.1.0(vue@3.5.18(typescript@5.8.3)): dependencies: svgo: 3.3.2 - vue: 3.5.17(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) vite@2.9.18(sass@1.80.3): dependencies: esbuild: 0.14.54 - postcss: 8.5.6 - resolve: 1.22.10 + postcss: 8.4.47 + resolve: 1.22.8 rollup: 2.77.3 optionalDependencies: fsevents: 2.3.3 @@ -29807,136 +29410,158 @@ snapshots: vite@2.9.18(sass@1.89.2): dependencies: esbuild: 0.14.54 - postcss: 8.5.6 - resolve: 1.22.10 + postcss: 8.4.47 + resolve: 1.22.8 rollup: 2.77.3 optionalDependencies: fsevents: 2.3.3 sass: 1.89.2 - vite@3.2.11(@types/node@18.19.119)(sass@1.80.3)(terser@5.36.0): + vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.15.18 postcss: 8.4.47 resolve: 1.22.8 rollup: 2.79.2 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.57 fsevents: 2.3.3 sass: 1.80.3 terser: 5.36.0 - vite@3.2.11(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0): + vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.15.18 postcss: 8.4.47 resolve: 1.22.8 rollup: 2.79.2 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.80.3 terser: 5.36.0 - vite@3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0): + vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0): dependencies: esbuild: 0.15.18 postcss: 8.4.47 resolve: 1.22.8 rollup: 2.79.2 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.89.2 terser: 5.36.0 - vite@4.5.14(@types/node@18.19.119)(sass@1.80.3)(terser@5.36.0): + vite@4.5.5(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.18.20 - postcss: 8.5.6 + postcss: 8.4.47 rollup: 3.29.5 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 fsevents: 2.3.3 sass: 1.80.3 terser: 5.36.0 - vite@4.5.14(@types/node@18.19.119)(sass@1.89.2)(terser@5.36.0): + vite@4.5.5(@types/node@18.19.120)(sass@1.89.2)(terser@5.36.0): dependencies: esbuild: 0.18.20 - postcss: 8.5.6 + postcss: 8.4.47 rollup: 3.29.5 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 fsevents: 2.3.3 sass: 1.89.2 terser: 5.36.0 - vite@4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0): + vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.18.20 postcss: 8.4.47 rollup: 3.29.5 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 18.19.57 + fsevents: 2.3.3 + sass: 1.80.3 + terser: 5.36.0 + + vite@4.5.5(@types/node@18.19.57)(sass@1.89.2)(terser@5.36.0): + dependencies: + esbuild: 0.18.20 + postcss: 8.4.47 + rollup: 3.29.5 + optionalDependencies: + '@types/node': 18.19.57 + fsevents: 2.3.3 + sass: 1.89.2 + terser: 5.36.0 + + vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0): + dependencies: + esbuild: 0.18.20 + postcss: 8.4.47 + rollup: 3.29.5 + optionalDependencies: + '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.80.3 terser: 5.36.0 - vite@4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0): + vite@4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0): dependencies: esbuild: 0.18.20 postcss: 8.4.47 rollup: 3.29.5 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.89.2 terser: 5.36.0 - vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): + vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): dependencies: esbuild: 0.21.5 - postcss: 8.5.6 + postcss: 8.4.47 rollup: 4.45.1 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 fsevents: 2.3.3 sass: 1.89.2 sass-embedded: 1.80.3 terser: 5.36.0 - vite@5.4.9(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): + vite@5.4.19(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.45.1 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.80.3 sass-embedded: 1.80.3 terser: 5.36.0 - vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): + vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.45.1 + rollup: 4.24.0 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.80.3 sass-embedded: 1.80.3 terser: 5.36.0 - vite@5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): + vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.45.1 + rollup: 4.24.0 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.89.2 sass-embedded: 1.80.3 @@ -29951,7 +29576,7 @@ snapshots: minimist: 1.2.8 prettier: 2.8.8 vitepress: 0.16.1(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) - yaml: 2.8.0 + yaml: 2.6.0 transitivePeerDependencies: - less - react @@ -29970,7 +29595,7 @@ snapshots: minimist: 1.2.8 prettier: 2.8.8 vitepress: 0.16.1(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) - yaml: 2.8.0 + yaml: 2.6.0 transitivePeerDependencies: - less - react @@ -29989,7 +29614,7 @@ snapshots: minimist: 1.2.8 prettier: 2.8.8 vitepress: 0.16.1(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(typescript@4.9.5) - yaml: 2.8.0 + yaml: 2.6.0 transitivePeerDependencies: - less - react @@ -30008,7 +29633,7 @@ snapshots: minimist: 1.2.8 prettier: 2.8.8 vitepress: 0.16.1(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(typescript@5.8.3) - yaml: 2.8.0 + yaml: 2.6.0 transitivePeerDependencies: - less - react @@ -30024,11 +29649,11 @@ snapshots: '@docsearch/js': 1.0.0-alpha.28(react-dom@16.14.0(react@16.14.0))(react@16.14.0) '@types/markdown-it': 12.2.3 '@vitejs/plugin-vue': 1.10.2(vite@2.9.18(sass@1.80.3)) - '@vue/compiler-sfc': 3.5.17 - '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@4.9.5)) + '@vue/compiler-sfc': 3.5.18 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@4.9.5)) chalk: 4.1.2 - compression: 1.8.0 - debug: 4.4.1 + compression: 1.8.1 + debug: 4.3.7 diacritics: 1.3.0 escape-html: 1.0.3 fs-extra: 10.1.0 @@ -30043,10 +29668,10 @@ snapshots: minimist: 1.2.8 ora: 5.4.1 polka: 0.5.2 - prismjs: 1.30.0 + prismjs: 1.29.0 sirv: 1.0.19 vite: 2.9.18(sass@1.80.3) - vue: 3.5.17(typescript@4.9.5) + vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - less - react @@ -30062,11 +29687,11 @@ snapshots: '@docsearch/js': 1.0.0-alpha.28(react-dom@16.14.0(react@16.14.0))(react@16.14.0) '@types/markdown-it': 12.2.3 '@vitejs/plugin-vue': 1.10.2(vite@2.9.18(sass@1.80.3)) - '@vue/compiler-sfc': 3.5.17 - '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.6.3)) + '@vue/compiler-sfc': 3.5.18 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) chalk: 4.1.2 - compression: 1.8.0 - debug: 4.4.1 + compression: 1.8.1 + debug: 4.3.7 diacritics: 1.3.0 escape-html: 1.0.3 fs-extra: 10.1.0 @@ -30081,56 +29706,30 @@ snapshots: minimist: 1.2.8 ora: 5.4.1 polka: 0.5.2 - prismjs: 1.30.0 + prismjs: 1.29.0 sirv: 1.0.19 vite: 2.9.18(sass@1.80.3) - vue: 3.5.17(typescript@5.6.3) - transitivePeerDependencies: - - less - - react - - react-dom - - sass - - stylus - - supports-color - - typescript - - vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): - dependencies: - '@docsearch/css': 3.6.2 - '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@vue/devtools-api': 6.6.4 - '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) - body-scroll-lock: 4.0.0-beta.0 - shiki: 0.11.1 - vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - - '@algolia/client-search' - - '@types/node' - - '@types/react' - - '@vue/composition-api' - less - react - react-dom - sass - - search-insights - stylus - - sugarss - - terser + - supports-color - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): + vitepress@0.16.1(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(typescript@4.9.5): dependencies: '@docsearch/css': 1.0.0-alpha.28 '@docsearch/js': 1.0.0-alpha.28(react-dom@16.14.0(react@16.14.0))(react@16.14.0) '@types/markdown-it': 12.2.3 '@vitejs/plugin-vue': 1.10.2(vite@2.9.18(sass@1.89.2)) - '@vue/compiler-sfc': 3.5.17 - '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@4.9.5)) + '@vue/compiler-sfc': 3.5.18 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@4.9.5)) chalk: 4.1.2 - compression: 1.8.0 - debug: 4.4.1 + compression: 1.8.1 + debug: 4.3.7 diacritics: 1.3.0 escape-html: 1.0.3 fs-extra: 10.1.0 @@ -30145,10 +29744,10 @@ snapshots: minimist: 1.2.8 ora: 5.4.1 polka: 0.5.2 - prismjs: 1.30.0 + prismjs: 1.29.0 sirv: 1.0.19 vite: 2.9.18(sass@1.89.2) - vue: 3.5.17(typescript@4.9.5) + vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - less - react @@ -30164,11 +29763,11 @@ snapshots: '@docsearch/js': 1.0.0-alpha.28(react-dom@16.14.0(react@16.14.0))(react@16.14.0) '@types/markdown-it': 12.2.3 '@vitejs/plugin-vue': 1.10.2(vite@2.9.18(sass@1.89.2)) - '@vue/compiler-sfc': 3.5.17 - '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.8.3)) + '@vue/compiler-sfc': 3.5.18 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.8.3)) chalk: 4.1.2 - compression: 1.8.0 - debug: 4.4.1 + compression: 1.8.1 + debug: 4.3.7 diacritics: 1.3.0 escape-html: 1.0.3 fs-extra: 10.1.0 @@ -30183,10 +29782,10 @@ snapshots: minimist: 1.2.8 ora: 5.4.1 polka: 0.5.2 - prismjs: 1.30.0 + prismjs: 1.29.0 sirv: 1.0.19 vite: 2.9.18(sass@1.89.2) - vue: 3.5.17(typescript@5.8.3) + vue: 3.5.12(typescript@5.8.3) transitivePeerDependencies: - less - react @@ -30196,16 +29795,16 @@ snapshots: - supports-color - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@5.33.0)(@types/node@18.19.119)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): + vitepress@1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): dependencies: - '@docsearch/css': 3.9.0 - '@docsearch/js': 3.6.0(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.119)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + '@docsearch/css': 3.6.2 + '@docsearch/js': 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/devtools-api': 6.6.4 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.11(@types/node@18.19.119)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - '@algolia/client-search' @@ -30222,16 +29821,42 @@ snapshots: - terser - typescript - vitepress@1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): + vitepress@1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.89.2)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): + dependencies: + '@docsearch/css': 3.6.2 + '@docsearch/js': 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vue/devtools-api': 6.6.4 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + body-scroll-lock: 4.0.0-beta.0 + shiki: 0.11.1 + vite: 3.2.11(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - less + - react + - react-dom + - sass + - search-insights + - stylus + - sugarss + - terser + - typescript + + vitepress@1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): dependencies: - '@docsearch/css': 3.9.0 - '@docsearch/js': 3.6.0(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@docsearch/css': 3.6.2 + '@docsearch/js': 3.6.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/devtools-api': 6.6.4 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.11(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - '@algolia/client-search' @@ -30248,16 +29873,16 @@ snapshots: - terser - typescript - vitepress@1.0.0-alpha.8(@algolia/client-search@5.33.0)(@types/node@24.0.14)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): + vitepress@1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): dependencies: - '@docsearch/css': 3.9.0 - '@docsearch/js': 3.6.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@docsearch/css': 3.6.2 + '@docsearch/js': 3.6.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/devtools-api': 6.6.4 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.11(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - '@algolia/client-search' @@ -30274,28 +29899,28 @@ snapshots: - terser - typescript - vitepress@1.6.3(@algolia/client-search@5.33.0)(@types/node@18.19.119)(async-validator@4.2.5)(axios@1.10.0)(postcss@8.5.6)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass-embedded@1.80.3)(sass@1.89.2)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.8.3): + vitepress@1.6.3(@algolia/client-search@5.34.1)(@types/node@18.19.120)(async-validator@4.2.5)(axios@1.10.0)(postcss@8.4.47)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass-embedded@1.80.3)(sass@1.89.2)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.8.3): dependencies: '@docsearch/css': 3.8.2 - '@docsearch/js': 3.8.2(@algolia/client-search@5.33.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@iconify-json/simple-icons': 1.2.43 + '@docsearch/js': 3.8.2(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@iconify-json/simple-icons': 1.2.44 '@shikijs/core': 2.5.0 '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.17(typescript@5.8.3)) + '@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)) '@vue/devtools-api': 7.7.7 - '@vue/shared': 3.5.17 + '@vue/shared': 3.5.18 '@vueuse/core': 12.8.2(typescript@5.8.3) '@vueuse/integrations': 12.8.2(async-validator@4.2.5)(axios@1.10.0)(focus-trap@7.6.5)(typescript@5.8.3) focus-trap: 7.6.5 mark.js: 8.11.1 minisearch: 7.1.2 shiki: 2.5.0 - vite: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) - vue: 3.5.17(typescript@5.8.3) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vue: 3.5.18(typescript@5.8.3) optionalDependencies: - postcss: 8.5.6 + postcss: 8.4.47 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -30326,19 +29951,19 @@ snapshots: vitest@0.25.8(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0): dependencies: '@types/chai': 4.3.20 - '@types/chai-subset': 1.3.6(@types/chai@4.3.20) - '@types/node': 18.19.119 - acorn: 8.15.0 + '@types/chai-subset': 1.3.5 + '@types/node': 18.19.120 + acorn: 8.14.0 acorn-walk: 8.3.4 chai: 4.5.0 - debug: 4.4.1 + debug: 4.3.7 local-pkg: 0.4.3 source-map: 0.6.1 strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.3.1 tinyspy: 1.1.1 - vite: 4.5.14(@types/node@18.19.119)(sass@1.89.2)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.120)(sass@1.89.2)(terser@5.36.0) optionalDependencies: happy-dom: 14.12.3 jsdom: 20.0.3 @@ -30354,19 +29979,19 @@ snapshots: vitest@0.25.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: '@types/chai': 4.3.20 - '@types/chai-subset': 1.3.6(@types/chai@4.3.20) - '@types/node': 18.19.119 - acorn: 8.15.0 + '@types/chai-subset': 1.3.5 + '@types/node': 18.19.120 + acorn: 8.14.0 acorn-walk: 8.3.4 chai: 4.5.0 - debug: 4.4.1 + debug: 4.3.7 local-pkg: 0.4.3 source-map: 0.6.1 strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.3.1 tinyspy: 1.1.1 - vite: 4.5.14(@types/node@18.19.119)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0) optionalDependencies: happy-dom: 8.9.0 jsdom: 20.0.3 @@ -30382,19 +30007,19 @@ snapshots: vitest@0.25.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0): dependencies: '@types/chai': 4.3.20 - '@types/chai-subset': 1.3.6(@types/chai@4.3.20) - '@types/node': 18.19.119 - acorn: 8.15.0 + '@types/chai-subset': 1.3.5 + '@types/node': 18.19.120 + acorn: 8.14.0 acorn-walk: 8.3.4 chai: 4.5.0 - debug: 4.4.1 + debug: 4.3.7 local-pkg: 0.4.3 source-map: 0.6.1 strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.3.1 tinyspy: 1.1.1 - vite: 4.5.14(@types/node@18.19.119)(sass@1.89.2)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.120)(sass@1.89.2)(terser@5.36.0) optionalDependencies: happy-dom: 8.9.0 jsdom: 20.0.3 @@ -30411,7 +30036,7 @@ snapshots: dependencies: '@types/chai': 4.3.20 '@types/chai-subset': 1.3.5 - '@types/node': 24.0.14 + '@types/node': 18.19.57 '@vitest/expect': 0.29.8 '@vitest/runner': 0.29.8 '@vitest/spy': 0.29.8 @@ -30430,8 +30055,8 @@ snapshots: tinybench: 2.9.0 tinypool: 0.4.0 tinyspy: 1.1.1 - vite: 4.5.5(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) - vite-node: 0.29.8(@types/node@24.0.14)(sass@1.89.2)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.89.2)(terser@5.36.0) + vite-node: 0.29.8(@types/node@18.19.57)(sass@1.89.2)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: happy-dom: 14.12.3 @@ -30449,7 +30074,7 @@ snapshots: dependencies: '@types/chai': 4.3.20 '@types/chai-subset': 1.3.5 - '@types/node': 24.0.14 + '@types/node': 18.19.57 '@vitest/expect': 0.29.8 '@vitest/runner': 0.29.8 '@vitest/spy': 0.29.8 @@ -30468,88 +30093,16 @@ snapshots: tinybench: 2.9.0 tinypool: 0.4.0 tinyspy: 1.1.1 - vite: 4.5.5(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) - vite-node: 0.29.8(@types/node@24.0.14)(sass@1.80.3)(terser@5.36.0) - why-is-node-running: 2.3.0 - optionalDependencies: - happy-dom: 8.9.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vitest@1.6.0(@types/node@18.19.119)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.4 - chai: 4.5.0 - debug: 4.3.7 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.12 - pathe: 1.1.2 - picocolors: 1.1.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.9.0 - tinypool: 0.8.4 - vite: 5.4.9(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vite-node: 1.6.0(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vite-node: 0.29.8(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 18.19.119 happy-dom: 8.9.0 jsdom: 20.0.3 transitivePeerDependencies: - less - lightningcss - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vitest@1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.4 - chai: 4.5.0 - debug: 4.3.7 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.12 - pathe: 1.1.2 - picocolors: 1.1.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.9.0 - tinypool: 0.8.4 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vite-node: 1.6.0(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 18.19.57 - happy-dom: 8.9.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - less - - lightningcss - - sass - - sass-embedded - stylus - sugarss - supports-color @@ -30574,11 +30127,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.9(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vite-node: 1.6.0(@types/node@24.0.14)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite-node: 1.6.0(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.0.14 + '@types/node': 20.5.1 happy-dom: 8.9.0 jsdom: 20.0.3 transitivePeerDependencies: @@ -30591,7 +30144,7 @@ snapshots: - supports-color - terser - vitest@1.6.1(@types/node@18.19.119)(happy-dom@14.12.3)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): + vitest@1.6.1(@types/node@18.19.120)(happy-dom@14.12.3)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): dependencies: '@vitest/expect': 1.6.1 '@vitest/runner': 1.6.1 @@ -30600,21 +30153,21 @@ snapshots: '@vitest/utils': 1.6.1 acorn-walk: 8.3.4 chai: 4.5.0 - debug: 4.4.1 + debug: 4.3.7 execa: 8.0.1 - local-pkg: 0.5.1 - magic-string: 0.30.17 + local-pkg: 0.5.0 + magic-string: 0.30.12 pathe: 1.1.2 picocolors: 1.1.1 - std-env: 3.9.0 - strip-literal: 2.1.1 + std-env: 3.7.0 + strip-literal: 2.1.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.19(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) - vite-node: 1.6.1(@types/node@18.19.119)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) + vite-node: 1.6.1(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 18.19.119 + '@types/node': 18.19.120 happy-dom: 14.12.3 jsdom: 20.0.3 transitivePeerDependencies: @@ -30637,9 +30190,7 @@ snapshots: vscode-uri@3.0.8: {} - vscode-uri@3.1.0: {} - - vue-component-type-helpers@2.2.12: {} + vue-component-type-helpers@2.1.6: {} vue-demi@0.14.10(vue@3.5.12(typescript@4.9.5)): dependencies: @@ -30649,44 +30200,36 @@ snapshots: dependencies: vue: 3.5.12(typescript@5.6.3) - vue-demi@0.14.10(vue@3.5.17(typescript@4.9.5)): + vue-eslint-parser@9.4.3(eslint@9.19.0(jiti@2.5.1)): dependencies: - vue: 3.5.17(typescript@4.9.5) - - vue-demi@0.14.10(vue@3.5.17(typescript@5.6.3)): - dependencies: - vue: 3.5.17(typescript@5.6.3) - - vue-eslint-parser@9.4.3(eslint@9.19.0(jiti@2.4.2)): - dependencies: - debug: 4.4.1 - eslint: 9.19.0(jiti@2.4.2) + debug: 4.3.7 + eslint: 9.19.0(jiti@2.5.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.6.0 lodash: 4.17.21 - semver: 7.7.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color - vue-eslint-parser@9.4.3(eslint@9.31.0(jiti@2.4.2)): + vue-eslint-parser@9.4.3(eslint@9.32.0(jiti@2.5.1)): dependencies: - debug: 4.4.1 - eslint: 9.31.0(jiti@2.4.2) + debug: 4.3.7 + eslint: 9.32.0(jiti@2.5.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.6.0 lodash: 4.17.21 - semver: 7.7.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color - vue-i18n@11.1.10(vue@3.5.12(typescript@5.6.3)): + vue-i18n@11.1.11(vue@3.5.12(typescript@5.6.3)): dependencies: - '@intlify/core-base': 11.1.10 - '@intlify/shared': 11.1.10 + '@intlify/core-base': 11.1.11 + '@intlify/shared': 11.1.11 '@vue/devtools-api': 6.6.4 vue: 3.5.12(typescript@5.6.3) @@ -30700,16 +30243,6 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.12(typescript@5.6.3) - vue-router@4.4.5(vue@3.5.17(typescript@4.9.5)): - dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.17(typescript@4.9.5) - - vue-router@4.4.5(vue@3.5.17(typescript@5.6.3)): - dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.17(typescript@5.6.3) - vue-template-compiler@2.7.16: dependencies: de-indent: 1.0.2 @@ -30789,33 +30322,23 @@ snapshots: optionalDependencies: typescript: 5.6.3 - vue@3.5.17(typescript@4.9.5): + vue@3.5.12(typescript@5.8.3): dependencies: - '@vue/compiler-dom': 3.5.17 - '@vue/compiler-sfc': 3.5.17 - '@vue/runtime-dom': 3.5.17 - '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@4.9.5)) - '@vue/shared': 3.5.17 - optionalDependencies: - typescript: 4.9.5 - - vue@3.5.17(typescript@5.6.3): - dependencies: - '@vue/compiler-dom': 3.5.17 - '@vue/compiler-sfc': 3.5.17 - '@vue/runtime-dom': 3.5.17 - '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.6.3)) - '@vue/shared': 3.5.17 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-sfc': 3.5.12 + '@vue/runtime-dom': 3.5.12 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.8.3)) + '@vue/shared': 3.5.12 optionalDependencies: - typescript: 5.6.3 + typescript: 5.8.3 - vue@3.5.17(typescript@5.8.3): + vue@3.5.18(typescript@5.8.3): dependencies: - '@vue/compiler-dom': 3.5.17 - '@vue/compiler-sfc': 3.5.17 - '@vue/runtime-dom': 3.5.17 - '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.8.3)) - '@vue/shared': 3.5.17 + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-sfc': 3.5.18 + '@vue/runtime-dom': 3.5.18 + '@vue/server-renderer': 3.5.18(vue@3.5.18(typescript@5.8.3)) + '@vue/shared': 3.5.18 optionalDependencies: typescript: 5.8.3 @@ -30857,7 +30380,7 @@ snapshots: is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 - is-symbol: 1.1.1 + is-symbol: 1.0.4 which-boxed-primitive@1.1.1: dependencies: @@ -30888,7 +30411,7 @@ snapshots: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 - is-weakset: 2.0.4 + is-weakset: 2.0.3 which-module@1.0.0: {} @@ -30968,7 +30491,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@8.18.3: {} + ws@8.18.0: {} xml-name-validator@4.0.0: {} @@ -30984,6 +30507,8 @@ snapshots: yallist@4.0.0: {} + yaml@2.6.0: {} + yaml@2.8.0: {} yargs-parser@20.2.9: {} @@ -30993,7 +30518,7 @@ snapshots: yargs-parser@5.0.1: dependencies: camelcase: 3.0.0 - object.assign: 4.1.7 + object.assign: 4.1.5 yargs@16.2.0: dependencies: @@ -31041,8 +30566,6 @@ snapshots: yocto-queue@1.1.1: {} - yocto-queue@1.2.1: {} - yoctocolors-cjs@2.1.2: {} z-schema@5.0.5: -- Gitee From 072ae1a58cdc34db9bc0faf4c29c0c917be2cbe1 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 28 Jul 2025 15:49:32 +0800 Subject: [PATCH 013/109] feature: data grid column supports internationalized language configuration --- .../components/data/data-area.component.tsx | 9 +- .../data-grid/src/data-grid.props.ts | 16 ++-- .../components/data-view/composition/types.ts | 1 + packages/ui-vue/demos/data-grid/cell_edit.vue | 86 +++++++++---------- .../ui-vue/demos/data-grid/demo-data-5.ts | 25 ++++++ 5 files changed, 84 insertions(+), 53 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx b/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx index fa748bc7558..6351a8dc2c1 100644 --- a/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx +++ b/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx @@ -236,8 +236,11 @@ export default function (
; } - function renderDefault(cell: VisualDataCell) { - const cellText = !isNull(cell.data) && !isUndefined(cell.data) ? cell.data.toString() : cell.data; + function renderDefault(cell: VisualDataCell, row: VisualData) { + let cellText = !isNull(cell.data) && !isUndefined(cell.data) ? cell.data.toString() : cell.data; + if (cell.column?.convertTo) { + cellText = cell.column.convertTo(cell, row); + } return cell.showTips ?
{cellText}
:
{cellText}
; // return cell.showTips ? @@ -258,7 +261,7 @@ export default function (
{cell.getEditor(cell)}
: - cell.formatter ? renderFormatter(cell, row) : renderDefault(cell); + cell.formatter ? renderFormatter(cell, row) : renderDefault(cell, row); } function renderDataRow( diff --git a/packages/ui-vue/components/data-grid/src/data-grid.props.ts b/packages/ui-vue/components/data-grid/src/data-grid.props.ts index e6580a412d0..e01717f883a 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.props.ts +++ b/packages/ui-vue/components/data-grid/src/data-grid.props.ts @@ -16,12 +16,12 @@ */ import { ExtractPropTypes, PropType, VNode } from 'vue'; import { EditorConfig } from '@farris/ui-vue/components/dynamic-form'; -import { - CommandOptions, - DataColumn, - HeaderCell, - VisualData, - VisualDataCell +import { + CommandOptions, + DataColumn, + HeaderCell, + VisualData, + VisualDataCell } from '@farris/ui-vue/components/data-view'; import { LocaleService } from '@farris/ui-vue/components/locale'; import { DataGridColumnCommand, SortType } from './designer/data-grid-column.props'; @@ -90,6 +90,8 @@ export interface DataGridColumn { formatter?: ((cell: VisualDataCell, visualDataRow: VisualData) => VNode | string) | object; headerFormatter?: (context: { headerCell: HeaderCell, headerCells: HeaderCell[], columnIndex: number }) => VNode | string; + // 一些特殊编辑器的自定义转换函数,优先级低于formatter和columnTemplate,高于原始值 + convertTo?: (cell: VisualDataCell, visualDataRow: VisualData) => string; } export interface ColumnGroupItem { @@ -387,7 +389,7 @@ export const dataGridProps = { type: Object as PropType, default: { enable: true, width: 32, - showEllipsis:true, + showEllipsis: true, heading: LocaleService.getLocaleValue('datagrid.lineNumberTitle') } }, diff --git a/packages/ui-vue/components/data-view/composition/types.ts b/packages/ui-vue/components/data-view/composition/types.ts index 0e8004a52f1..31e912590af 100644 --- a/packages/ui-vue/components/data-view/composition/types.ts +++ b/packages/ui-vue/components/data-view/composition/types.ts @@ -101,6 +101,7 @@ export interface DataColumn { draggable?: boolean; headerFormatter?: (context: { headerCell: HeaderCell, headerCells: HeaderCell[], columnIndex: number }) => VNode | string; columnTemplate?: (cell: VisualDataCell, visualDataRow: VisualData) => VNode; + convertTo?: (cell: VisualDataCell, visualDataRow: VisualData) => string; } export interface DataFilter { diff --git a/packages/ui-vue/demos/data-grid/cell_edit.vue b/packages/ui-vue/demos/data-grid/cell_edit.vue index 64daa44ea17..4e3ca26acd0 100644 --- a/packages/ui-vue/demos/data-grid/cell_edit.vue +++ b/packages/ui-vue/demos/data-grid/cell_edit.vue @@ -6,13 +6,14 @@ import { DataColumn, VisualData, VisualDataCell } from '../../components/data-vi import { F_LOOKUP_HTTP_SERVICE_TOKEN, LookupHttpService, LookupRequestParams } from '../../components/lookup' import { LookupHttpRequest } from '../lookup/lookup-http-request' import { F_NOTIFY_SERVICE_TOKEN, FNotifyService } from '../../components/notify' +import { LocaleService } from '../../components/locale'; const currentApp = getCurrentInstance()?.appContext.app const lookupHttp = new LookupHttpRequest() currentApp?.provide(F_LOOKUP_HTTP_SERVICE_TOKEN, lookupHttp) const gridComponentInstance = ref() - +const currentLang = LocaleService.getLocale(); const editOption = { editMode: 'cell' } @@ -77,49 +78,41 @@ const columns: DataColumn[] = [ } }, { - field: 'numericField1', - title: '数字字段一', - dataType: 'number', - valign: 'middle', - editor: { - type: 'number-spinner' - }, - formatter: { - type: 'number', - precision: 2, - thousand: ',', - prefix: '¥', - suffix: '', - decimal: '.' - } - }, - { - field: 'customField1', - title: '自定义字段一', + field: 'alias', + title: '别名(多语列)', dataType: 'string', valign: 'middle', editor: { - type: 'button-edit' - } + type: 'language-textbox', + languages: [ + { + code: 'en', + name: 'English' + }, + { + code: 'zh-CHS', + name: '中文' + }, + { + code: 'zh-CHT', + name: '繁体' + } + ] + }, + convertTo: (cell: VisualDataCell, row: VisualData) => cell.data?.[currentLang] || cell.data } -]; +] -const notifyService = inject(F_NOTIFY_SERVICE_TOKEN); +const notifyService = inject(F_NOTIFY_SERVICE_TOKEN) -const beforeEndEdit = (context: - { - cell: VisualDataCell, - row: VisualData, - newValue: any, - oldValue: any - }) => { - const { cell, row, newValue, oldValue } = context; +const beforeEndEdit = (context: { cell: VisualDataCell; row: VisualData; newValue: any; oldValue: any }) => { + const { cell, row, newValue, oldValue } = context if (cell.field === 'name' && cell.data === 'Sagi') { - notifyService?.info({message: '请先结束编辑单元格'}); - return false; + notifyService?.info({ message: '请先结束编辑单元格' }) + return false } - return true; -}; + return true +} function createNewDataItem() { return { @@ -147,22 +140,29 @@ function createNewDataItem() { } const onEndEditCell = (e: any) => { - console.log(e); -}; + console.log(e) +} function updateData() { - gridComponentInstance.value.updateDataSource(data.slice(1)); + gridComponentInstance.value.updateDataSource(data.slice(1)) } - -- Gitee From 6eca5accd196aa2bf54d4e2e71d3827e74157190 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 13 Aug 2025 17:40:37 +0800 Subject: [PATCH 055/109] fix: transfer supports custom template --- .../transfer/src/transfer.component.tsx | 14 +- .../ui-vue/demos/transfer/custom_template.vue | 136 ++++++++++++++++++ .../ui-vue/docs/components/transfer/index.md | 10 ++ 3 files changed, 155 insertions(+), 5 deletions(-) create mode 100644 packages/ui-vue/demos/transfer/custom_template.vue diff --git a/packages/ui-vue/components/transfer/src/transfer.component.tsx b/packages/ui-vue/components/transfer/src/transfer.component.tsx index 213b6e4ea87..c9e2040e90b 100644 --- a/packages/ui-vue/components/transfer/src/transfer.component.tsx +++ b/packages/ui-vue/components/transfer/src/transfer.component.tsx @@ -11,9 +11,9 @@ export default defineComponent({ setup(props: TransferProps, context: SetupContext) { const { t } = useI18n(); const identifyField = ref(props.identifyField); - const transferLocale={ - selectedStart:t('transfer.selectedStart'), - selectedEnd:t('transfer.selectedEnd') + const transferLocale = { + selectedStart: t('transfer.selectedStart'), + selectedEnd: t('transfer.selectedEnd') }; const displayType = ref(props.displayType); const fillToParent = ref(false); @@ -63,6 +63,11 @@ export default defineComponent({ } initializeData(); + watch(() => props.selections, (newValues: object[]) => { + selections.value = newValues; + initializeData(); + }); + const shouldShowOptionList = computed(() => displayType.value === 'List'); const shouldShowOptionTree = computed(() => displayType.value === 'Tree'); @@ -117,7 +122,6 @@ export default defineComponent({ selectionValues={selectionValues.value} onSelectionChange={onSelectionChange} > - ; } @@ -238,7 +242,7 @@ export default defineComponent({ return () => { return (
- {renderOptionPane()} + {context.slots.children ? context.slots.children({ selections: selections.value }) : renderOptionPane()} {renderSelectionPane()}
); diff --git a/packages/ui-vue/demos/transfer/custom_template.vue b/packages/ui-vue/demos/transfer/custom_template.vue new file mode 100644 index 00000000000..84d07b4dae0 --- /dev/null +++ b/packages/ui-vue/demos/transfer/custom_template.vue @@ -0,0 +1,136 @@ + + + + diff --git a/packages/ui-vue/docs/components/transfer/index.md b/packages/ui-vue/docs/components/transfer/index.md index 2199a505c0b..68e59cb4086 100644 --- a/packages/ui-vue/docs/components/transfer/index.md +++ b/packages/ui-vue/docs/components/transfer/index.md @@ -21,6 +21,16 @@ Transfer 穿梭框组件用于实现数据选择 ::: +## 自定义模板 + +:::vdemo + +```vue +{demos/transfer/custom_template.vue} +``` + +::: + ## 属性 | 属性名 | 类型 | 默认值 | 说明 | -- Gitee From b8989b903a3a92fa87d61cdce00e263dc612851e Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 13 Aug 2025 19:13:48 +0800 Subject: [PATCH 056/109] fix: optimize farris --- packages/ui-vue/src/main.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/ui-vue/src/main.ts b/packages/ui-vue/src/main.ts index e7c17a6ecc3..da2921a92b0 100644 --- a/packages/ui-vue/src/main.ts +++ b/packages/ui-vue/src/main.ts @@ -6,6 +6,4 @@ import Plugins from './app-plugin'; const app = createApp(App); -app.use(Farris, { - locale: 'zh-CHS' -}).use(Plugins).mount('#app'); +app.use(Farris).use(Plugins).mount('#app'); -- Gitee From 8841cf674b17ddce1d40a7639a463a9508e12eab Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 13 Aug 2025 19:44:37 +0800 Subject: [PATCH 057/109] fix: remove unused feature --- .../components/data-grid/src/schema/callback-resolvers.ts | 2 +- packages/ui-vue/components/transfer/src/transfer.props.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/schema/callback-resolvers.ts b/packages/ui-vue/components/data-grid/src/schema/callback-resolvers.ts index 70ef9e3582c..295581cdb5e 100644 --- a/packages/ui-vue/components/data-grid/src/schema/callback-resolvers.ts +++ b/packages/ui-vue/components/data-grid/src/schema/callback-resolvers.ts @@ -1,4 +1,4 @@ -import { DataColumn, VisualData, VisualDataCell } from "@/components/data-view"; +import { DataColumn, VisualData, VisualDataCell } from "@farris/ui-vue/components/data-view"; import { Caller } from "../../../dynamic-resolver"; export function createDataGridCallbackResolver() { diff --git a/packages/ui-vue/components/transfer/src/transfer.props.ts b/packages/ui-vue/components/transfer/src/transfer.props.ts index d9ed7e2fb2e..e7c8551df73 100644 --- a/packages/ui-vue/components/transfer/src/transfer.props.ts +++ b/packages/ui-vue/components/transfer/src/transfer.props.ts @@ -6,7 +6,6 @@ import { schemaResolver } from './schema/schema-resolver'; import propertyConfig from './property-config/transfer.property-config.json'; import { createPropsResolver } from '../../dynamic-resolver/src/props-resolver'; import transferSchema from './schema/transfer.schema.json'; -import draggableItemComponent from "@/components/list-view/src/components/item/draggable-item.component"; export const transferProps = { dataSource: { -- Gitee From cd7f38becf2c314a1a8c2c0b6b88ac84b994afa9 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 14 Aug 2025 10:16:35 +0800 Subject: [PATCH 058/109] fix: data grid complete multiple selection event --- .../data-grid/src/data-grid.component.tsx | 8 +++++-- .../data-grid.property-config.ts | 22 +++++++++++++++++++ .../column-header/column-header.component.tsx | 2 ++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx index a13989f836f..c3bef6c3644 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx +++ b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx @@ -31,7 +31,11 @@ import './data-grid.css'; export default defineComponent({ name: 'FDataGrid', props: dataGridProps, - emits: ['changed', 'clickRow', 'doubleClickRow', 'selectionChange', 'unSelectItem', 'selectItem', 'enterUpInLastCell', 'pageIndexChanged', 'pageSizeChanged', 'beginEditCell', 'endEditCell'], + emits: ['changed', 'clickRow', 'doubleClickRow', 'selectionChange', + 'unSelectItem', 'selectItem', 'enterUpInLastCell', + 'selecAll', 'unSelectAll', + 'pageIndexChanged', 'pageSizeChanged', 'beginEditCell', + 'endEditCell'], setup(props: DataGridProps, context) { const preloadCount = 0; const rowHeight = props.rowOption?.height || 28; @@ -172,7 +176,7 @@ export default defineComponent({ if (useVirtualScrollComposition.shouldShowHorizontalScrollbar.value) { styleObject.paddingBottom = '10px'; } - if(useVirtualScrollComposition.shouldShowVirticalScrollbar.value){ + if (useVirtualScrollComposition.shouldShowVirticalScrollbar.value) { styleObject.paddingRight = '10px'; } return styleObject; diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 73174f1fd46..a134bc77d8a 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -387,6 +387,28 @@ export class DataGridProperty extends BaseControlProperty { "name": "操作列删除事件" }); } + if (propertyData.selection?.multiSelect) { + // 启用多选,暴露多选事件 + events.push({ + "label": "onSelectItem", + "name": "选中行事件" + }, + { + "label": "onUnSelectItem", + "name": "取消选中行事件" + },); + } + if (propertyData.selection?.multiSelect && propertyData.selection?.showSelectAll) { + // 启用全选事件,暴露全选和取消全选事件 + events.push({ + "label": "onSelectAll", + "name": "全选事件" + }, + { + "label": "onUnSelectAll", + "name": "取消全选事件" + }); + } const self = this; const initialData = self.eventsEditorUtils['formProperties'](propertyData, self.viewModelId, events); const properties = self.createBaseEventProperty(initialData); diff --git a/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx b/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx index 7d3753b8255..dc700aeb60a 100644 --- a/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx @@ -179,11 +179,13 @@ export default function ( inVisibleData.forEach((dataItem: any) => { selectDataItem(dataItem); }); + context.emit('selecAll', value); } else { unSelectAll(); inVisibleData.forEach((dataItem: any) => { unSelectDataItem(dataItem); }); + context.emit('unSelecAll', value); } } -- Gitee From 5693833bbf64a062688e80142a16f2b8ebfcf7bb Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 14 Aug 2025 11:22:53 +0800 Subject: [PATCH 059/109] fix: fix bug of tree grid property panel --- .../data-grid-column.property-config.ts | 277 +++++++++++------- .../data-grid.property-config.ts | 28 +- .../src/schema/tree-grid-column.schema.json | 5 + 3 files changed, 189 insertions(+), 121 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts index d91720b4521..9985e29af67 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts @@ -27,6 +27,7 @@ export class DataGriColumnProperty extends BaseControlProperty { super(componentId, designerHostService); } getPropertyConfig(propertyData: any, gridData: any) { + const isTree = gridData.type === 'tree-grid'; this.dataGridProps = gridData; // 基本信息 this.getBasicPropConfig(propertyData); @@ -60,7 +61,10 @@ export class DataGriColumnProperty extends BaseControlProperty { } } }; - this.propertyConfig.categories['behavior'] = this.getBehaviorConfig( + this.propertyConfig.categories['behavior'] = isTree ? this.getBehaviorConfig( + propertyData, + 'gridFieldEditor' + ) : this.getBehaviorConfig( propertyData, 'gridFieldEditor', extendProperties, @@ -69,11 +73,17 @@ export class DataGriColumnProperty extends BaseControlProperty { // 编辑器 this.getFieldEditorProperties(propertyData, gridData); // 列模板或者列格式化 - if (propertyData.dataType !== 'date' && propertyData.dataType !== 'datetime' && propertyData.formatter?.type !== 'multilingual') { + if ( + !isTree && + propertyData.dataType !== 'date' && + propertyData.dataType !== 'datetime' && + propertyData.formatter?.type !== 'multilingual') { this.propertyConfig.categories['formatter'] = this.getTemplateProperties(propertyData); } // 列事件 - // this.getEventPropConfig(propertyData); + if (!isTree) { + this.getEventPropConfig(propertyData); + } return this.propertyConfig; } @@ -214,120 +224,171 @@ export class DataGriColumnProperty extends BaseControlProperty { } getAppearanceProperties(propertyData: any, gridData: any) { const self = this; - this.propertyConfig.categories['appearance'] = { - description: '', - title: '外观', - properties: { - resizable: { - description: '允许拖拽改变列宽', - title: '拖拽改变列宽', - type: 'boolean' - }, - // filterable: { - // description: '启用过滤', - // title: '启用过滤', - // type: 'boolean' - // }, - width: { - description: '列宽', - title: '列宽', - type: 'number' - }, - showTips: { - description: '启用鼠标悬浮提示', - title: '鼠标悬浮提示', - type: 'boolean' - }, - halign: { - description: '标题对齐方式', - title: '标题对齐方式', - type: 'enum', - editor: { - data: [ - { id: 'left', name: '左对齐' }, - { id: 'center', name: '居中' }, - { id: 'right', name: '右对齐' } - ] - } - }, - align: { - description: '数据水平对齐方式选择', - title: '数据水平对齐方式', - type: 'enum', - editor: { - data: [ - { id: 'left', name: '左对齐' }, - { id: 'center', name: '居中' }, - { id: 'right', name: '右对齐' } - ] - } - }, - valign: { - description: '数据垂直对齐方式选择', - title: '数据垂直对齐方式', - type: 'enum', - editor: { - data: [ - { id: 'top', name: '顶对齐' }, - { id: 'middle', name: '居中' }, - { id: 'bottom', name: '底对齐' } - ] + const isTree = gridData.type === 'tree-grid'; + if(isTree) { + this.propertyConfig.categories['appearance'] = { + description: '', + title: '外观', + properties: { + resizable: { + description: '允许拖拽改变列宽', + title: '拖拽改变列宽', + type: 'boolean' + }, + halign: { + description: '标题对齐方式', + title: '标题对齐方式', + type: 'enum', + editor: { + data: [ + { id: 'left', name: '左对齐' }, + { id: 'center', name: '居中' }, + { id: 'right', name: '右对齐' } + ] + } + }, + align: { + description: '数据水平对齐方式选择', + title: '数据水平对齐方式', + type: 'enum', + editor: { + data: [ + { id: 'left', name: '左对齐' }, + { id: 'center', name: '居中' }, + { id: 'right', name: '右对齐' } + ] + } + }, + valign: { + description: '数据垂直对齐方式选择', + title: '数据垂直对齐方式', + type: 'enum', + editor: { + data: [ + { id: 'top', name: '顶对齐' }, + { id: 'middle', name: '居中' }, + { id: 'bottom', name: '底对齐' } + ] + } } - }, - columnTemplate: { - description: '列模板', - title: '列模板', - type: 'string', - refreshPanelAfterChanged: true, - editor: { - type: "code-editor", - language: "html", + } + }; + } else { + this.propertyConfig.categories['appearance'] = { + description: '', + title: '外观', + properties: { + resizable: { + description: '允许拖拽改变列宽', + title: '拖拽改变列宽', + type: 'boolean' + }, + // filterable: { + // description: '启用过滤', + // title: '启用过滤', + // type: 'boolean' + // }, + width: { + description: '列宽', + title: '列宽', + type: 'number' + }, + showTips: { + description: '启用鼠标悬浮提示', + title: '鼠标悬浮提示', + type: 'boolean' + }, + halign: { + description: '标题对齐方式', + title: '标题对齐方式', + type: 'enum', + editor: { + data: [ + { id: 'left', name: '左对齐' }, + { id: 'center', name: '居中' }, + { id: 'right', name: '右对齐' } + ] + } + }, + align: { + description: '数据水平对齐方式选择', + title: '数据水平对齐方式', + type: 'enum', + editor: { + data: [ + { id: 'left', name: '左对齐' }, + { id: 'center', name: '居中' }, + { id: 'right', name: '右对齐' } + ] + } + }, + valign: { + description: '数据垂直对齐方式选择', + title: '数据垂直对齐方式', + type: 'enum', + editor: { + data: [ + { id: 'top', name: '顶对齐' }, + { id: 'middle', name: '居中' }, + { id: 'bottom', name: '底对齐' } + ] + } + }, + columnTemplate: { + description: '列模板', + title: '列模板', + type: 'string', + refreshPanelAfterChanged: true, + editor: { + type: "code-editor", + language: "html", + } + }, + summaryType: { + description: '合计类型', + title: '合计类型', + visible: !!this.dataGridProps?.summary?.enable && propertyData.dataType === 'number', + type: 'enum', + editor: { + data: [ + { id: 'none', name: '无' }, + { id: 'sum', name: '求和' } + ] + }, + refreshPanelAfterChanged: true } }, - summaryType: { - description: '合计类型', - title: '合计类型', - visible: !!this.dataGridProps?.summary?.enable && propertyData.dataType === 'number', - type: 'enum', - editor: { - data: [ - { id: 'none', name: '无' }, - { id: 'sum', name: '求和' } - ] - }, - refreshPanelAfterChanged: true - } - }, - setPropertyRelates(changeObject, prop, paramters: any) { - if (!changeObject) { - return; - } - switch (changeObject && changeObject.propertyID) { - case 'width': { - prop.actualWidth = changeObject.propertyValue; - break; + setPropertyRelates(changeObject, prop, paramters: any) { + if (!changeObject) { + return; } - case 'summaryType': { - // 更新合计行字段集合 - const { groupFields } = gridData.summary; - if (!groupFields.includes(prop.field) && changeObject.propertyValue === 'sum') { - groupFields.push(prop.field); + switch (changeObject && changeObject.propertyID) { + case 'width': { + prop.actualWidth = changeObject.propertyValue; + break; } - if (groupFields.includes(prop.field) && changeObject.propertyValue === 'none') { - groupFields.splice(groupFields.indexOf(prop.field), 1); + case 'summaryType': { + // 更新合计行字段集合 + const { groupFields } = gridData.summary; + if (!groupFields.includes(prop.field) && changeObject.propertyValue === 'sum') { + groupFields.push(prop.field); + } + if (groupFields.includes(prop.field) && changeObject.propertyValue === 'none') { + groupFields.splice(groupFields.indexOf(prop.field), 1); + } + break; } - break; - } - case 'columnTemplate': { - // 提示以列模板为主 - if (changeObject.propertyValue) { - self.notifyService.warning({ position: 'top-center', message: '注意:已自定义列模板,【列格式化】【悬浮提示】【数据水平对齐方式】【数据垂直对齐方式】等列属性会失效' }); + case 'columnTemplate': { + // 提示以列模板为主 + if (changeObject.propertyValue) { + self.notifyService.warning({ position: 'top-center', message: '注意:已自定义列模板,【列格式化】【悬浮提示】【数据水平对齐方式】【数据垂直对齐方式】等列属性会失效' }); + } + break; } - break; } } - } - }; + }; + } } private getFieldEditorProperties(propertyData: any, gridData: any) { if (gridData.fieldEditable && propertyData.editor) { diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 9490abdccb8..82aacb20eaa 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -9,22 +9,22 @@ export class DataGridProperty extends BaseControlProperty { } getPropertyConfig(propertyData: any) { - + const isTree = propertyData.type === 'tree-grid'; // 基本信息 this.getBasicPropConfig(propertyData); - // 外观 this.getAppearanceProperties(propertyData); - // 操作列 - this.propertyConfig.categories['command'] = this.getCommandColumnProperties(propertyData); - // 填充列宽,仅支持平分列宽 - this.propertyConfig.categories['column'] = this.getColumnOptionProperties(propertyData); + if (!isTree) { + // 操作列 + this.propertyConfig.categories['command'] = this.getCommandColumnProperties(propertyData); + // 填充列宽,仅支持平分列宽 + this.propertyConfig.categories['column'] = this.getColumnOptionProperties(propertyData); - // 合计行 - this.propertyConfig.categories['summary'] = this.getSummaryProperties(propertyData); + // 合计行 + this.propertyConfig.categories['summary'] = this.getSummaryProperties(propertyData); + } // 事件 this.getEventPropConfig(propertyData); - return this.propertyConfig; } @@ -361,12 +361,14 @@ export class DataGridProperty extends BaseControlProperty { { "label": "onSelectionChange", "name": "行切换事件" - }, - { - "label": "onDoubleClickRow", - "name": "行双击事件" } ]; + if (propertyData.type !== 'tree-grid') { + events.push({ + "label": "onDoubleClickRow", + "name": "行双击事件" + }); + } if (propertyData.pagination?.enable !== false) { // 如果没有设置,默认是按照true处理的 events.push({ diff --git a/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json b/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json index 2b890aae284..d354378f564 100644 --- a/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json +++ b/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json @@ -14,6 +14,11 @@ "type": "string", "default": "tree-grid-column" }, + "binding": { + "description": "", + "type": "object", + "default": {} + }, "allowGrouping": { "description": "", "type": "boolean", -- Gitee From f40e6ffe4b76d45c1371aba9d7520af2d7fa5092 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 14 Aug 2025 13:57:41 +0800 Subject: [PATCH 060/109] fix: data grid add endEditCell to property panel --- .../src/property-config/data-grid.property-config.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index a134bc77d8a..28dff3faff0 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -363,7 +363,11 @@ export class DataGridProperty extends BaseControlProperty { { "label": "onDoubleClickRow", "name": "行双击事件" - } + }, + { + "label": "onEndEditCell", + "name": "单元格结束编辑事件" + }, ]; if (propertyData.pagination?.enable !== false) { // 如果没有设置,默认是按照true处理的 -- Gitee From 04b7fe038a584bdb4981f12dffbdbfe6e65e5f07 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 15 Aug 2025 10:47:54 +0800 Subject: [PATCH 061/109] feature: data grid supports multi-selection across pages --- .../data-grid/src/data-grid.component.tsx | 31 ++++++++++++++-- .../data-grid/src/data-grid.props.ts | 2 +- .../data-grid.property-config.ts | 9 +++++ .../data-grid-pagination.component.tsx | 36 +++++++++---------- .../components/data-view/composition/types.ts | 4 +++ .../data-view/composition/use-selection.ts | 25 ++++++++++++- .../ui-vue/demos/data-grid/selection_mode.vue | 3 +- 7 files changed, 85 insertions(+), 25 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx index c3bef6c3644..887b632e4cb 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx +++ b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx @@ -58,7 +58,7 @@ export default defineComponent({ const usePaginationComposition = usePagination(props, dataView); const { shouldRenderPagination } = usePaginationComposition; const useSelectionComposition = useSelection(props as DataViewOptions, dataView, useIdentifyComposition, visibleDatas, context as SetupContext); - const { showSelectAll, updateSelectAllStatus } = useSelectionComposition; + const { showSelectAll, showSelection, selectedValues, updateSelectAllStatus } = useSelectionComposition; const isDisabled = computed(() => props.disabled); const visibleCapacity = computed(() => { return props.virtualized ? Math.min(dataView.dataView.value.length, defaultVisibleCapacity.value) : dataView.dataView.value.length; @@ -205,7 +205,7 @@ export default defineComponent({ ); const { renderDataGridPagination } = getPagination(props as DataViewOptions, context as SetupContext, dataView, - useVirtualScrollComposition, usePaginationComposition); + useVirtualScrollComposition, usePaginationComposition, useSelectionComposition); const { renderDataGridSidebar } = getSidebar(props as DataViewOptions, useRowComposition, useSelectionComposition, useSidebarComposition, useVirtualScrollComposition); @@ -493,6 +493,22 @@ export default defineComponent({ // 渲染空数据提示 const { renderEmpty } = getEmpty(context as SetupContext); + const paginationContainerClass = computed(() => { + return { + 'd-flex': true, + 'justify-content-between': shouldRenderPagination.value && showSelection.value, + 'justify-content-end': shouldRenderPagination.value && !showSelection.value, + 'position-relative': true + }; + }); + + const showSelectionContainerClass = computed(() => { + return { + 'd-flex': true, + 'align-items-center': true + }; + }); + return () => { return (
@@ -510,7 +526,16 @@ export default defineComponent({ {gridContentRef.value && renderVerticalScrollbar()}
{gridContentRef.value && renderDataGridSummary()} - {shouldRenderPagination.value && renderDataGridPagination()} + {(shouldRenderPagination.value || showSelection.value) && +
+ {showSelection.value &&
+
+ {'已选:' + selectedValues.value.length} 条 +
+
} + {shouldRenderPagination.value && renderDataGridPagination()} +
+ } {renderGridColumnResizeOverlay()} {isDisabled.value && renderDisableMask()}
diff --git a/packages/ui-vue/components/data-grid/src/data-grid.props.ts b/packages/ui-vue/components/data-grid/src/data-grid.props.ts index d91d8beb0e0..cf4fd62368f 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.props.ts +++ b/packages/ui-vue/components/data-grid/src/data-grid.props.ts @@ -400,7 +400,7 @@ export const dataGridProps = { multiSelectMode: 'DependOnCheck', showCheckbox: false, showSelectAll: false, - showSelection: true, + showSelection: false, keepSelectingOnClick: true } }, diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 28dff3faff0..6e4f1f7a0d4 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -275,6 +275,15 @@ export class DataGridProperty extends BaseControlProperty { visible: propertyData.selection == null ? false : propertyData.selection.multiSelect && propertyData.selection.showCheckbox, title: '显示全选', type: 'boolean' + }, + keepSelectingOnPaging: { + visible: !!propertyData.selection?.multiSelect, + title: '启用跨页多选', + type: 'boolean' + }, + showSelection: { + title: '显示已选数据数量', + type: 'boolean' } }, setPropertyRelates(changeObject: PropertyChangeObject, data: any) { diff --git a/packages/ui-vue/components/data-view/components/pagination/data-grid-pagination.component.tsx b/packages/ui-vue/components/data-view/components/pagination/data-grid-pagination.component.tsx index 2e6a1b1fd51..d4c83fffae3 100644 --- a/packages/ui-vue/components/data-view/components/pagination/data-grid-pagination.component.tsx +++ b/packages/ui-vue/components/data-view/components/pagination/data-grid-pagination.component.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ import { computed, onMounted, ref, SetupContext, watch } from 'vue'; -import { DataViewOptions, UseDataView, UsePagination, UseVirtualScroll } from '../../composition/types'; +import { DataViewOptions, UseDataView, UsePagination, UseSelection, UseVirtualScroll } from '../../composition/types'; import FPagination from '@farris/ui-vue/components/pagination'; export default function ( @@ -22,46 +22,45 @@ export default function ( context: SetupContext, dataView: UseDataView, virtualScroll: UseVirtualScroll, - usePaginationComposition: UsePagination + usePaginationComposition: UsePagination, + useSelectionComposition: UseSelection ) { + const { clearSelection, keepSelectingOnPaging } = useSelectionComposition; const { pageIndex, totalItems, updatePageSize } = dataView; const paginationRef = ref(); const { pageSize, pageList, showGotoPage, showPageIndex, showPageList, mode, disabled, shouldRenderPagination } = usePaginationComposition; - function onPageIndexChanged(pageInfo: { pageIndex: number; pageSize: number }) { - const { pageIndex, pageSize } = pageInfo; + + function changePage(pageIndex: number, pageSize: number) { if (shouldRenderPagination.value && mode.value !== 'server') { dataView.navigatePageTo(pageIndex); virtualScroll.resetScroll(); + } else { + updatePageSize(pageSize); + if(!keepSelectingOnPaging.value) { + clearSelection(); + } } + } + function onPageIndexChanged(pageInfo: { pageIndex: number; pageSize: number }) { + const { pageIndex, pageSize } = pageInfo; + changePage(pageIndex, pageSize); context.emit('pageIndexChanged', { pageIndex, pageSize }); } function onPageSizeChanged(pageInfo: { pageIndex: number; pageSize: number }) { const { pageIndex, pageSize } = pageInfo; - if (shouldRenderPagination.value && mode.value !== 'server') { - dataView.changePageSizeTo(pageSize); - virtualScroll.resetScroll(); - }else{ - updatePageSize(pageSize); - } + changePage(pageIndex, pageSize); context.emit('pageSizeChanged', { pageIndex, pageSize }); } function onChange(pageInfo: { pageIndex: number; pageSize: number }) { const { pageIndex, pageSize } = pageInfo; - if (shouldRenderPagination.value && mode.value !== 'server') { - // 服务端分页不执行重定向数据的逻辑 - dataView.navigatePageTo(pageIndex); - virtualScroll.resetScroll(); - }else { - updatePageSize(pageSize); - } + changePage(pageIndex, pageSize); context.emit('changed', { pageIndex, pageSize }); } function renderDataGridPagination() { return ( -
-
); } diff --git a/packages/ui-vue/components/data-view/composition/types.ts b/packages/ui-vue/components/data-view/composition/types.ts index 78af8792ed3..f9a9013596e 100644 --- a/packages/ui-vue/components/data-view/composition/types.ts +++ b/packages/ui-vue/components/data-view/composition/types.ts @@ -386,6 +386,8 @@ export interface SelectionOptions { showSelection: boolean; keepSelectingOnClick: boolean; + + keepSelectingOnPaging: boolean; }; export interface CommandOptions { @@ -1017,6 +1019,8 @@ export interface UseSelection { selectAllStatus: Ref; indeterminateStatus: Ref; isSingleSelect: ComputedRef; + showSelection: ComputedRef; + keepSelectingOnPaging: ComputedRef; } export interface UseSelectHierarchyItem { diff --git a/packages/ui-vue/components/data-view/composition/use-selection.ts b/packages/ui-vue/components/data-view/composition/use-selection.ts index 18a92dc11e2..2095b4f7a7f 100644 --- a/packages/ui-vue/components/data-view/composition/use-selection.ts +++ b/packages/ui-vue/components/data-view/composition/use-selection.ts @@ -16,6 +16,7 @@ import { Ref, SetupContext, computed, ref, watch } from 'vue'; import { DataViewOptions, DataViewType, MultiSelectMode, SelectionOptions, UseDataView, UseIdentify, UseSelection, VisualData } from './types'; +type DataItem = DataViewType['value'][number]; export function useSelection( props: DataViewOptions, dataViewComposition: UseDataView, @@ -32,6 +33,8 @@ export function useSelection( const showCheckBox = ref(props.selection.showCheckbox); const showSelectAll = ref(props.selection.showSelectAll); const selectedValues = ref(props.selectionValues || []); + const showSelection = computed(() => props.selection.showSelection); + const keepSelectingOnPaging = computed(() => props.selection?.keepSelectingOnPaging === undefined ? true : props.selection.keepSelectingOnPaging); // 全选状态 const selectAllStatus = ref(!!selectedValues.value.length && @@ -44,6 +47,17 @@ export function useSelection( showSelectAll.value = newShowSelectAllValue; } }); + + function resetSelectedValuesOnPaging() { + if (!keepSelectingOnPaging.value) { + const dataViewIds = dataView.value.map((dataItem: DataViewType['value'][number]) => { + return dataItem[idField.value]; + }); + selectedValues.value = selectedValues.value.filter((selectedValue: string) => { + return dataViewIds.includes(selectedValue); + }); + } + } // 根据所有数据的checked状态确定全选状态 function updateSelectAllStatus() { const isSelectedAll = dataView.value.every((dataItem: any) => @@ -207,6 +221,7 @@ export function useSelection( const uniqueValueSet = new Set(selectedValues.value); uniqueValueSet.add(dataItem[idField.value]); selectedValues.value = Array.from(uniqueValueSet.values()); + resetSelectedValuesOnPaging(); } function unSelectDataItem(dataItemToBeUnSelected: Record) { @@ -215,6 +230,7 @@ export function useSelection( dataItem.__fv_indeterminate__ = false; selectedValues.value = selectedValues.value .filter((seletedDataId: string) => seletedDataId !== dataItem[idField.value]); + resetSelectedValuesOnPaging(); } function selectWithoutRow(visualDataToBeSelected: VisualData) { @@ -224,6 +240,7 @@ export function useSelection( const uniqueValueSet = new Set(selectedValues.value); uniqueValueSet.add(dataItem[idField.value]); selectedValues.value = Array.from(uniqueValueSet.values()); + resetSelectedValuesOnPaging(); visualDataToBeSelected.checked = true; visualDataToBeSelected.indeterminate = false; } @@ -234,6 +251,7 @@ export function useSelection( dataItem.__fv_indeterminate__ = false; selectedValues.value = selectedValues.value .filter((seletedDataId: string) => seletedDataId !== dataItem[idField.value]); + resetSelectedValuesOnPaging(); visualDataToBeUnSelected.checked = false; visualDataToBeUnSelected.indeterminate = false; } @@ -255,6 +273,7 @@ export function useSelection( dataItem.__fv_indeterminate__ = true; selectedValues.value = selectedValues.value .filter((seletedDataId: string) => seletedDataId !== dataItem[idField.value]); + resetSelectedValuesOnPaging(); } /** 灰选指定节点, 用于选择树形结构数据 */ function indeterminate(visualDataToBeIndeterminate: VisualData) { @@ -263,6 +282,7 @@ export function useSelection( dataItem.__fv_indeterminate__ = true; selectedValues.value = selectedValues.value .filter((seletedDataId: string) => seletedDataId !== dataItem[idField.value]); + resetSelectedValuesOnPaging(); visualDataToBeIndeterminate.checked = false; visualDataToBeIndeterminate.indeterminate = true; } @@ -395,6 +415,7 @@ export function useSelection( selectedValues.value = selectedValues.value.filter((selectedId: string) => !dataItemIds.includes(selectedId) ); + resetSelectedValuesOnPaging(); } @@ -455,6 +476,8 @@ export function useSelection( updateSelectAllStatus, selectAllStatus, indeterminateStatus, - isSingleSelect + isSingleSelect, + showSelection, + keepSelectingOnPaging }; } diff --git a/packages/ui-vue/demos/data-grid/selection_mode.vue b/packages/ui-vue/demos/data-grid/selection_mode.vue index 418fe367e68..88c9a9fa310 100644 --- a/packages/ui-vue/demos/data-grid/selection_mode.vue +++ b/packages/ui-vue/demos/data-grid/selection_mode.vue @@ -20,7 +20,8 @@ const selectionOption = computed(() => { multiSelect: false, multiSelectMode: multiSelectMode.value, showCheckbox: showCheckbox.value, - keepSelectingOnClick: false + keepSelectingOnClick: false, + showSelection: true }; }); -- Gitee From aa9b67f6e8ddec1b8149331e05f3696190c70f4a Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 15 Aug 2025 14:43:13 +0800 Subject: [PATCH 062/109] feature: data grid supports empty data template --- .../data-grid/src/data-grid.component.tsx | 2 +- .../data-grid/src/data-grid.props.ts | 2 + .../data-grid.property-config.ts | 19 ++++++-- .../src/schema/data-grid.schema.json | 5 ++ .../components/data/empty.component.tsx | 18 ++++--- .../components/data-view/composition/types.ts | 2 + .../ui-vue/demos/data-grid/empty_content.vue | 48 +++++-------------- 7 files changed, 48 insertions(+), 48 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx index 887b632e4cb..f8930d92cb0 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx +++ b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx @@ -491,7 +491,7 @@ export default defineComponent({ const shouldRenderEmptyContent = computed(() => !visibleDatas.value || !visibleDatas.value.length); // 渲染空数据提示 - const { renderEmpty } = getEmpty(context as SetupContext); + const { renderEmpty } = getEmpty(props as DataViewOptions, context as SetupContext); const paginationContainerClass = computed(() => { return { diff --git a/packages/ui-vue/components/data-grid/src/data-grid.props.ts b/packages/ui-vue/components/data-grid/src/data-grid.props.ts index cf4fd62368f..a941cf15622 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.props.ts +++ b/packages/ui-vue/components/data-grid/src/data-grid.props.ts @@ -438,6 +438,8 @@ export const dataGridProps = { virtualized: { type: Boolean, default: true }, /** 宽度 */ width: { type: Number, default: -1 }, + /** 空数据模板 */ + emptyTemplate: { type: Object as PropType VNode | string)> } } as Record; export type DataGridProps = ExtractPropTypes; diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 6e4f1f7a0d4..e177535a732 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -220,15 +220,24 @@ export class DataGridProperty extends BaseControlProperty { type: "boolean", description: "是否显示条纹" }, - // showBorder: { - // title: "显示边框", - // type: "boolean", - // description: "是否显示边框" - // }, + showBorder: { + title: "显示边框", + type: "boolean", + description: "是否显示边框" + }, showSetting: { title: "显示设置按钮", type: "boolean", description: "是否显示设置按钮" + }, + emptyTemplate : { + title: "空模板", + type: "string", + description: "空模板", + editor: { + type: "code-editor", + language: "html", + } } // useBlankWhenDataIsEmpty: { // title: '空数据表格显示空白行', diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json index f76f755d4b7..62763f2ce86 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json @@ -803,6 +803,11 @@ "type": "boolean", "default": false } + }, + "emptyTemplate": { + "description": "", + "type": "string", + "default": "" } }, "required": [ diff --git a/packages/ui-vue/components/data-view/components/data/empty.component.tsx b/packages/ui-vue/components/data-view/components/data/empty.component.tsx index 810d5d38810..2db2099e086 100644 --- a/packages/ui-vue/components/data-view/components/data/empty.component.tsx +++ b/packages/ui-vue/components/data-view/components/data/empty.component.tsx @@ -1,14 +1,20 @@ import { SetupContext } from "vue"; import { useI18n } from 'vue-i18n'; +import { DataViewOptions } from "../../composition/types"; -export default function (context: SetupContext) { +export default function (props: DataViewOptions, context: SetupContext) { const { t: getLocaleValue } = useI18n(); function renderEmpty() { - return
-
{getLocaleValue('datagrid.emptyMessage')} -
+ return
+ { + props.emptyTemplate ? props.emptyTemplate() : +
{ + getLocaleValue('datagrid.emptyMessage') + } +
+ }
; } return { renderEmpty }; diff --git a/packages/ui-vue/components/data-view/composition/types.ts b/packages/ui-vue/components/data-view/composition/types.ts index f9a9013596e..460124b0fb2 100644 --- a/packages/ui-vue/components/data-view/composition/types.ts +++ b/packages/ui-vue/components/data-view/composition/types.ts @@ -529,6 +529,8 @@ export interface DataViewOptions { /** 自动高度 */ autoHeight: boolean; showBorder: boolean; + + emptyTemplate: null | undefined | (() => VNode | string); } export interface UseDataView { diff --git a/packages/ui-vue/demos/data-grid/empty_content.vue b/packages/ui-vue/demos/data-grid/empty_content.vue index 123c08ad3ca..33d0e07c488 100644 --- a/packages/ui-vue/demos/data-grid/empty_content.vue +++ b/packages/ui-vue/demos/data-grid/empty_content.vue @@ -1,36 +1,8 @@ -- Gitee From 0ec25a115019542b7d798bba41a316257359f196 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 15 Aug 2025 14:54:52 +0800 Subject: [PATCH 063/109] fix: improve features --- .../components/tree-grid/src/tree-grid.component.tsx | 8 ++++---- .../components/tree-view/src/tree-view.component.tsx | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx b/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx index cfd601281ae..6cb9e47f0c3 100644 --- a/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx +++ b/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx @@ -382,7 +382,7 @@ export default defineComponent({ } const shouldRenderEmptyContent = computed(() => !visibleDatas.value || !visibleDatas.value.length); // 渲染空数据提示 - const { renderEmpty } = getEmpty(context as SetupContext); + const { renderEmpty } = getEmpty(props as DataViewOptions, context as SetupContext); function getSelectionRow() { return useSelectionComposition.getSelectionRow(); } @@ -516,12 +516,12 @@ export default defineComponent({ if (useVirtualScrollComposition.shouldShowHorizontalScrollbar.value) { styleObject.paddingBottom = '10px'; } - if(useVirtualScrollComposition.shouldShowVirticalScrollbar.value){ + if (useVirtualScrollComposition.shouldShowVirticalScrollbar.value) { styleObject.paddingRight = '10px'; } return styleObject; }); - + const treeGridStyle = computed(() => { return { ...containerStyleObject.value, @@ -537,7 +537,7 @@ export default defineComponent({ onMouseover={() => mouseInContent.value = true} onMouseleave={() => mouseInContent.value = false} style={gridContentStyle.value} - > + > {gridContentRef.value && renderDataGridSidebar(visibleDatas)} {gridContentRef.value && renderDataArea()} {gridContentRef.value && shouldRenderEmptyContent.value && renderEmpty()} diff --git a/packages/ui-vue/components/tree-view/src/tree-view.component.tsx b/packages/ui-vue/components/tree-view/src/tree-view.component.tsx index 0fd455c4cb9..2a55b378d8a 100644 --- a/packages/ui-vue/components/tree-view/src/tree-view.component.tsx +++ b/packages/ui-vue/components/tree-view/src/tree-view.component.tsx @@ -164,7 +164,7 @@ export default defineComponent({ calculateColumnsSize(); } - const { renderEmpty } = getEmpty(context as SetupContext); + const { renderEmpty } = getEmpty(props as DataViewOptions, context as SetupContext); onMounted(() => { if (treeContentRef.value) { defaultVisibleCapacity.value = Math.max(Math.ceil(treeContentRef.value.clientHeight / rowHeight), @@ -302,13 +302,13 @@ export default defineComponent({ // } // ); - + const gridContentStyle = computed(() => { const styleObject: { paddingBottom?: string, paddingRight?: string } = {}; if (useVirtualScrollComposition.shouldShowHorizontalScrollbar.value) { styleObject.paddingBottom = '10px'; } - if(useVirtualScrollComposition.shouldShowVirticalScrollbar.value){ + if (useVirtualScrollComposition.shouldShowVirticalScrollbar.value) { styleObject.paddingRight = '10px'; } return styleObject; @@ -321,7 +321,7 @@ export default defineComponent({ onMouseover={() => { mouseInContent.value = true; }} onMouseleave={() => { mouseInContent.value = false; }} style={gridContentStyle.value} - > + > {treeContentRef.value && renderDataGridSidebar(visibleDatas)} {renderTreeArea()} {treeContentRef.value && shouldRenderEmptyContent.value && renderEmpty()} -- Gitee From c5648448526720fbddcd35e4bc3c4d560ac4b0b8 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 15 Aug 2025 15:30:52 +0800 Subject: [PATCH 064/109] fix: improve features --- .../components/tree-grid/src/tree-grid.component.tsx | 8 ++++---- .../components/tree-view/src/tree-view.component.tsx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx b/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx index 04383534ac4..57bd3f06955 100644 --- a/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx +++ b/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx @@ -382,7 +382,7 @@ export default defineComponent({ } const shouldRenderEmptyContent = computed(() => !visibleDatas.value || !visibleDatas.value.length); // 渲染空数据提示 - const { renderEmpty } = getEmpty(context as SetupContext); + const { renderEmpty } = getEmpty(props as DataViewOptions, context as SetupContext); function getSelectionRow() { return useSelectionComposition.getSelectionRow(); } @@ -516,12 +516,12 @@ export default defineComponent({ if (useVirtualScrollComposition.shouldShowHorizontalScrollbar.value) { styleObject.paddingBottom = '10px'; } - if(useVirtualScrollComposition.shouldShowVirticalScrollbar.value){ + if (useVirtualScrollComposition.shouldShowVirticalScrollbar.value) { styleObject.paddingRight = '10px'; } return styleObject; }); - + const treeGridStyle = computed(() => { return { ...containerStyleObject.value, @@ -537,7 +537,7 @@ export default defineComponent({ onMouseover={() => mouseInContent.value = true} onMouseleave={() => mouseInContent.value = false} style={gridContentStyle.value} - > + > {gridContentRef.value && renderDataGridSidebar(visibleDatas)} {gridContentRef.value && renderDataArea()} {gridContentRef.value && shouldRenderEmptyContent.value && renderEmpty()} diff --git a/packages/ui-vue/components/tree-view/src/tree-view.component.tsx b/packages/ui-vue/components/tree-view/src/tree-view.component.tsx index d4c1e30576c..87ac64bbbc4 100644 --- a/packages/ui-vue/components/tree-view/src/tree-view.component.tsx +++ b/packages/ui-vue/components/tree-view/src/tree-view.component.tsx @@ -164,7 +164,7 @@ export default defineComponent({ calculateColumnsSize(); } - const { renderEmpty } = getEmpty(context as SetupContext); + const { renderEmpty } = getEmpty(props as DataViewOptions, context as SetupContext); onMounted(() => { if (treeContentRef.value) { defaultVisibleCapacity.value = Math.max(Math.ceil(treeContentRef.value.clientHeight / rowHeight), -- Gitee From aeb19ef3d7714590fc39ca880c4d1d931fe221a7 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 15 Aug 2025 16:08:58 +0800 Subject: [PATCH 065/109] fix: data grid supports custom row and cell style --- .../data-grid.property-config.ts | 48 +++++++++++++++---- .../src/schema/data-grid.schema.json | 12 +++++ 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index e177535a732..f94721830c5 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -19,7 +19,8 @@ export class DataGridProperty extends BaseControlProperty { this.propertyConfig.categories['command'] = this.getCommandColumnProperties(propertyData); // 填充列宽,仅支持平分列宽 this.propertyConfig.categories['column'] = this.getColumnOptionProperties(propertyData); - + // 行配置 增加行和单元格自定义样式 + this.propertyConfig.categories['rowOption'] = this.getRowOptionProperties(propertyData); // 合计行 this.propertyConfig.categories['summary'] = this.getSummaryProperties(propertyData); // 事件 @@ -67,6 +68,33 @@ export class DataGridProperty extends BaseControlProperty { }; } + private getRowOptionProperties(propertyData: any) { + return { + title: '行配置', + description: '', + properties: { + customRowStyle: { + title: '行样式', + type: 'string', + description: '自定义行样式', + editor: { + type: "code-editor", + language: "html", + } + }, + customCellStyle: { + title: '单元格样式', + type: 'string', + description: '自定义单元格样式', + editor: { + type: "code-editor", + language: "html", + } + } + } + }; + } + private getColumnOptionProperties(propertyData: any) { return { title: '填充列宽', @@ -230,7 +258,7 @@ export class DataGridProperty extends BaseControlProperty { type: "boolean", description: "是否显示设置按钮" }, - emptyTemplate : { + emptyTemplate: { title: "空模板", type: "string", description: "空模板", @@ -415,10 +443,10 @@ export class DataGridProperty extends BaseControlProperty { "label": "onSelectItem", "name": "选中行事件" }, - { - "label": "onUnSelectItem", - "name": "取消选中行事件" - },); + { + "label": "onUnSelectItem", + "name": "取消选中行事件" + },); } if (propertyData.selection?.multiSelect && propertyData.selection?.showSelectAll) { // 启用全选事件,暴露全选和取消全选事件 @@ -426,10 +454,10 @@ export class DataGridProperty extends BaseControlProperty { "label": "onSelectAll", "name": "全选事件" }, - { - "label": "onUnSelectAll", - "name": "取消全选事件" - }); + { + "label": "onUnSelectAll", + "name": "取消全选事件" + }); } const self = this; const initialData = self.eventsEditorUtils['formProperties'](propertyData, self.viewModelId, events); diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json index 62763f2ce86..43a56e38a81 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json @@ -808,6 +808,18 @@ "description": "", "type": "string", "default": "" + }, + "rowOption": { + "customRowStyle": { + "description": "", + "type": "string", + "default": "" + }, + "customCellStyle": { + "description": "", + "type": "string", + "default": "" + } } }, "required": [ -- Gitee From 64e864750c426a10d6c39949c8d3abe3d9e8a3e8 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Fri, 15 Aug 2025 16:38:28 +0800 Subject: [PATCH 066/109] feature: column allows to drag --- .../property-config/data-grid-column.property-config.ts | 5 +++++ .../data-grid/src/schema/data-grid-column.schema.json | 5 +++++ packages/ui-vue/demos/data-grid/cell_custom.vue | 7 +++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts index d91720b4521..b547be33348 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts @@ -223,6 +223,11 @@ export class DataGriColumnProperty extends BaseControlProperty { title: '拖拽改变列宽', type: 'boolean' }, + draggable: { + description: '允许列拖拽', + title: '启用拖拽', + type: 'boolean' + }, // filterable: { // description: '启用过滤', // title: '启用过滤', diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json index 5117df01c78..f230ee64b74 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json @@ -172,6 +172,11 @@ "multiLanguage": { "description": "是否启用多语", "type": "boolean" + }, + "draggable": { + "description": "是否允许拖拽", + "type": "boolean", + "default": false } }, "required": [ diff --git a/packages/ui-vue/demos/data-grid/cell_custom.vue b/packages/ui-vue/demos/data-grid/cell_custom.vue index 0a0d979426c..273fc925687 100644 --- a/packages/ui-vue/demos/data-grid/cell_custom.vue +++ b/packages/ui-vue/demos/data-grid/cell_custom.vue @@ -109,6 +109,7 @@ const data = [ const columns: Partial[] = [ { + draggable: true, field: 'code', title: '编号', width: 200, dataType: 'string', format: (cell: VisualDataCell, visualDataRow: VisualData) => h('a', { @@ -125,7 +126,8 @@ const columns: Partial[] = [ return `我叫${cell.data}`; } return `姓名:${cell.data}`; - } + }, + draggable: true, }, { field: 'booleanField1', title: '布尔', width: 200, dataType: 'boolean', @@ -138,7 +140,8 @@ const columns: Partial[] = [ { id: 'item4', name: '选项四' }, { id: 'item5', name: '选项五' } ] - } + }, + draggable: true, }, // { field: 'dateField1', title: '日期', width: 200, dataType: 'date' }, // { field: 'datetimeField1', title: '日期时间', width: 200, dataType: 'datetime' }, -- Gitee From 1404f75155f9ceace2536c13ea95769288a016a3 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 18 Aug 2025 09:29:07 +0800 Subject: [PATCH 067/109] fix: modify data grid schema --- .../src/schema/data-grid.schema.json | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json index 43a56e38a81..27a9047d965 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json @@ -479,13 +479,18 @@ } } }, - "row": { + "rowOption": { "type": "object", "properties": { "customRowStyle": { "description": "", "type": "object" }, + "customCellStyle": { + "description": "", + "type": "string", + "default": "" + }, "disable": { "description": "", "type": "obejct" @@ -808,18 +813,6 @@ "description": "", "type": "string", "default": "" - }, - "rowOption": { - "customRowStyle": { - "description": "", - "type": "string", - "default": "" - }, - "customCellStyle": { - "description": "", - "type": "string", - "default": "" - } } }, "required": [ -- Gitee From 811054d73c5056631a9661c8c5358045bac75c06 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 18 Aug 2025 14:46:35 +0800 Subject: [PATCH 068/109] fix: update demo --- packages/ui-vue/demos/combo-list/multi.vue | 15 +++++++++++++-- packages/ui-vue/demos/combo-list/search.vue | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/ui-vue/demos/combo-list/multi.vue b/packages/ui-vue/demos/combo-list/multi.vue index 507dde28695..6d579e46a06 100644 --- a/packages/ui-vue/demos/combo-list/multi.vue +++ b/packages/ui-vue/demos/combo-list/multi.vue @@ -22,7 +22,13 @@ for (let index = 0; index < 15; index++) {
- +
@@ -72,7 +78,12 @@ for (let index = 0; index < 15; index++) {
- +
diff --git a/packages/ui-vue/demos/combo-list/search.vue b/packages/ui-vue/demos/combo-list/search.vue index d04e2954a37..eb172e2babf 100644 --- a/packages/ui-vue/demos/combo-list/search.vue +++ b/packages/ui-vue/demos/combo-list/search.vue @@ -27,6 +27,7 @@ for (let index = 0; index < 15; index++) {
-- Gitee From 8fba4b57dcec443a17ed50d104948370401fbfe3 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 18 Aug 2025 16:53:16 +0800 Subject: [PATCH 069/109] fix: data grid supports group --- .../data-grid-column.property-config.ts | 19 ++++++++- .../data-grid.property-config.ts | 24 +++++++++++ .../src/schema/data-grid-column.schema.json | 5 +++ .../src/converter/group.converter.ts | 42 +++++++++++++++++++ .../src/property-config-resolver.ts | 2 + .../use-property-config-resolver.ts | 2 + 6 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts index b547be33348..6d8be78c282 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts @@ -301,6 +301,13 @@ export class DataGriColumnProperty extends BaseControlProperty { ] }, refreshPanelAfterChanged: true + }, + enableGroup: { + description: '启用分组', + title: '分组', + visible: !!this.dataGridProps?.group?.enable, + type: 'boolean', + refreshPanelAfterChanged: true } }, setPropertyRelates(changeObject, prop, paramters: any) { @@ -311,7 +318,7 @@ export class DataGriColumnProperty extends BaseControlProperty { case 'width': { prop.actualWidth = changeObject.propertyValue; break; - } + }; case 'summaryType': { // 更新合计行字段集合 const { groupFields } = gridData.summary; @@ -322,13 +329,21 @@ export class DataGriColumnProperty extends BaseControlProperty { groupFields.splice(groupFields.indexOf(prop.field), 1); } break; - } + }; case 'columnTemplate': { // 提示以列模板为主 if (changeObject.propertyValue) { self.notifyService.warning({ position: 'top-center', message: '注意:已自定义列模板,【列格式化】【悬浮提示】【数据水平对齐方式】【数据垂直对齐方式】等列属性会失效' }); } break; + }; + case 'enableGroup': { + const { groupFields } = gridData.group; + if(changeObject.propertyValue) { + groupFields.push(prop.field); + } else { + groupFields.splice(groupFields.indexOf(prop.field), 1); + } } } } diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index f94721830c5..313b3d27ca6 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -23,6 +23,8 @@ export class DataGridProperty extends BaseControlProperty { this.propertyConfig.categories['rowOption'] = this.getRowOptionProperties(propertyData); // 合计行 this.propertyConfig.categories['summary'] = this.getSummaryProperties(propertyData); + // 分组配置 + this.propertyConfig.categories['group'] = this.getGroupProperties(propertyData); // 事件 this.getEventPropConfig(propertyData); @@ -177,6 +179,28 @@ export class DataGridProperty extends BaseControlProperty { }; } + private getGroupProperties(propertyData: any) { + return { + title: '分组', + description: '', + properties: { + enable: { + title: '启用', + type: 'boolean', + description: '启用分组', + $converter: '/converter/group.converter', + refreshPanelAfterChanged: true + }, + // groupFields: { + // title: '启用', + // type: 'boolean', + // description: '启用分组', + // refreshPanelAfterChanged: true + // } + } + }; + } + private getSummaryProperties(propertyData: any) { return { title: '合计行', diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json index f230ee64b74..63354f7f943 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json @@ -177,6 +177,11 @@ "description": "是否允许拖拽", "type": "boolean", "default": false + }, + "enableGroup": { + "description": "", + "type": "boolean", + "default": false } }, "required": [ diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts new file mode 100644 index 00000000000..ee5adf56567 --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts @@ -0,0 +1,42 @@ +import { ComponentSchema } from "../../../designer-canvas/src/types"; +import { PropertyConverter, SchemaService } from "../types"; + +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + // eslint-disable-next-line no-self-assign + if (schema.group) { + schema.group[propertyKey] = propertyValue; + } else { + schema.group = { + [propertyKey]: propertyValue + }; + } + if (propertyKey === 'enable' && propertyValue) { + // 启用合计行 + if (!schema.group) { + schema.group = { + enable: propertyValue, + groupFields: [] + }; + } else { + if(!schema.group.groupFields) { + schema.group.groupFields = []; + } + } + } + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if (schema.group) { + if (propertyKey === 'enable') { + return schema.group.enable; + } + } + // if (schema.type === 'data-grid-column') { + // if (schema.enableGroup === undefined) { + // return false; + // } + // return schema.enableGroup; + // } + // return ''; + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts index 35b09bb6951..382f82154ef 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts @@ -13,6 +13,7 @@ import changeFormatterConverter from './converter/change-formatter.converter'; import columnCommandConverter from './converter/column-command.converter'; import columnOptionConverter from './converter/column-option.converter'; import SummaryConverter from './converter/summary.converter'; +import GroupConverter from './converter/group.converter'; import fieldSelectorConverter from "./converter/field-selector.converter"; import paginationConverter from "./converter/pagination.converter"; import rowNumberConverter from "./converter/row-number.converter"; @@ -34,6 +35,7 @@ const propertyConverterMap = new Map([ ['/converter/column-command.converter', columnCommandConverter], ['/converter/column-option.converter', columnOptionConverter], ['/converter/summary.converter', SummaryConverter], + ['/converter/group.converter', GroupConverter], ['/converter/form-group-label.converter', formGroupLabelConverter], ['/converter/field-selector.converter', fieldSelectorConverter], ['/converter/pagination.converter', paginationConverter], diff --git a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts index 92c81d4486c..4aa1bda425a 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts @@ -12,6 +12,7 @@ import changeFormatterConverter from '../../converter/change-formatter.converter import columnCommandConverter from '../../converter/column-command.converter'; import columnOptionConverter from '../../converter/column-option.converter'; import SummaryConverter from '../../converter/summary.converter'; +import GroupConverter from '../../converter/group.converter'; import fieldSelectorConverter from "../../converter/field-selector.converter"; import paginationConverter from "../../converter/pagination.converter"; import rowNumberConverter from "../../converter/row-number.converter"; @@ -35,6 +36,7 @@ export function usePropertyConfigResolver(propertyConfigSchemaMap: Record Date: Tue, 19 Aug 2025 09:58:12 +0800 Subject: [PATCH 070/109] fix: optimize data grid --- ...omponent-creator.service_20250818154710.ts | 394 ++++++++++++++++++ ...omponent-creator.service_20250819094721.ts | 394 ++++++++++++++++++ ...omponent-creator.service_20250819094822.ts | 394 ++++++++++++++++++ ...omponent-creator.service_20250819094835.ts | 394 ++++++++++++++++++ ...omponent-creator.service_20250819094843.ts | 393 +++++++++++++++++ ...omponent-creator.service_20250819094917.ts | 393 +++++++++++++++++ ...omponent-creator.service_20250819094925.ts | 392 +++++++++++++++++ ...omponent-creator.service_20250819094926.ts | 392 +++++++++++++++++ ...omponent-creator.service_20250819094937.ts | 391 +++++++++++++++++ ...omponent-creator.service_20250819094938.ts | 391 +++++++++++++++++ ...omponent-creator.service_20250819094939.ts | 391 +++++++++++++++++ .../data-grid-component-creator.service.ts | 11 +- 12 files changed, 4323 insertions(+), 7 deletions(-) create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts create mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts new file mode 100644 index 00000000000..6aee0053af4 --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts @@ -0,0 +1,394 @@ +import { DesignerHostService } from '../../../designer-canvas/src/composition/types'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '../../../../components/dynamic-resolver'; +import { ComponentBuildInfo } from '../../../component/src/composition/inner-component-build-info'; +import { ComponentSchema } from '../../../../components/designer-canvas'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { cloneDeep } from 'lodash-es'; +import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts new file mode 100644 index 00000000000..c8b423c257c --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts @@ -0,0 +1,394 @@ +import { DesignerHostService } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '../../../../components/dynamic-resolver'; +import { ComponentBuildInfo } from '../../../component/src/composition/inner-component-build-info'; +import { ComponentSchema } from '../../../../components/designer-canvas'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { cloneDeep } from 'lodash-es'; +import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts new file mode 100644 index 00000000000..e4453c8ef32 --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts @@ -0,0 +1,394 @@ +import { DesignerHostService, ComponentSchema } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { ComponentSchema } from '../../../../components/designer-canvas'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { cloneDeep } from 'lodash-es'; +import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts new file mode 100644 index 00000000000..c0bd54cead0 --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts @@ -0,0 +1,394 @@ +import { DesignerHostService, ComponentSchema } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; + +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { cloneDeep } from 'lodash-es'; +import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts new file mode 100644 index 00000000000..c698b0b10c5 --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts @@ -0,0 +1,393 @@ +import { cloneDeep } from 'lodash-es'; +import { DesignerHostService, ComponentSchema } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts new file mode 100644 index 00000000000..4da91881a68 --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts @@ -0,0 +1,393 @@ +import { cloneDeep } from 'lodash-es'; +import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts new file mode 100644 index 00000000000..1d92d23a36f --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts @@ -0,0 +1,392 @@ +import { cloneDeep } from 'lodash-es'; +import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts new file mode 100644 index 00000000000..1d92d23a36f --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts @@ -0,0 +1,392 @@ +import { cloneDeep } from 'lodash-es'; +import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; +import { useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts new file mode 100644 index 00000000000..946f72dae5e --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts @@ -0,0 +1,391 @@ +import { cloneDeep } from 'lodash-es'; +import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts new file mode 100644 index 00000000000..946f72dae5e --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts @@ -0,0 +1,391 @@ +import { cloneDeep } from 'lodash-es'; +import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts new file mode 100644 index 00000000000..946f72dae5e --- /dev/null +++ b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts @@ -0,0 +1,391 @@ +import { cloneDeep } from 'lodash-es'; +import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from '@farris/ui-vue/components/common'; + +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; + +/** + * 创建表格组件服务类 + */ +export class DataGridComponentCreatorService { + + private formSchemaUtils: any; + private controlCreatorUtils: any; + private designViewModelUtils: any; + private useFormCommand: any; + private formStateMachineUtils: any; + + constructor( + private resolver: DynamicResolver, + private designerHostService: DesignerHostService + ) { + this.formSchemaUtils = this.designerHostService.formSchemaUtils; + this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; + this.designViewModelUtils = this.designerHostService.designViewModelUtils; + this.useFormCommand = this.designerHostService.useFormCommand; + this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; + } + + public createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = this.createComponentRefNode(buildInfo); + + const componentNode = this.createComponentNode(buildInfo); + + const viewModelNode = this.createViewModeNode(buildInfo); + + const formSchema = this.formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + this.designViewModelUtils.assembleDesignViewModel(); + + return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = this.resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + this.designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + + /** + * 为父容器追加新增、删除按钮 + */ + private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + this.appendAddAndDeleteCommands(viewModelNode); + + if (this.useFormCommand) { + this.useFormCommand.checkCommands(); + } + } + /** + * 向视图模型添加新增删除命令 + */ + private appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = this.resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { + this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + private resolveCommandController(): string { + const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + + createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; + const contents = this.createDateGridComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + appearance: { + class: this.getDataGridComponentClass() + }, + contents + }); + return componentNode; + } + /** + * 添加viewModel节点 + */ + createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: this.assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + /** + * 获取表格组件层级的class样式 + */ + private getDataGridComponentClass(): string { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + + // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 + if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { + return 'f-struct-wrapper f-utils-fill-flex-column'; + } + return 'f-struct-is-subgrid'; + + } + /** + * 创建表格组件内层级结构 + */ + private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = this.formSchemaUtils.getFormSchema().module; + let container; + // 根据模板不同,创建不同的容器类型和样式 + if (templateId === 'double-list-in-tab-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main px-0 pt-0' + }, + fill: true, + showHeader: false + }); + container = section; + } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { + // 1、创建setion + const section = this.resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; + const columns: any[] = []; + const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); + const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(dataGrid, { + id: buildInfo.componentId + '-dataGrid', + appearance: { + class: 'f-component-grid' + }, + columns, + fieldEditable, + dataSource: buildInfo.dataSource || '', + editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [dataGrid]; + const { selectedFields } = buildInfo; + // 3、创建字段 + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + const dgVMField = cloneDeep(field); + const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); + if (grieFieldMetadata) { + columns.push(grieFieldMetadata); + } + }); + return [container]; + } + + + /** + * 组装viewModel fields 节点 + */ + private assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + +} diff --git a/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service.ts b/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service.ts index 6aee0053af4..946f72dae5e 100644 --- a/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service.ts +++ b/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service.ts @@ -1,11 +1,8 @@ -import { DesignerHostService } from '../../../designer-canvas/src/composition/types'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '../../../../components/dynamic-resolver'; -import { ComponentBuildInfo } from '../../../component/src/composition/inner-component-build-info'; -import { ComponentSchema } from '../../../../components/designer-canvas'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; import { cloneDeep } from 'lodash-es'; -import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; -import { useGuid } from '@farris/ui-vue/components/common'; +import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; +import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; +import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from '@farris/ui-vue/components/common'; const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; -- Gitee From 114ae55eafa77efb4932730f304a663dc7051238 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Tue, 19 Aug 2025 14:04:02 +0800 Subject: [PATCH 071/109] fix: optimize data grouping --- .gitignore | 1 + .../composition/data/use-group-data.ts | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0c76a4b3711..548aec194f2 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ dist-ssr # Editor directories and files .idea +.history .DS_Store *.suo *.ntvs* diff --git a/packages/ui-vue/components/data-view/composition/data/use-group-data.ts b/packages/ui-vue/components/data-view/composition/data/use-group-data.ts index 4496935d630..39ddb14b178 100644 --- a/packages/ui-vue/components/data-view/composition/data/use-group-data.ts +++ b/packages/ui-vue/components/data-view/composition/data/use-group-data.ts @@ -35,17 +35,21 @@ export function useGroupData( const { idField } = identifyComposition; const summaryOptions = ref(props.summary); - + // 表格分组配置 const groupOptions = ref(props.group); + // 表格分组字段集合 const groupFields = ref(props.group?.groupFields || []); + // 启用表格分组 const shouldGroupingData = computed(() => props.group?.enable); + // 启用分组面板 const showGroupPanel = computed(() => props.group?.showGroupPanel); + // 合计行字段 const groupSummaryFields = computed(() => { const options = summaryOptions.value; return options?.groupFields || []; }); - + // 启用分组合计行 const shouldShowSummary = computed(() => { const options = groupOptions.value; return options && options.showSummary; @@ -85,6 +89,15 @@ export function useGroupData( } }); } + // 限制分组合计的精度,默认2位小数 + if (groupSummaryFields.value) { + groupSummaryFields.value.forEach((summaryField: string) => { + if (groupingItem) { + const summaryFieldValue = groupingItem.groupSummaries.get(summaryField) || 0; + groupingItem.groupSummaries.set(summaryField, Number(summaryFieldValue.toFixed(2))); + } + }); + } groupingItem.details.push(rawDataItem); return groupResult; }, groupObject); -- Gitee From 825945129fae70eb1442d9c1e272ab057f33d1bd Mon Sep 17 00:00:00 2001 From: hyygzds Date: Tue, 19 Aug 2025 14:07:46 +0800 Subject: [PATCH 072/109] fix: restore column hyperlink --- .../src/property-config/data-grid-column.property-config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts index d91720b4521..57423ba2651 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts @@ -73,7 +73,7 @@ export class DataGriColumnProperty extends BaseControlProperty { this.propertyConfig.categories['formatter'] = this.getTemplateProperties(propertyData); } // 列事件 - // this.getEventPropConfig(propertyData); + this.getEventPropConfig(propertyData); return this.propertyConfig; } -- Gitee From 35ec59305329fc875d8ca5a8e28481c6ed39514e Mon Sep 17 00:00:00 2001 From: hyygzds Date: Tue, 19 Aug 2025 17:22:16 +0800 Subject: [PATCH 073/109] fix: designer supports show group summary --- .../data-grid-column.property-config.ts | 6 ++--- .../data-grid.property-config.ts | 8 +++++++ .../composition/data/use-data-view.ts | 24 ++++++++++++++++--- .../composition/data/use-group-data.ts | 6 ++++- .../components/data-view/composition/types.ts | 6 +++-- .../visualization/use-visual-data.ts | 4 ++-- .../src/converter/group.converter.ts | 6 ++++- .../demos/data-grid/group_local_data.vue | 13 ++++++---- 8 files changed, 56 insertions(+), 17 deletions(-) diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts index 6d8be78c282..dcb3446f21e 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts @@ -338,11 +338,11 @@ export class DataGriColumnProperty extends BaseControlProperty { break; }; case 'enableGroup': { - const { groupFields } = gridData.group; if(changeObject.propertyValue) { - groupFields.push(prop.field); + gridData.group.groupFields = [prop.field]; } else { - groupFields.splice(groupFields.indexOf(prop.field), 1); + // groupFields.splice(groupFields.indexOf(prop.field), 1); + gridData.group.groupFields = []; } } } diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 313b3d27ca6..9e28065757e 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -191,6 +191,14 @@ export class DataGridProperty extends BaseControlProperty { $converter: '/converter/group.converter', refreshPanelAfterChanged: true }, + showSummary: { + title: '显示分组合计行', + type: 'boolean', + visible: !!propertyData.group?.enable, + $converter: '/converter/group.converter', + description: '显示分组合计行' + } + // groupFields: { // title: '启用', // type: 'boolean', diff --git a/packages/ui-vue/components/data-view/composition/data/use-data-view.ts b/packages/ui-vue/components/data-view/composition/data/use-data-view.ts index a1f6bd0a79f..1a16b02b925 100644 --- a/packages/ui-vue/components/data-view/composition/data/use-data-view.ts +++ b/packages/ui-vue/components/data-view/composition/data/use-data-view.ts @@ -296,10 +296,23 @@ export function useDataView( return applyFilterAndSorter([], Array.from(sorterMap.values()), true); } - function collapse(collapseField: string, collapseValue: any) { + function collapse(collapseField: string, collapseValue: any, groupParents: any[]) { const groupedRowId = `group_of_${collapseField}_${collapseValue}`; collapseMap.set(groupedRowId, true); - const collapseFieldFilter = (dataItem: any) => dataItem[collapseField] !== collapseValue; + // 构造分组收折隐藏条件 + // groupParents.forEach((parent: any) => { + // const parentGroupField = parent.__fv_data_grid_group_field__ || ''; + // const parentGroupValue = parent.__fv_data_grid_group_value__; + // const parentGroupFilter = (dataItem: any) => dataItem[parentGroupField] === parentGroupValue; + // groupFilterMap.set(`collapse_${parentGroupField}_${parentGroupValue}`, { + // field: parentGroupField, + // fieldName: parentGroupField, + // fieldType: 'string', + // filterValue: parentGroupValue, + // filter: parentGroupFilter + // }); + // }); + const collapseFieldFilter = (dataItem: any) => dataItem[collapseField] === collapseValue; groupFilterMap.set(`collapse_${collapseField}_${collapseValue}`, { field: collapseField, fieldName: collapseField, @@ -318,9 +331,14 @@ export function useDataView( expandToLayer(dataView.value, layer); } - function expand(expandField: string, expandValue: any) { + function expand(expandField: string, expandValue: any, groupParents: any[]) { const groupedRowId = `group_of_${expandField}_${expandValue}`; collapseMap.set(groupedRowId, false); + // groupParents.forEach((parent: any) => { + // const parentGroupField = parent.__fv_data_grid_group_field__ || ''; + // const parentGroupValue = parent.__fv_data_grid_group_value__; + // groupFilterMap.delete(`collapse_${parentGroupField}_${parentGroupValue}`); + // }); groupFilterMap.delete(`collapse_${expandField}_${expandValue}`); return applyFilterAndSorter(Array.from(groupFilterMap.values()), Array.from(sorterMap.values()), true); } diff --git a/packages/ui-vue/components/data-view/composition/data/use-group-data.ts b/packages/ui-vue/components/data-view/composition/data/use-group-data.ts index 39ddb14b178..a67f1407784 100644 --- a/packages/ui-vue/components/data-view/composition/data/use-group-data.ts +++ b/packages/ui-vue/components/data-view/composition/data/use-group-data.ts @@ -128,8 +128,12 @@ export function useGroupData( __fv_data_grid_group_field__: groupingItem.field, __fv_data_grid_group_layer__: groupingItem.layer, __fv_data_grid_group_row__: true, - __fv_data_grid_group_value__: groupingItem.value + __fv_data_grid_group_value__: groupingItem.value, + groupParents: [] } as Record; + if (parentVirtualDataItem) { + virtualDataItem.groupParents = [...parentVirtualDataItem.groupParents, parentVirtualDataItem]; + } let total = 0; groupingData.push(virtualDataItem); if (groupingItem.nestGroup) { diff --git a/packages/ui-vue/components/data-view/composition/types.ts b/packages/ui-vue/components/data-view/composition/types.ts index 460124b0fb2..5dac33c2248 100644 --- a/packages/ui-vue/components/data-view/composition/types.ts +++ b/packages/ui-vue/components/data-view/composition/types.ts @@ -544,7 +544,8 @@ export interface UseDataView { changePageSizeTo: (newPageSize: number) => void; - collapse: (collapseField: string, collapseValue: any) => any[]; + collapse: (collapseField: string, collapseValue: any, groupParents: VisualData[]) => any[]; + collapseTo: (layer: number) => void; @@ -552,7 +553,8 @@ export interface UseDataView { editDataItem: (editIndex: string | number, newName: string) => void; - expand: (expandField: string, expandValue: any) => any[]; + expand: (expandField: string, expandValue: any, groupParents: any[]) => any[]; + expandTo: (layer: number) => void; diff --git a/packages/ui-vue/components/data-view/composition/visualization/use-visual-data.ts b/packages/ui-vue/components/data-view/composition/visualization/use-visual-data.ts index 7819771cdf3..d8971d01119 100644 --- a/packages/ui-vue/components/data-view/composition/visualization/use-visual-data.ts +++ b/packages/ui-vue/components/data-view/composition/visualization/use-visual-data.ts @@ -87,8 +87,8 @@ export function useVisualData( function toggleGroupRow(status: 'collapse' | 'expand', groupRow: VisualData, visibleDatas: VisualData[]): VisualData[] { const groupField = groupRow.groupField || ''; - const { groupValue } = groupRow; - dataViewComposition[status](groupField, groupValue); + const { groupValue, raw } = groupRow; + dataViewComposition[status](groupField, groupValue, raw.groupParents || []); const { dataView } = dataViewComposition; // todo: 当客户端分页时,此处start和end需要更改,后续处理 const start = visibleDatas[0].index; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts index ee5adf56567..5caf2b8aa73 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts @@ -16,7 +16,8 @@ export default { if (!schema.group) { schema.group = { enable: propertyValue, - groupFields: [] + groupFields: [], + showSummary: false }; } else { if(!schema.group.groupFields) { @@ -30,6 +31,9 @@ export default { if (propertyKey === 'enable') { return schema.group.enable; } + if (propertyKey === 'showSummary') { + return schema.group.showSummary; + } } // if (schema.type === 'data-grid-column') { // if (schema.enableGroup === undefined) { diff --git a/packages/ui-vue/demos/data-grid/group_local_data.vue b/packages/ui-vue/demos/data-grid/group_local_data.vue index d5a4ad7a3c9..dce38fee582 100644 --- a/packages/ui-vue/demos/data-grid/group_local_data.vue +++ b/packages/ui-vue/demos/data-grid/group_local_data.vue @@ -92,13 +92,15 @@ const editOption = { } const groupOption = { enable: true, - groupFields: ['name', 'dateField1'] + groupFields: ['name'], + showSummary: true, + summaryPosition: 'separate' // showSummary: true } -// const summaryOption = { -// enable: false, -// groupFields: ['numericField1'] -// }; +const summaryOption = { + enable: false, + groupFields: ['numericField1'] +}; const paginationRef = computed(() => { return { total: 100, @@ -158,6 +160,7 @@ onMounted(() => { -- Gitee From 295cf46887cc703d746de93fcaebecd8954b41cd Mon Sep 17 00:00:00 2001 From: hyygzds Date: Tue, 19 Aug 2025 17:39:16 +0800 Subject: [PATCH 074/109] fix: designer supports show group summary --- .../data-view/designer/use-visual-data.ts | 5 +- pnpm-lock.yaml | 622 ++---------------- 2 files changed, 65 insertions(+), 562 deletions(-) diff --git a/packages/ui-vue/components/data-view/designer/use-visual-data.ts b/packages/ui-vue/components/data-view/designer/use-visual-data.ts index 9b5e06401a0..cddb9782d0b 100644 --- a/packages/ui-vue/components/data-view/designer/use-visual-data.ts +++ b/packages/ui-vue/components/data-view/designer/use-visual-data.ts @@ -87,8 +87,9 @@ export function useDesignerVisualData( function toggleGroupRow(status: 'collapse' | 'expand', groupRow: VisualData, visibleDatas: VisualData[]): VisualData[] { const groupField = groupRow.groupField || ''; - const { groupValue } = groupRow; - dataViewComposition[status](groupField, groupValue); + const { groupValue, raw } = groupRow; + dataViewComposition[status](groupField, groupValue, raw.groupParents || []); + const { dataView } = dataViewComposition; const start = visibleDatas[0].index; const end = Math.min(start + visibleCapacity.value + preloadCount + 1, dataView.value.length - 1); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9b3146c845..21f68f22c4b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,10 +366,10 @@ importers: version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -408,7 +408,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -444,19 +444,19 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -513,7 +513,7 @@ importers: version: 7.8.1 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.120)(rollup@4.45.1)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@5.6.3) @@ -526,10 +526,10 @@ importers: version: 7.25.8 '@babel/preset-env': specifier: ^7.19.0 - version: 7.25.8(@babel/core@7.25.8) + version: 7.25.8(@babel/core@7.28.0) '@babel/preset-typescript': specifier: ^7.18.0 - version: 7.25.7(@babel/core@7.25.8) + version: 7.25.7(@babel/core@7.28.0) '@babel/traverse': specifier: ^7.19.0 version: 7.25.7 @@ -565,13 +565,13 @@ importers: version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 - version: 1.2.5(@babel/core@7.25.8) + version: 1.2.5(@babel/core@7.28.0) '@vue/compiler-sfc': specifier: ^3.2.0 version: 3.5.12 @@ -586,7 +586,7 @@ importers: version: 0.7.6 babel-jest: specifier: ^29.0.3 - version: 29.7.0(@babel/core@7.25.8) + version: 29.7.0(@babel/core@7.28.0) chalk: specifier: ^5.0.0 version: 5.3.0 @@ -604,7 +604,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -622,25 +622,25 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@18.19.120)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@18.19.120)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -843,7 +843,7 @@ importers: version: 3.9.1(@types/node@20.5.1)(rollup@4.45.1)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) @@ -1091,7 +1091,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -1185,10 +1185,10 @@ importers: version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1227,7 +1227,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -1263,19 +1263,19 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1499,7 +1499,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -1720,7 +1720,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -2083,7 +2083,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -2340,7 +2340,7 @@ importers: version: 0.8.0 vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) @@ -4841,6 +4841,7 @@ packages: '@ls-lint/ls-lint@2.3.1': resolution: {integrity: sha512-vPe6IDByQnQRTxcAYjTxrmga/tSIui50VBFTB5KIJWY3OOFmxE2VtymjeSEfQfiMbhZV/ZPAqYy2lt8pZFQ0Rw==} + cpu: [x64, arm64, s390x, ppc64le] os: [darwin, linux, win32] hasBin: true @@ -16345,7 +16346,7 @@ snapshots: '@types/node': 20.5.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.8.3) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.8.3))(typescript@5.8.3) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -17188,7 +17189,7 @@ snapshots: bignumber.js: 9.1.2 lodash: 4.17.21 lodash-es: 4.17.21 - moment: 2.30.1 + moment: 2.29.1 mxgraph: 4.2.2 rxjs: 7.8.1 vue: 3.5.12(typescript@4.9.5) @@ -17619,41 +17620,6 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.120 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 @@ -18000,14 +17966,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.29.8(@types/node@18.19.120)': - dependencies: - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.120) - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor-model@7.29.8(@types/node@18.19.57)': dependencies: '@microsoft/tsdoc': 0.15.0 @@ -18060,24 +18018,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.11(@types/node@18.19.120)': - dependencies: - '@microsoft/api-extractor-model': 7.29.8(@types/node@18.19.120) - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.120) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.2(@types/node@18.19.120) - '@rushstack/ts-command-line': 4.23.0(@types/node@18.19.120) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor@7.47.11(@types/node@18.19.57)': dependencies: '@microsoft/api-extractor-model': 7.29.8(@types/node@18.19.57) @@ -18473,18 +18413,6 @@ snapshots: '@rushstack/eslint-patch@1.11.0': {} - '@rushstack/node-core-library@3.66.1(@types/node@18.19.120)': - dependencies: - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - z-schema: 5.0.5 - optionalDependencies: - '@types/node': 18.19.120 - '@rushstack/node-core-library@3.66.1(@types/node@18.19.57)': dependencies: colors: 1.2.5 @@ -18531,19 +18459,6 @@ snapshots: optionalDependencies: '@types/node': 20.5.1 - '@rushstack/node-core-library@5.9.0(@types/node@18.19.120)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - optionalDependencies: - '@types/node': 18.19.120 - '@rushstack/node-core-library@5.9.0(@types/node@18.19.57)': dependencies: ajv: 8.13.0 @@ -18594,13 +18509,6 @@ snapshots: optionalDependencies: '@types/node': 20.5.1 - '@rushstack/terminal@0.14.2(@types/node@18.19.120)': - dependencies: - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.120) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 18.19.120 - '@rushstack/terminal@0.14.2(@types/node@18.19.57)': dependencies: '@rushstack/node-core-library': 5.9.0(@types/node@18.19.57) @@ -18633,15 +18541,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.23.0(@types/node@18.19.120)': - dependencies: - '@rushstack/terminal': 0.14.2(@types/node@18.19.120) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@rushstack/ts-command-line@4.23.0(@types/node@18.19.57)': dependencies: '@rushstack/terminal': 0.14.2(@types/node@18.19.57) @@ -19421,16 +19320,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - transitivePeerDependencies: - - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: '@babel/core': 7.25.8 @@ -19460,11 +19349,6 @@ snapshots: dependencies: vite: 2.9.18(sass@1.89.2) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - vite: 3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) @@ -19500,11 +19384,6 @@ snapshots: vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) @@ -20218,39 +20097,14 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': - dependencies: - '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite - - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -20268,42 +20122,16 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) fp-ts: 2.16.9 inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite - - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': - dependencies: - '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) - fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) - markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding @@ -20316,14 +20144,13 @@ snapshots: - sugarss - supports-color - terser - - vite '@yankeeinlondon/builder-api@1.4.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 markdown-it: 13.0.2 vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) transitivePeerDependencies: @@ -20342,7 +20169,7 @@ snapshots: '@yankeeinlondon/gray-matter@6.2.1': dependencies: - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 js-yaml: 4.1.0 kind-of: 6.0.3 section-matter: 1.0.0 @@ -21289,7 +21116,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 vitest: 0.25.8(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -21309,7 +21136,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vitest: 0.25.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -21329,7 +21156,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 vitest: 0.25.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -22112,7 +21939,7 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.8.3))(typescript@5.8.3): + cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.8.3): dependencies: '@types/node': 20.5.1 cosmiconfig: 8.3.6(typescript@5.8.3) @@ -22182,21 +22009,6 @@ snapshots: p-filter: 3.0.0 p-map: 6.0.0 - create-jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 @@ -24560,6 +24372,10 @@ snapshots: index-to-position@0.1.2: {} + inferred-types@0.37.6: + dependencies: + brilliant-errors: 0.7.3(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types@0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0): dependencies: brilliant-errors: 0.7.3(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) @@ -25108,25 +24924,6 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest-cli@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) @@ -25203,37 +25000,6 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): - dependencies: - '@babel/core': 7.25.8 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.8) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 18.19.120 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@babel/core': 7.25.8 @@ -25291,7 +25057,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.120 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -25384,7 +25150,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -25690,18 +25456,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) @@ -28864,25 +28618,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.57 - acorn: 8.13.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optional: true - ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -29345,24 +29080,6 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - cac: 6.7.14 - debug: 4.3.7 - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vite-node@1.6.0(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: cac: 6.7.14 @@ -29405,24 +29122,6 @@ snapshots: dependencies: vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) - vite-plugin-dts@2.3.0(@types/node@18.19.120)(rollup@4.45.1)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@babel/parser': 7.25.8 - '@microsoft/api-extractor': 7.47.11(@types/node@18.19.120) - '@rollup/pluginutils': 5.1.2(rollup@4.45.1) - '@rushstack/node-core-library': 3.66.1(@types/node@18.19.120) - debug: 4.3.7 - fast-glob: 3.3.2 - fs-extra: 10.1.0 - kolorist: 1.8.0 - magic-string: 0.29.0 - ts-morph: 18.0.0 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: '@babel/parser': 7.25.8 @@ -29606,65 +29305,15 @@ snapshots: - terser - vite - vite-plugin-md@0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.20.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/builder-api': 1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) gray-matter: 4.0.3 markdown-it: 13.0.2 source-map-js: 1.2.1 transitivePeerDependencies: - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite - - vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding @@ -29702,63 +29351,14 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/builder-api': 1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -29774,15 +29374,15 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -29856,18 +29456,6 @@ snapshots: fsevents: 2.3.3 sass: 1.89.2 - vite@3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0): - dependencies: - esbuild: 0.15.18 - postcss: 8.4.47 - resolve: 1.22.8 - rollup: 2.79.2 - optionalDependencies: - '@types/node': 18.19.120 - fsevents: 2.3.3 - sass: 1.80.3 - terser: 5.36.0 - vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.15.18 @@ -29970,18 +29558,6 @@ snapshots: sass: 1.89.2 terser: 5.36.0 - vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.45.1 - optionalDependencies: - '@types/node': 18.19.120 - fsevents: 2.3.3 - sass: 1.80.3 - sass-embedded: 1.80.3 - terser: 5.36.0 - vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): dependencies: esbuild: 0.21.5 @@ -30006,18 +29582,6 @@ snapshots: sass-embedded: 1.80.3 terser: 5.36.0 - vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 - optionalDependencies: - '@types/node': 18.19.120 - fsevents: 2.3.3 - sass: 1.80.3 - sass-embedded: 1.80.3 - terser: 5.36.0 - vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.21.5 @@ -30270,32 +29834,6 @@ snapshots: - supports-color - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@18.19.120)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): - dependencies: - '@docsearch/css': 3.6.2 - '@docsearch/js': 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@vue/devtools-api': 6.6.4 - '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) - body-scroll-lock: 4.0.0-beta.0 - shiki: 0.11.1 - vite: 3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/node' - - '@types/react' - - '@vue/composition-api' - - less - - react - - react-dom - - sass - - search-insights - - stylus - - sugarss - - terser - - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): dependencies: '@docsearch/css': 3.6.2 @@ -30609,42 +30147,6 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@18.19.120)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.4 - chai: 4.5.0 - debug: 4.3.7 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.12 - pathe: 1.1.2 - picocolors: 1.1.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.9.0 - tinypool: 0.8.4 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vite-node: 1.6.0(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 18.19.120 - happy-dom: 8.9.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vitest@1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: '@vitest/expect': 1.6.0 -- Gitee From 98c02e8a058c5f575cf0bfd113961179c9be850a Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 20 Aug 2025 08:57:14 +0800 Subject: [PATCH 075/109] fix: optimize data grouping --- .../composition/data/use-group-data.ts | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/packages/ui-vue/components/data-view/composition/data/use-group-data.ts b/packages/ui-vue/components/data-view/composition/data/use-group-data.ts index a67f1407784..974b2db03f1 100644 --- a/packages/ui-vue/components/data-view/composition/data/use-group-data.ts +++ b/packages/ui-vue/components/data-view/composition/data/use-group-data.ts @@ -18,12 +18,20 @@ import { useGuid } from '@farris/ui-vue/components/common'; import { CollpasableItem, DataViewOptions, UseGroupData, UseIdentify } from '../types'; interface GroupingItem { + // 分组字段 field: string; + // 分组标题 title: string; + // 分组值 value: any; + // 该分组下的行数据集合 details: any[]; + // 分组层级 + layer: number; + // 子级分组 nestGroup?: Map; + // 分组合计 groupSummaries: Map; } @@ -37,7 +45,7 @@ export function useGroupData( const summaryOptions = ref(props.summary); // 表格分组配置 const groupOptions = ref(props.group); - // 表格分组字段集合 + // 表格分组字段集合,集合的大小代表了分组层级 const groupFields = ref(props.group?.groupFields || []); // 启用表格分组 const shouldGroupingData = computed(() => props.group?.enable); @@ -60,6 +68,15 @@ export function useGroupData( let flatGroupedData: any[] = []; let groupedPath = ''; + /** + * 处理并构造原始分组数据 + * @param groupObject 分组对象 + * @param rawData 行数据 + * @param groupLayer 分组层级 + * @param groupFields 分组字段 + * @param columnMaps 列映射集合 + */ + function processGroupTo( groupObject: Map, rawData: any[], groupLayer: number, groupFields: string[], columnMaps: Map @@ -81,6 +98,7 @@ export function useGroupData( }; groupResult.set(groupingValue, groupingItem); } + // 构造分组合计对象 if (groupSummaryFields.value) { groupSummaryFields.value.forEach((summaryField: string) => { if (groupingItem) { @@ -101,6 +119,7 @@ export function useGroupData( groupingItem.details.push(rawDataItem); return groupResult; }, groupObject); + // 递归构造子级分组 if (groupLayer < groupFields.length - 1) { groupObject.forEach((groupingItem: GroupingItem, groupingValue: any) => { groupingItem.nestGroup = new Map(); @@ -111,13 +130,26 @@ export function useGroupData( } } - function getGroupValue(groupingItem, total) { + /** + * 获取分组标题 + * @param groupingItem 分组原始数据 + * @param total 分组总数 + * @returns 分组标题 + */ + function getGroupValue(groupingItem: GroupingItem, total: number) { if (props.group && props.group.formatter) { return props.group.formatter(groupingItem.value, { ...groupingItem, total }); } return `${groupingItem.title}:${groupingItem.value} (${total})`; } + /** + * flat分组对象,用于渲染分组数据 + * @param targetGroupingObject 已构造的分组对象 + * @param parentVirtualDataItem 父级分组数据项 + * @returns 分组数据 + */ + function toFlattenGroupedObject(targetGroupingObject: Map, parentVirtualDataItem?: any) { const groupingData: any[] = []; targetGroupingObject.forEach((groupingItem: GroupingItem) => { @@ -131,6 +163,7 @@ export function useGroupData( __fv_data_grid_group_value__: groupingItem.value, groupParents: [] } as Record; + // 构造父级分组集合 if (parentVirtualDataItem) { virtualDataItem.groupParents = [...parentVirtualDataItem.groupParents, parentVirtualDataItem]; } -- Gitee From 65b55560b18fe3547ba32460460d930794cde2c0 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 20 Aug 2025 16:05:12 +0800 Subject: [PATCH 076/109] fix: complete tree grid property --- .../data-grid.property-config.ts | 412 +----------------- .../src/schema/data-grid.schema.json | 20 +- .../ui-vue/components/data-view/designer.ts | 14 + .../components/data-view/designer/index.ts | 3 - .../property-config/use-appearance.ts | 137 ++++++ .../property-config/use-column-option.ts | 49 +++ .../property-config/use-command-option.ts | 41 ++ .../designer/property-config/use-event.ts | 65 +++ .../designer/property-config/use-group.ts | 33 ++ .../property-config/use-pagination.ts | 41 ++ .../property-config/use-row-number.ts | 27 ++ .../property-config/use-row-option.ts | 30 ++ .../designer/property-config/use-selection.ts | 47 ++ .../designer/property-config/use-summary.ts | 18 + .../tree-grid.property-config.ts | 139 ++---- .../tree-grid/src/schema/schema-mapper.ts | 3 +- .../src/schema/tree-grid-column.schema.json | 19 +- .../src/schema/tree-grid.schema.json | 43 +- .../tree-grid/src/tree-grid.props.ts | 33 +- 19 files changed, 646 insertions(+), 528 deletions(-) create mode 100644 packages/ui-vue/components/data-view/designer.ts delete mode 100644 packages/ui-vue/components/data-view/designer/index.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-event.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-group.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-selection.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-summary.ts diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 9e28065757e..e03f98cf250 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -1,6 +1,17 @@ -import { PropertyChangeObject } from "../../../property-panel/src/composition/entity/property-entity"; -import { BaseControlProperty } from "../../../property-panel/src/composition/entity/base-property"; +import { + useRowOption, + useColumnOption, + useCommandOption, + useGroup, + useSummary, + useDataGridEvent, + useSelection, + useRowNumber, + usePagination, + useAppearance +} from "@farris/ui-vue/components/data-view/designer"; import { FormSchemaEntity } from "@farris/ui-vue/components/common"; +import { BaseControlProperty, PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; export class DataGridProperty extends BaseControlProperty { @@ -9,22 +20,20 @@ export class DataGridProperty extends BaseControlProperty { } getPropertyConfig(propertyData: any) { - // 基本信息 this.getBasicPropConfig(propertyData); - // 外观 this.getAppearanceProperties(propertyData); // 操作列 - this.propertyConfig.categories['command'] = this.getCommandColumnProperties(propertyData); + this.propertyConfig.categories['command'] = useCommandOption().getCommandColumnProperties(propertyData); // 填充列宽,仅支持平分列宽 - this.propertyConfig.categories['column'] = this.getColumnOptionProperties(propertyData); + this.propertyConfig.categories['column'] = useColumnOption().getColumnOptionProperties(propertyData); // 行配置 增加行和单元格自定义样式 - this.propertyConfig.categories['rowOption'] = this.getRowOptionProperties(propertyData); + this.propertyConfig.categories['rowOption'] = useRowOption().getRowOptionProperties(propertyData); // 合计行 - this.propertyConfig.categories['summary'] = this.getSummaryProperties(propertyData); + this.propertyConfig.categories['summary'] = useSummary().getSummaryProperties(propertyData); // 分组配置 - this.propertyConfig.categories['group'] = this.getGroupProperties(propertyData); + this.propertyConfig.categories['group'] = useGroup().getGroupProperties(propertyData); // 事件 this.getEventPropConfig(propertyData); @@ -70,160 +79,7 @@ export class DataGridProperty extends BaseControlProperty { }; } - private getRowOptionProperties(propertyData: any) { - return { - title: '行配置', - description: '', - properties: { - customRowStyle: { - title: '行样式', - type: 'string', - description: '自定义行样式', - editor: { - type: "code-editor", - language: "html", - } - }, - customCellStyle: { - title: '单元格样式', - type: 'string', - description: '自定义单元格样式', - editor: { - type: "code-editor", - language: "html", - } - } - } - }; - } - private getColumnOptionProperties(propertyData: any) { - return { - title: '填充列宽', - description: '', - properties: { - fitColumns: { - title: '启用', - type: 'boolean', - description: '启用填充列宽', - $converter: '/converter/column-option.converter', - refreshPanelAfterChanged: true - }, - // fitMode: { - // description: '', - // title: '填充模式', - // type: 'enum', - // visible: !!propertyData.column?.fitColumns, - // $converter: '/converter/column-option.converter', - // editor: { - // data: [ - // { id: 'average', name: '平分' }, - // { id: 'expand', name: '等比' } - // ] - // } - // }, - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'fitColumns': { - data.fit = changeObject.propertyValue; - // 列的拖拽列宽设置为false - if (data.columns) { - if (changeObject.propertyValue) { - data.columns.forEach((column: any) => { - column.resizable = false; - }); - } - } - break; - } - } - } - }; - } - private getCommandColumnProperties(propertyData: any) { - return { - title: '操作列', - description: '', - properties: { - enable: { - title: '启用', - type: 'boolean', - $converter: '/converter/column-command.converter', - description: '启用操作列', - refreshPanelAfterChanged: true - }, - // commands: { - // description: '', - // title: '命令', - // type: 'enum', - // editor: { - // data: [ - // { id: 'edit', name: '编辑' }, - // { id: 'remove', name: '删除' } - // ] - // } - // }, - // formatter: { - // title: '操作列模板', - // type: 'string', - // visible: false, - // description: '自定义操作列模板', - // refreshPanelAfterChanged: true, - // editor: { - // type: "code-editor", - // language: "html", - // } - // } - } - }; - } - - private getGroupProperties(propertyData: any) { - return { - title: '分组', - description: '', - properties: { - enable: { - title: '启用', - type: 'boolean', - description: '启用分组', - $converter: '/converter/group.converter', - refreshPanelAfterChanged: true - }, - showSummary: { - title: '显示分组合计行', - type: 'boolean', - visible: !!propertyData.group?.enable, - $converter: '/converter/group.converter', - description: '显示分组合计行' - } - - // groupFields: { - // title: '启用', - // type: 'boolean', - // description: '启用分组', - // refreshPanelAfterChanged: true - // } - } - }; - } - - private getSummaryProperties(propertyData: any) { - return { - title: '合计行', - description: '', - properties: { - enable: { - title: '启用', - type: 'boolean', - description: '启用合计行', - $converter: '/converter/summary.converter', - refreshPanelAfterChanged: true - } - } - }; - } /** * 将schema实体表组装成树 */ @@ -253,244 +109,24 @@ export class DataGridProperty extends BaseControlProperty { } private getAppearanceProperties(propertyData: any) { const self = this; - this.propertyConfig.categories['appearance'] = { - title: "外观", - properties: { - class: { - title: 'class样式', - type: 'string', - description: '组件的CSS样式' - }, - columns: { - title: "列设置", - description: "列设置", - type: "array", - editor: { - type: "grid-field-editor", - viewModelId: this.viewModelId, - gridData: propertyData, - getLatestGridData: (data) => { return propertyData; } - }, - // 这个属性,标记当属性变更得时候触发重新更新属性 - refreshPanelAfterChanged: true, - - }, - showStripe: { - title: "显示条纹", - type: "boolean", - description: "是否显示条纹" - }, - showBorder: { - title: "显示边框", - type: "boolean", - description: "是否显示边框" - }, - showSetting: { - title: "显示设置按钮", - type: "boolean", - description: "是否显示设置按钮" - }, - emptyTemplate: { - title: "空模板", - type: "string", - description: "空模板", - editor: { - type: "code-editor", - language: "html", - } - } - // useBlankWhenDataIsEmpty: { - // title: '空数据表格显示空白行', - // description: '表格没有数据时是否显示空白行', - // type: 'boolean', - // refreshPanelAfterChanged: true - // }, - // emptyDataHeight: { - // title: '空数据高度', - // type: 'number', - // description: '空数据行高度设置', - // min: 1, - // max: 1000 - // }, - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'useBlankWhenDataIsEmpty': - propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; - break; - case 'columns': - propertyData.columns = changeObject.propertyValue || []; - break; - } - } - }; - this.propertyConfig.categories['selection'] = { - title: '多选配置', - $converter: '/converter/grid-selection.converter', - parentPropertyID: 'editor', - properties: { - multiSelect: { - title: '启用多选', - type: 'boolean', - refreshPanelAfterChanged: true - }, - showCheckbox: { - visible: propertyData.selection == null ? false : propertyData.selection.multiSelect, - title: '显示复选框', - type: 'boolean', - refreshPanelAfterChanged: true - }, - showSelectAll: { - visible: propertyData.selection == null ? false : propertyData.selection.multiSelect && propertyData.selection.showCheckbox, - title: '显示全选', - type: 'boolean' - }, - keepSelectingOnPaging: { - visible: !!propertyData.selection?.multiSelect, - title: '启用跨页多选', - type: 'boolean' - }, - showSelection: { - title: '显示已选数据数量', - type: 'boolean' - } - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - // 如果启用多选,则默认显示复选框;不启用多选,则默认不显示复选框 - case 'multiSelect': - propertyData.selection.showCheckbox = changeObject.propertyValue; - break; - } - } - }; + this.propertyConfig.categories['appearance'] = useAppearance().getDataGrid(propertyData, this.viewModelId); + this.propertyConfig.categories['selection'] = useSelection().getSelection(propertyData); /** * 默认表格上没有此属性propertyData.rowNumber,根据schema上的属性默认值写默认true或false */ - this.propertyConfig.categories['rowNumber'] = { - title: '行号配置', - $converter: '/converter/row-number.converter', - parentPropertyID: 'rowNumber', - properties: { - enable: { - title: '显示行号', - type: 'boolean', - refreshPanelAfterChanged: true - }, - width: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '宽度', - type: 'number' - }, - heading: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '标题', - type: 'string' - } - } - }; - this.propertyConfig.categories['pagination'] = { - title: '分页', - $converter: '/converter/pagination.converter', - parentPropertyID: 'pagination', - properties: { - enable: { - title: '启用分页', - type: 'boolean', - refreshPanelAfterChanged: true, - editor: { - readonly: this.isSubGrid() - } - }, - // mode: { - // visible: propertyData.pagination?.enable || false, - // title: '分页交互模式', - // type: "enum", - // editor: { - // type: "combo-list", - // textField: "value", - // valueField: "key", - // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] - // } - // }, - showIndex: { - visible: propertyData.pagination?.enable || false, - title: '显示页码', - type: 'boolean' - }, - showLimits: { - visible: propertyData.pagination?.enable || false, - title: '显示分页条数', - type: 'boolean' - } - } - }; + this.propertyConfig.categories['rowNumber'] = useRowNumber().getRowNumber(propertyData); + this.propertyConfig.categories['pagination'] = usePagination().getPagination(propertyData, this.isSubGrid()); } private getEventPropConfig(propertyData: any) { const events = [ - { - "label": "onClickRow", - "name": "行点击事件" - }, - { - "label": "onSelectionChange", - "name": "行切换事件" - }, - { - "label": "onDoubleClickRow", - "name": "行双击事件" - }, + ...useDataGridEvent().initEvent(propertyData), { "label": "onEndEditCell", "name": "单元格结束编辑事件" - }, + } ]; - if (propertyData.pagination?.enable !== false) { - // 如果没有设置,默认是按照true处理的 - events.push({ - "label": "onPageIndexChanged", - "name": "切换页码事件" - }, - { - "label": "onPageSizeChanged", - "name": "分页条数变化事件" - }); - } - if (propertyData.command?.enable) { - // 如果没有设置,默认是按照true处理的 - events.push({ - "label": "onClickEditCommand", - "name": "操作列编辑事件" - }, - { - "label": "onClickDeleteCommand", - "name": "操作列删除事件" - }); - } - if (propertyData.selection?.multiSelect) { - // 启用多选,暴露多选事件 - events.push({ - "label": "onSelectItem", - "name": "选中行事件" - }, - { - "label": "onUnSelectItem", - "name": "取消选中行事件" - },); - } - if (propertyData.selection?.multiSelect && propertyData.selection?.showSelectAll) { - // 启用全选事件,暴露全选和取消全选事件 - events.push({ - "label": "onSelectAll", - "name": "全选事件" - }, - { - "label": "onUnSelectAll", - "name": "取消全选事件" - }); - } const self = this; const initialData = self.eventsEditorUtils['formProperties'](propertyData, self.viewModelId, events); const properties = self.createBaseEventProperty(initialData); diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json index 43a56e38a81..2e6c1da5443 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json @@ -484,7 +484,13 @@ "properties": { "customRowStyle": { "description": "", - "type": "object" + "type": "string", + "default": "" + }, + "customCellStyle": { + "description": "", + "type": "string", + "default": "" }, "disable": { "description": "", @@ -808,18 +814,6 @@ "description": "", "type": "string", "default": "" - }, - "rowOption": { - "customRowStyle": { - "description": "", - "type": "string", - "default": "" - }, - "customCellStyle": { - "description": "", - "type": "string", - "default": "" - } } }, "required": [ diff --git a/packages/ui-vue/components/data-view/designer.ts b/packages/ui-vue/components/data-view/designer.ts new file mode 100644 index 00000000000..635c452e56f --- /dev/null +++ b/packages/ui-vue/components/data-view/designer.ts @@ -0,0 +1,14 @@ +export * from './designer/use-designer-fit-column'; +export * from './designer/use-column'; +export * from './designer/use-visual-data'; +export * from './designer/property-config/use-row-option'; +export * from './designer/property-config/use-column-option'; +export * from './designer/property-config/use-command-option'; +export * from './designer/property-config/use-summary'; +export * from './designer/property-config/use-group'; +export * from './designer/property-config/use-event'; +export * from './designer/property-config/use-selection'; +export * from './designer/property-config/use-row-number'; +export * from './designer/property-config/use-pagination'; +export * from './designer/property-config/use-appearance'; + diff --git a/packages/ui-vue/components/data-view/designer/index.ts b/packages/ui-vue/components/data-view/designer/index.ts deleted file mode 100644 index b7ffb38ef79..00000000000 --- a/packages/ui-vue/components/data-view/designer/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './use-designer-fit-column'; -export * from './use-column'; -export * from './use-visual-data'; diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts b/packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts new file mode 100644 index 00000000000..df26c28b27b --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts @@ -0,0 +1,137 @@ +import { PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; + +export function useAppearance() { + + function getCommon() { + return { + showStripe: { + title: "显示条纹", + type: "boolean", + description: "是否显示条纹" + }, + showBorder: { + title: "显示边框", + type: "boolean", + description: "是否显示边框" + }, + showSetting: { + title: "显示设置按钮", + type: "boolean", + description: "是否显示设置按钮" + }, + emptyTemplate: { + title: "空模板", + type: "string", + description: "空模板", + editor: { + type: "code-editor", + language: "html", + } + } + }; + } + function getDataGrid(propertyData: any, viewModelId: string) { + return { + title: "外观", + properties: { + class: { + title: 'class样式', + type: 'string', + description: '组件的CSS样式' + }, + columns: { + title: "列设置", + description: "列设置", + type: "array", + editor: { + type: "grid-field-editor", + viewModelId, + gridData: propertyData, + getLatestGridData: (data) => { return propertyData; } + }, + // 这个属性,标记当属性变更得时候触发重新更新属性 + refreshPanelAfterChanged: true, + }, + ...getCommon() + // useBlankWhenDataIsEmpty: { + // title: '空数据表格显示空白行', + // description: '表格没有数据时是否显示空白行', + // type: 'boolean', + // refreshPanelAfterChanged: true + // }, + // emptyDataHeight: { + // title: '空数据高度', + // type: 'number', + // description: '空数据行高度设置', + // min: 1, + // max: 1000 + // }, + }, + setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + switch (changeObject && changeObject.propertyID) { + case 'useBlankWhenDataIsEmpty': + propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; + break; + case 'columns': + propertyData.columns = changeObject.propertyValue || []; + break; + } + } + }; + } + + function getTreeGrid(propertyData: any, viewModelId: string) { + return { + title: '外观', + properties: { + class: { + title: 'class样式', + type: 'string', + description: '组件的CSS样式' + }, + columns: { + title: '列设置', + description: '列设置', + $converter: '/converter/items-count.converter', + editor: { + type: "grid-field-editor", + viewModelId, + gridData: propertyData, + gridType: "tree-grid-column" + }, + // 这个属性,标记当属性变更得时候触发重新更新属性 + refreshPanelAfterChanged: true, + }, + ...getCommon() + // showTreeNodeIcons: { + // title: '显示图标', + // type: "boolean", + // description: '是否显示图标' + // }, + // showSetting: { + // title: '显示设置按钮', + // type: "boolean", + // description: '是否显示设置按钮', + // visible:false + // } + }, + setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + switch (changeObject && changeObject.propertyID) { + case 'useBlankWhenDataIsEmpty': + propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; + break; + case 'fields': + propertyData.fields = changeObject.propertyValue || []; + break; + + } + } + }; + } + + function getAppearance() { + + } + + return { getDataGrid, getTreeGrid }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts b/packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts new file mode 100644 index 00000000000..abe504e516f --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts @@ -0,0 +1,49 @@ +import { PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; + +export function useColumnOption() { + function getColumnOptionProperties(propertyData: any) { + return { + title: '填充列宽', + description: '', + properties: { + fitColumns: { + title: '启用', + type: 'boolean', + description: '启用填充列宽', + $converter: '/converter/column-option.converter', + refreshPanelAfterChanged: true + }, + // fitMode: { + // description: '', + // title: '填充模式', + // type: 'enum', + // visible: !!propertyData.column?.fitColumns, + // $converter: '/converter/column-option.converter', + // editor: { + // data: [ + // { id: 'average', name: '平分' }, + // { id: 'expand', name: '等比' } + // ] + // } + // }, + }, + setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + switch (changeObject && changeObject.propertyID) { + case 'fitColumns': { + data.fit = changeObject.propertyValue; + // 列的拖拽列宽设置为false + if (data.columns) { + if (changeObject.propertyValue) { + data.columns.forEach((column: any) => { + column.resizable = false; + }); + } + } + break; + } + } + } + }; + } + return { getColumnOptionProperties }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts b/packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts new file mode 100644 index 00000000000..92e246d0ae5 --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts @@ -0,0 +1,41 @@ +export function useCommandOption() { + function getCommandColumnProperties(propertyData: any) { + return { + title: '操作列', + description: '', + properties: { + enable: { + title: '启用', + type: 'boolean', + $converter: '/converter/column-command.converter', + description: '启用操作列', + refreshPanelAfterChanged: true + }, + // commands: { + // description: '', + // title: '命令', + // type: 'enum', + // editor: { + // data: [ + // { id: 'edit', name: '编辑' }, + // { id: 'remove', name: '删除' } + // ] + // } + // }, + // formatter: { + // title: '操作列模板', + // type: 'string', + // visible: false, + // description: '自定义操作列模板', + // refreshPanelAfterChanged: true, + // editor: { + // type: "code-editor", + // language: "html", + // } + // } + } + }; + } + + return { getCommandColumnProperties }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts new file mode 100644 index 00000000000..e78636fd1ab --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts @@ -0,0 +1,65 @@ +export function useDataGridEvent() { + function initEvent(propertyData: any) { + const events = [ + { + "label": "onClickRow", + "name": "行点击事件" + }, + { + "label": "onSelectionChange", + "name": "行切换事件" + }, + { + "label": "onDoubleClickRow", + "name": "行双击事件" + } + ]; + if (propertyData.pagination?.enable !== false) { + // 如果没有设置,默认是按照true处理的 + events.push({ + "label": "onPageIndexChanged", + "name": "切换页码事件" + }, + { + "label": "onPageSizeChanged", + "name": "分页条数变化事件" + }); + } + if (propertyData.command?.enable) { + // 如果没有设置,默认是按照true处理的 + events.push({ + "label": "onClickEditCommand", + "name": "操作列编辑事件" + }, + { + "label": "onClickDeleteCommand", + "name": "操作列删除事件" + }); + } + if (propertyData.selection?.multiSelect) { + // 启用多选,暴露多选事件 + events.push({ + "label": "onSelectItem", + "name": "选中行事件" + }, + { + "label": "onUnSelectItem", + "name": "取消选中行事件" + },); + } + if (propertyData.selection?.multiSelect && propertyData.selection?.showSelectAll) { + // 启用全选事件,暴露全选和取消全选事件 + events.push({ + "label": "onSelectAll", + "name": "全选事件" + }, + { + "label": "onUnSelectAll", + "name": "取消全选事件" + }); + } + return events; + } + + return { initEvent }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-group.ts b/packages/ui-vue/components/data-view/designer/property-config/use-group.ts new file mode 100644 index 00000000000..89c50ce08f4 --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-group.ts @@ -0,0 +1,33 @@ +export function useGroup() { + function getGroupProperties(propertyData: any) { + return { + title: '分组', + description: '', + properties: { + enable: { + title: '启用', + type: 'boolean', + description: '启用分组', + $converter: '/converter/group.converter', + refreshPanelAfterChanged: true + }, + showSummary: { + title: '显示分组合计行', + type: 'boolean', + visible: !!propertyData.group?.enable, + $converter: '/converter/group.converter', + description: '显示分组合计行' + } + + // groupFields: { + // title: '启用', + // type: 'boolean', + // description: '启用分组', + // refreshPanelAfterChanged: true + // } + } + }; + } + + return { getGroupProperties }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts b/packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts new file mode 100644 index 00000000000..253f5e08881 --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts @@ -0,0 +1,41 @@ +export function usePagination() { + function getPagination(propertyData: any, readonly: boolean) { + return { + title: '分页', + $converter: '/converter/pagination.converter', + parentPropertyID: 'pagination', + properties: { + enable: { + title: '启用分页', + type: 'boolean', + refreshPanelAfterChanged: true, + editor: { + readonly + } + }, + // mode: { + // visible: propertyData.pagination?.enable || false, + // title: '分页交互模式', + // type: "enum", + // editor: { + // type: "combo-list", + // textField: "value", + // valueField: "key", + // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] + // } + // }, + showIndex: { + visible: propertyData.pagination?.enable || false, + title: '显示页码', + type: 'boolean' + }, + showLimits: { + visible: propertyData.pagination?.enable || false, + title: '显示分页条数', + type: 'boolean' + } + } + }; + } + return { getPagination }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts b/packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts new file mode 100644 index 00000000000..7bb15d46c62 --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts @@ -0,0 +1,27 @@ +export function useRowNumber() { + function getRowNumber(propertyData: any) { + return { + title: '行号配置', + $converter: '/converter/row-number.converter', + parentPropertyID: 'rowNumber', + properties: { + enable: { + title: '显示行号', + type: 'boolean', + refreshPanelAfterChanged: true + }, + width: { + visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, + title: '宽度', + type: 'number' + }, + heading: { + visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, + title: '标题', + type: 'string' + } + } + }; + } + return { getRowNumber }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts b/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts new file mode 100644 index 00000000000..e0d8acc4907 --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts @@ -0,0 +1,30 @@ +export function useRowOption() { + function getRowOptionProperties(propertyData: any) { + return { + title: '行配置', + description: '', + properties: { + customRowStyle: { + title: '行样式', + type: 'string', + description: '自定义行样式', + editor: { + type: "code-editor", + language: "html", + } + }, + customCellStyle: { + title: '单元格样式', + type: 'string', + description: '自定义单元格样式', + editor: { + type: "code-editor", + language: "html", + } + } + } + }; + } + + return { getRowOptionProperties }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-selection.ts b/packages/ui-vue/components/data-view/designer/property-config/use-selection.ts new file mode 100644 index 00000000000..a0882c8d62f --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-selection.ts @@ -0,0 +1,47 @@ +import { PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; + +export function useSelection() { + function getSelection(propertyData: any) { + return { + title: '多选配置', + $converter: '/converter/grid-selection.converter', + parentPropertyID: 'editor', + properties: { + multiSelect: { + title: '启用多选', + type: 'boolean', + refreshPanelAfterChanged: true + }, + showCheckbox: { + visible: propertyData.selection == null ? false : propertyData.selection.multiSelect, + title: '显示复选框', + type: 'boolean', + refreshPanelAfterChanged: true + }, + showSelectAll: { + visible: propertyData.selection == null ? false : propertyData.selection.multiSelect && propertyData.selection.showCheckbox, + title: '显示全选', + type: 'boolean' + }, + keepSelectingOnPaging: { + visible: !!propertyData.selection?.multiSelect, + title: '启用跨页多选', + type: 'boolean' + }, + showSelection: { + title: '显示已选数据数量', + type: 'boolean' + } + }, + setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + switch (changeObject && changeObject.propertyID) { + // 如果启用多选,则默认显示复选框;不启用多选,则默认不显示复选框 + case 'multiSelect': + propertyData.selection.showCheckbox = changeObject.propertyValue; + break; + } + } + }; + } + return { getSelection }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-summary.ts b/packages/ui-vue/components/data-view/designer/property-config/use-summary.ts new file mode 100644 index 00000000000..1dc7267ba9e --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-summary.ts @@ -0,0 +1,18 @@ +export function useSummary() { + function getSummaryProperties(propertyData: any) { + return { + title: '合计行', + description: '', + properties: { + enable: { + title: '启用', + type: 'boolean', + description: '启用合计行', + $converter: '/converter/summary.converter', + refreshPanelAfterChanged: true + } + } + }; + } + return { getSummaryProperties }; +} diff --git a/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts b/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts index 6f18c159a98..d6cde5d7ea3 100644 --- a/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts +++ b/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts @@ -1,7 +1,17 @@ -import { PropertyChangeObject } from "../../../property-panel/src/composition/entity/property-entity"; -import { BaseControlProperty } from "../../../property-panel/src/composition/entity/base-property"; +import { BaseControlProperty, PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; import { FormSchemaEntity } from "@farris/ui-vue/components/common"; - +import { + useRowOption, + useColumnOption, + useCommandOption, + useGroup, + useSummary, + useDataGridEvent, + useSelection, + useRowNumber, + usePagination, + useAppearance +} from "@farris/ui-vue/components/data-view/designer"; export class TreeGridProperty extends BaseControlProperty { constructor(componentId: string, designerHostService: any) { @@ -15,6 +25,16 @@ export class TreeGridProperty extends BaseControlProperty { // 外观 this.getAppearanceProperties(propertyData); + // 操作列 + this.propertyConfig.categories['command'] = useCommandOption().getCommandColumnProperties(propertyData); + // 填充列宽,仅支持平分列宽 + this.propertyConfig.categories['column'] = useColumnOption().getColumnOptionProperties(propertyData); + // 行配置 增加行和单元格自定义样式 + this.propertyConfig.categories['rowOption'] = useRowOption().getRowOptionProperties(propertyData); + // 合计行 + this.propertyConfig.categories['summary'] = useSummary().getSummaryProperties(propertyData); + // 分组配置 + this.propertyConfig.categories['group'] = useGroup().getGroupProperties(propertyData); // 事件 this.getEventPropConfig(propertyData); @@ -62,116 +82,21 @@ export class TreeGridProperty extends BaseControlProperty { } private getAppearanceProperties(propertyData: any) { const self = this; - this.propertyConfig.categories['appearance'] = { - title: '外观', - properties: { - columns: { - title: '列设置', - description: '列设置', - $converter: '/converter/items-count.converter', - editor: { - type: "grid-field-editor", - viewModelId: this.viewModelId, - gridData: propertyData, - gridType: "tree-grid-column" - }, - // 这个属性,标记当属性变更得时候触发重新更新属性 - refreshPanelAfterChanged: true, - }, - fit: { - title: '适配父组件尺寸', - type: "boolean", - description: '是否适配父组件尺寸', - visible: false - }, - showStripe: { - title: '显示条纹', - type: "boolean", - description: '是否显示条纹' - }, - showBorder: { - title: '显示边框', - type: "boolean", - description: '是否显示边框' - }, - // showTreeNodeIcons: { - // title: '显示图标', - // type: "boolean", - // description: '是否显示图标' - // }, - // showSetting: { - // title: '显示设置按钮', - // type: "boolean", - // description: '是否显示设置按钮', - // visible:false - // } - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'useBlankWhenDataIsEmpty': - propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; - break; - case 'fields': - propertyData.fields = changeObject.propertyValue || []; - break; - - } - } - }; - - this.propertyConfig.categories['pagination'] = { - title: '分页', - $converter: '/converter/pagination.converter', - parentPropertyID: 'pagination', - properties: { - enable: { - title: '启用分页', - type: 'boolean', - refreshPanelAfterChanged: true, - editor: { - readonly: true - } - }, - // mode: { - // visible: propertyData.pagination?.enable || false, - // title: '分页交互模式', - // type: "enum", - // editor: { - // type: "combo-list", - // textField: "name", - // valueField: "value", - // data: [{ "value": "client", "name": "客户端" }, { "value": "server", "name": "服务器端" }] - // } - // }, - showIndex: { - visible: propertyData.pagination?.enable || false, - title: '显示页码', - type: 'boolean' - }, - showLimits: { - visible: propertyData.pagination?.enable || false, - title: '显示每页记录数', - type: 'boolean' - } - } - }; + this.propertyConfig.categories['appearance'] = useAppearance().getDataGrid(propertyData, this.viewModelId); + this.propertyConfig.categories['selection'] = useSelection().getSelection(propertyData); + /** + * 默认表格上没有此属性propertyData.rowNumber,根据schema上的属性默认值写默认true或false + */ + this.propertyConfig.categories['rowNumber'] = useRowNumber().getRowNumber(propertyData); + this.propertyConfig.categories['pagination'] = usePagination().getPagination(propertyData, true); } private getEventPropConfig(propertyData: any) { - const events = [ - { - "label": "onSelectionChange", - "name": "行切换事件" - }, - { - "label": "onClickRow", - "name": "行点击事件" - } - ]; + const events = useDataGridEvent().initEvent(propertyData); const self = this; const initialData = self.eventsEditorUtils['formProperties'](propertyData, self.viewModelId, events); const properties = self.createBaseEventProperty(initialData); - + this.propertyConfig.categories['eventsEditor'] = { title: '事件', hideTitle: true, diff --git a/packages/ui-vue/components/tree-grid/src/schema/schema-mapper.ts b/packages/ui-vue/components/tree-grid/src/schema/schema-mapper.ts index ac59744a976..864a8e9238a 100644 --- a/packages/ui-vue/components/tree-grid/src/schema/schema-mapper.ts +++ b/packages/ui-vue/components/tree-grid/src/schema/schema-mapper.ts @@ -2,5 +2,6 @@ import { MapperFunction, resolveAppearance } from '../../../dynamic-resolver'; export const schemaMapper = new Map([ ['appearance', resolveAppearance], - ['column', 'columnOption'] + ['column', 'columnOption'], + ['command', 'commandOption'] ]); diff --git a/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json b/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json index 2b890aae284..4f68d098547 100644 --- a/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json +++ b/packages/ui-vue/components/tree-grid/src/schema/tree-grid-column.schema.json @@ -14,6 +14,11 @@ "type": "string", "default": "tree-grid-column" }, + "binding": { + "description": "", + "type": "object", + "default": {} + }, "allowGrouping": { "description": "", "type": "boolean", @@ -133,7 +138,19 @@ }, "width": { "description": "", - "type": "number" + "type": "number", + "default": 120 + }, + "formatter": { + "description":"列格式化", + "type": "object", + "default": { + "type":"none", + "customFormat": "", + "trueText": "是", + "falseText": "否", + "dateFormat": "yyyy-MM-dd" + } } }, "required": [ diff --git a/packages/ui-vue/components/tree-grid/src/schema/tree-grid.schema.json b/packages/ui-vue/components/tree-grid/src/schema/tree-grid.schema.json index edc170ec275..40d355218e3 100644 --- a/packages/ui-vue/components/tree-grid/src/schema/tree-grid.schema.json +++ b/packages/ui-vue/components/tree-grid/src/schema/tree-grid.schema.json @@ -462,12 +462,17 @@ } } }, - "row": { + "rowOption": { "type": "object", "properties": { "customRowStyle": { - "description": "", - "type": "object" + "description": "自定义行样式", + "type": "string" + }, + "customCellStyle": { + "description": "自定义单元格样式", + "type": "string", + "default": "" }, "disable": { "description": "", @@ -519,6 +524,26 @@ } } }, + "onClickRow": { + "description": "行点击事件", + "type": "string", + "default": "" + }, + "onSelectionChange": { + "description": "行切换事件", + "type": "string", + "default": "" + }, + "onPageIndexChanged": { + "description": "切换页码事件", + "type": "string", + "default": "" + }, + "onPageSizeChanged": { + "description": "分页条数变化事件", + "type": "string", + "default": "" + }, "selection": { "type": "object", "properties": { @@ -771,11 +796,6 @@ "type": "boolean", "default": false } - }, - "onSelectionChange": { - "description": "行切换事件", - "type": "string", - "default": "" } }, "required": [ @@ -785,6 +805,11 @@ ], "events": { "onSelectionChange": "行切换事件", - "onClickRow": "行点击事件" + "onClickRow": "行点击事件", + "onPageIndexChanged": "切换页码事件", + "onPageSizeChanged": "分页条数变化事件", + "onDoubleClickRow": "行双击事件", + "onClickEditCommand": "操作列编辑事件", + "onClickDeleteCommand": "操作列删除事件" } } \ No newline at end of file diff --git a/packages/ui-vue/components/tree-grid/src/tree-grid.props.ts b/packages/ui-vue/components/tree-grid/src/tree-grid.props.ts index 8954c7d1843..787eb5443b7 100644 --- a/packages/ui-vue/components/tree-grid/src/tree-grid.props.ts +++ b/packages/ui-vue/components/tree-grid/src/tree-grid.props.ts @@ -14,14 +14,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ExtractPropTypes, PropType } from 'vue'; +import { ExtractPropTypes, PropType, VNode } from 'vue'; import { LocaleService } from '@farris/ui-vue/components/locale'; -import { EditorConfig } from '../../dynamic-form'; -import { createDataViewUpdateColumnsResolver, createPropsResolver, createTreeGridBindingResolver, createTreeGridSelectionItemResolver } from '../../dynamic-resolver'; +import { EditorConfig } from '@farris/ui-vue/components/dynamic-form'; +import { + createDataViewUpdateColumnsResolver, + createPropsResolver, + createTreeGridBindingResolver, + createTreeGridSelectionItemResolver +} from '@farris/ui-vue/components/dynamic-resolver'; +import { + CommandOptions, + HeaderCell, + HierarchyOptions, + RowNumberOptions, + SelectionOptions, + VisualData, + VisualDataCell +} from '@farris/ui-vue/components/data-view'; +import treeGridSchema from './schema/tree-grid.schema.json'; import { schemaMapper } from './schema/schema-mapper'; import { schemaResolver } from "./schema/schema-resolver"; -import { CommandOptions, HierarchyOptions, RowNumberOptions, SelectionOptions, VisualData } from '../../data-view'; -import treeGridSchema from './schema/tree-grid.schema.json'; export type DataGridAlignment = 'left' | 'center' | 'right'; @@ -96,6 +109,12 @@ export interface DataGridColumn { filter?: string; showSetting?: boolean; showEllipsis?: boolean; + /** 列模板 */ + columnTemplate?: (cell: VisualDataCell, visualDataRow: VisualData) => VNode; + /** inner boolean formatter */ + formatter?: + ((cell: VisualDataCell, visualDataRow: VisualData) => VNode | string) | object; + headerFormatter?: (context: { headerCell: HeaderCell, headerCells: HeaderCell[], columnIndex: number }) => VNode | string; } export interface ColumnGroupItem { @@ -396,7 +415,9 @@ export const treeGridProps = { /** 宽度 */ width: { type: Number, default: -1 }, /** 启用虚拟渲染 */ - virtualized: { type: Boolean, default: false } + virtualized: { type: Boolean, default: false }, + /** 空数据模板 */ + emptyTemplate: { type: Object as PropType VNode | string)> } } as Record; export type TreeGridProps = ExtractPropTypes; -- Gitee From b3186b18a8b6ee216f35ee8877de5299bcc149b5 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 21 Aug 2025 09:00:35 +0800 Subject: [PATCH 077/109] fix: data grid supports filter in design --- .../data-grid-column.property-config.ts | 5 ---- .../data-grid.property-config.ts | 7 ++++- .../src/schema/data-grid.schema.json | 13 ++------- .../ui-vue/components/data-view/designer.ts | 2 ++ .../designer/property-config/use-event.ts | 10 ++++++- .../designer/property-config/use-filter.ts | 27 +++++++++++++++++++ .../designer/property-config/use-sort.ts | 23 ++++++++++++++++ .../src/converter/grid-filter.converter.ts | 16 +++++++++++ .../src/converter/grid-sort.converter.ts | 16 +++++++++++ .../src/property-config-resolver.ts | 6 ++++- .../use-property-config-resolver.ts | 6 ++++- .../tree-grid.property-config.ts | 3 +-- 12 files changed, 112 insertions(+), 22 deletions(-) create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-filter.ts create mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-sort.ts create mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts create mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts index a92929d9c13..3cfd780fd73 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts @@ -233,11 +233,6 @@ export class DataGriColumnProperty extends BaseControlProperty { title: '启用拖拽', type: 'boolean' }, - // filterable: { - // description: '启用过滤', - // title: '启用过滤', - // type: 'boolean' - // }, width: { description: '列宽', title: '列宽', diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index e03f98cf250..8149e1a6d28 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -8,7 +8,9 @@ import { useSelection, useRowNumber, usePagination, - useAppearance + useAppearance, + useSort, + useFilter } from "@farris/ui-vue/components/data-view/designer"; import { FormSchemaEntity } from "@farris/ui-vue/components/common"; import { BaseControlProperty, PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; @@ -34,6 +36,9 @@ export class DataGridProperty extends BaseControlProperty { this.propertyConfig.categories['summary'] = useSummary().getSummaryProperties(propertyData); // 分组配置 this.propertyConfig.categories['group'] = useGroup().getGroupProperties(propertyData); + // 排序和过滤 + // this.propertyConfig.categories['sort'] = useSort().getSort(propertyData); + this.propertyConfig.categories['filter'] = useFilter().getFilter(propertyData); // 事件 this.getEventPropConfig(propertyData); diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json index 7c98ebfa2f9..d86e4b647bd 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json @@ -492,11 +492,6 @@ "type": "string", "default": "" }, - "customCellStyle": { - "description": "", - "type": "string", - "default": "" - }, "disable": { "description": "", "type": "obejct" @@ -704,12 +699,8 @@ }, "mode": { "description": "", - "type": "string", - "default": "client", - "enum": [ - "client", - "server" - ] + "type": "enum", + "default": "client" }, "multiSort": { "description": "", diff --git a/packages/ui-vue/components/data-view/designer.ts b/packages/ui-vue/components/data-view/designer.ts index 635c452e56f..f2f702aa54d 100644 --- a/packages/ui-vue/components/data-view/designer.ts +++ b/packages/ui-vue/components/data-view/designer.ts @@ -11,4 +11,6 @@ export * from './designer/property-config/use-selection'; export * from './designer/property-config/use-row-number'; export * from './designer/property-config/use-pagination'; export * from './designer/property-config/use-appearance'; +export * from './designer/property-config/use-sort'; +export * from './designer/property-config/use-filter'; diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts index e78636fd1ab..4a0f449ab34 100644 --- a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts +++ b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts @@ -12,7 +12,15 @@ export function useDataGridEvent() { { "label": "onDoubleClickRow", "name": "行双击事件" - } + }, + { + label: 'onFilterChanged', + name: '远端过滤事件' + }, + // { + // label: 'onColumnSorted', + // name: '远端排序事件' + // } ]; if (propertyData.pagination?.enable !== false) { // 如果没有设置,默认是按照true处理的 diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-filter.ts b/packages/ui-vue/components/data-view/designer/property-config/use-filter.ts new file mode 100644 index 00000000000..9729891fdc3 --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-filter.ts @@ -0,0 +1,27 @@ +export function useFilter() { + function getFilter(propertyData: any) { + return { + title: '过滤', + description: '', + properties: { + mode: { + title: '类型', + type: 'enum', + description: '过滤类型', + $converter: '/converter/grid-filter.converter', + editor: { + // type: "combo-list", + // textField: "value", + // valueField: "key", + // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] + data: [ + { id: 'client', name: '客户端' }, + { id: 'server', name: '服务端' } + ] + } + } + } + }; + } + return { getFilter }; +} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts b/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts new file mode 100644 index 00000000000..a1971d6d3b2 --- /dev/null +++ b/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts @@ -0,0 +1,23 @@ +export function useSort() { + function getSort(propertyData: any) { + return { + title: '排序', + description: '', + properties: { + mode: { + title: '类型', + type: 'enum', + description: '排序类型', + $converter: '/converter/grid-sort.converter', + editor: { + data: [ + { id: 'client', name: '客户端' }, + { id: 'server', name: '服务端' } + ] + } + } + } + }; + } + return { getSort }; +} diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts new file mode 100644 index 00000000000..316721e0652 --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts @@ -0,0 +1,16 @@ +import { ComponentSchema } from "@farris/ui-vue/components/designer-canvas"; +import { PropertyConverter, SchemaService } from "../types"; +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + if (!schema.filter) { + schema.filter = { + }; + } + schema.filter[propertyKey] = propertyValue; + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if(propertyKey === 'mode') { + return schema.filter?.mode || 'client'; + } + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts new file mode 100644 index 00000000000..e1b66b2e548 --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts @@ -0,0 +1,16 @@ +import { ComponentSchema } from "@farris/ui-vue/components/designer-canvas"; +import { PropertyConverter, SchemaService } from "../types"; +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + if (!schema.sort) { + schema.sort = { + }; + } + schema.sort[propertyKey] = propertyValue; + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if(propertyKey === 'mode') { + return schema.sort?.mode || 'client'; + } + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts index 382f82154ef..5f50055b18c 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts @@ -22,6 +22,8 @@ import { ElementPropertyConfig, PropertyEntity } from "../../property-panel/src/ import itemsCountConverter from "./converter/items-count.converter"; import formGroupLabelConverter from "./converter/form-group-label.converter"; import changeFormatterEnumConverter from './converter/change-formatter-enum.converter'; +import gridSortConverter from './converter/grid-sort.converter'; +import gridFilterConverter from './converter/grid-filter.converter'; const propertyConfigSchemaMap = {} as Record; const propertyConverterMap = new Map([ @@ -41,7 +43,9 @@ const propertyConverterMap = new Map([ ['/converter/pagination.converter', paginationConverter], ['/converter/row-number.converter', rowNumberConverter], ['/converter/grid-selection.converter', gridSelectionConverter], - ['/converter/change-formatter-enum.converter', changeFormatterEnumConverter] + ['/converter/change-formatter-enum.converter', changeFormatterEnumConverter], + ['/converter/grid-sort.converter', gridSortConverter], + ['/converter/grid-filter.converter', gridFilterConverter] ]); const propertyEffectMap = {} as Record; const propertyEditorMap = new Map([ diff --git a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts index 4aa1bda425a..845c44aa47a 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts @@ -22,6 +22,8 @@ import itemsCountConverter from "../../converter/items-count.converter"; import formGroupLabelConverter from "../../converter/form-group-label.converter"; import sizeConverter from "../../converter/size.converter"; import changeFormatterEnumConverter from '../../converter/change-formatter-enum.converter'; +import gridSortConverter from '../../converter/grid-sort.converter'; +import gridFilterConverter from '../../converter/grid-filter.converter'; export function usePropertyConfigResolver(propertyConfigSchemaMap: Record, propertyEffectMap: Record, resolveSchemaWithDefaultValue: (schemaValue: Record) => Record) { @@ -43,7 +45,9 @@ export function usePropertyConfigResolver(propertyConfigSchemaMap: Record([ ['string', { type: 'input-group', enableClear: false }], diff --git a/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts b/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts index d6cde5d7ea3..362f53ced58 100644 --- a/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts +++ b/packages/ui-vue/components/tree-grid/src/property-config/tree-grid.property-config.ts @@ -34,8 +34,7 @@ export class TreeGridProperty extends BaseControlProperty { // 合计行 this.propertyConfig.categories['summary'] = useSummary().getSummaryProperties(propertyData); // 分组配置 - this.propertyConfig.categories['group'] = useGroup().getGroupProperties(propertyData); - + // this.propertyConfig.categories['group'] = useGroup().getGroupProperties(propertyData); // 事件 this.getEventPropConfig(propertyData); -- Gitee From cb42d1bcb9d7e5aed6d0d9fb43c697dc70f51ced Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 21 Aug 2025 20:05:49 +0800 Subject: [PATCH 078/109] fix: vertify show setting --- .../data-grid/src/data-grid.component.tsx | 29 ++++++--- .../column-header/column-header.component.tsx | 11 ++-- .../column-setting-icon.component.tsx | 11 +--- .../column-setting.component.tsx | 6 +- .../composition/column/use-fit-column.ts | 62 +++++++++++++++---- .../composition/column/use-setting-column.ts | 26 ++++++++ packages/ui-vue/components/data-view/index.ts | 5 +- .../ui-vue/demos/data-grid/show_setting.vue | 2 +- 8 files changed, 113 insertions(+), 39 deletions(-) create mode 100644 packages/ui-vue/components/data-view/composition/column/use-setting-column.ts diff --git a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx index f8930d92cb0..e0772c025c5 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx +++ b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { computed, defineComponent, onUnmounted, onMounted, ref, nextTick, watch, SetupContext } from 'vue'; +import { computed, defineComponent, onUnmounted, onMounted, ref, nextTick, watch, SetupContext, provide } from 'vue'; import { useResizeObserver } from '@vueuse/core'; import { DataGridProps, dataGridProps, PaginatonOptions } from './data-grid.props'; import getDataArea from './components/data/data-area.component'; @@ -24,7 +24,7 @@ import { useGroupColumn, useGroupData, useHierarchy, useIdentify, useNavigation, useRow, useSelection, useSidebar, useSort, useVirtualScroll, useVisualData, useVisualDataBound, useVisualDataCell, useVisualDataRow, useVisualGroupRow, useVisualSummaryRow, useCellContentStyle, useLoading, getEmpty, usePagination, - UpdateDataOption + UpdateDataOption, getGridSettingsIconRender, useSettingColumn } from '@farris/ui-vue/components/data-view'; import './data-grid.css'; @@ -37,6 +37,7 @@ export default defineComponent({ 'pageIndexChanged', 'pageSizeChanged', 'beginEditCell', 'endEditCell'], setup(props: DataGridProps, context) { + const settingIconRef = ref(); const preloadCount = 0; const rowHeight = props.rowOption?.height || 28; const defaultVisibleCapacity = ref(20); @@ -70,12 +71,15 @@ export default defineComponent({ const useCommandColumnComposition = useCommandColumn(props as DataViewOptions); const { applyCommands } = useCommandColumnComposition; applyCommands(columns); - + const { applyColumnSetting } = useSettingColumn( + props as DataViewOptions + ); + applyColumnSetting(columns); const useColumnComposition = useColumn(props as DataViewOptions); const useSortComposition = useSort(props as DataViewOptions); const { applyColumnSorter, columnContext, updateColumnRenderContext } = useColumnComposition; applyColumnSorter(dataView, useSortComposition); - + const useGroupColumnComposition = useGroupColumn(props as DataViewOptions, columnContext); const useRowComposition = useRow(props as DataViewOptions, context as SetupContext, useSelectionComposition, useIdentifyComposition); const useEditComposition = useEdit(props as DataViewOptions, context as SetupContext, useIdentifyComposition, useRowComposition, visibleDatas); @@ -97,7 +101,7 @@ export default defineComponent({ const useVisualGroupRowComposition = useVisualGroupRow(props as DataViewOptions, useIdentifyComposition, useVisualDataCellComposition, useVisualDataRowComposition); const useVisualSummaryRowComposition = useVisualSummaryRow(props as DataViewOptions, useIdentifyComposition, useVisualDataCellComposition, useVisualDataRowComposition); - + const useVisualDataComposition = useVisualData( props as DataViewOptions, columns, @@ -114,7 +118,7 @@ export default defineComponent({ const useCellPositionComposition = useCellPosition(props as DataViewOptions, columnContext); const useSidebarComposition = useSidebar(props as DataViewOptions, useSelectionComposition); const { sidebarWidth, showSidebarCheckBox } = useSidebarComposition; - + const useVirtualScrollComposition = useVirtualScroll( props as DataViewOptions, dataView, @@ -127,8 +131,8 @@ export default defineComponent({ useEditComposition ); const { onWheel, dataGridWidth, viewPortHeight, viewPortWidth, resetScroll, updateVisibleRowsOnLatestVisibleScope } = useVirtualScrollComposition; - const useFitColumnComposition = useFitColumn(props as DataViewOptions, columnContext, gridContentRef, viewPortWidth, useGroupColumnComposition); + const { calculateColumnsSize } = useFitColumnComposition; const useFilterHistoryComposition = useFilterHistory(); @@ -201,7 +205,7 @@ export default defineComponent({ useSortComposition, useVirtualScrollComposition, viewPortWidth, - visibleDatas + visibleDatas, ); const { renderDataGridPagination } = getPagination(props as DataViewOptions, context as SetupContext, dataView, @@ -509,6 +513,15 @@ export default defineComponent({ }; }); + provide('dataGridContext', { + useColumnComposition, + dataView, + useFilterComposition, + useFitColumnComposition, + useSortComposition, + useVirtualScrollComposition, + }); + return () => { return (
diff --git a/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx b/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx index dc700aeb60a..acde0f8f051 100644 --- a/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx @@ -80,6 +80,7 @@ export default function ( const shouldShowHeader = computed(()=>props.showHeader); function headerCellPosition(headerCell: HeaderCell, columnIndex: number): Record { + const isSettingColumn = headerCell.column?.dataType === 'setting'; const headerCellPosition = headerCellPositionMap.get(columnIndex) || 0; const styleObject = { height: `${headerCell.depth * gridHeaderCellHeight}px`, @@ -90,6 +91,10 @@ export default function ( if (columnContext.value.headerDepth > 1) { styleObject['line-height'] = `${headerCell.depth * gridHeaderCellHeight}px`; } + if(isSettingColumn) { + styleObject.paddingLeft = '0px'; + styleObject.paddingRight = '0px'; + } if(props.showBorder){ // 如果显示边框,表头应该展示边框 styleObject.border = '1px solid #e6e9f0'; @@ -148,9 +153,6 @@ export default function ( }; const { renderGridSettingsIcon } = getGridSettingsIconRender( - props, - gridContentRef, - viewPortWidth, useColumnComposition, useDataViewComposition, useFilterComposition, @@ -211,13 +213,14 @@ export default function ( ) } */} { + headerCell.column?.dataType === 'setting'? renderGridSettingsIcon(): context.slots.headerCellTemplate ? context.slots.headerCellTemplate({ headerCell, headerCells, columnIndex }): headerCell.column?.headerFormatter ? headerCell.column.headerFormatter?.({headerCell, headerCells, columnIndex}): {headerCell.title} } {shouldShowHeaderOperation(headerCell) && renderHeaderCellHandler(headerCell, columnIndex, headerCells)} - {shouldShowGridSettings(headerCell) && renderGridSettingsIcon()} + {/* {shouldShowGridSettings(headerCell) && renderGridSettingsIcon()} */} {headerCell.resizable && ( , - viewPortWidth: Ref, useColumnComposition: UseColumn, useDataViewComposition: UseDataView, useFilterComposition: UseFilter, @@ -36,9 +33,6 @@ export default function ( const { openSettingPanel } = getDataGridSettingsRender( - props, - gridContentRef, - viewPortWidth, useColumnComposition, useDataViewComposition, useFilterComposition, @@ -53,11 +47,10 @@ export default function ( function renderGridSettingsIcon() { return ( - + ); } - return { renderGridSettingsIcon }; } diff --git a/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx b/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx index 473b726bfa1..1b4dddf2940 100644 --- a/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-setting/column-setting.component.tsx @@ -12,9 +12,9 @@ import { ConditionValue } from '../../../condition/src/composition/condition-val import { EditorConfig } from '@farris/ui-vue/components/dynamic-form'; type VisibleColumn = { id: string; name: string }; export default function ( - props: DataViewOptions, - gridContentRef: Ref, - viewPortWidth: Ref, + // props: DataViewOptions, + // gridContentRef: Ref, + // viewPortWidth: Ref, useColumnComposition: UseColumn, useDataViewComposition: UseDataView, useFilterComposition: UseFilter, diff --git a/packages/ui-vue/components/data-view/composition/column/use-fit-column.ts b/packages/ui-vue/components/data-view/composition/column/use-fit-column.ts index 83bd8b6defe..3e35c3bf3b9 100644 --- a/packages/ui-vue/components/data-view/composition/column/use-fit-column.ts +++ b/packages/ui-vue/components/data-view/composition/column/use-fit-column.ts @@ -100,8 +100,11 @@ export function useFitColumn( } function calculateColumnsSizeByAverage(context: Ref, viewPortWidth: number) { - const commandColumn = context.value.primaryColumns.find((column: DataColumn) => column.dataType === 'commands'); - if (!commandColumn) { + const commandColumn = context.value.primaryColumns.find((column: DataColumn) => + column.dataType === 'commands'); + const settingColumn = context.value.primaryColumns.find((column: DataColumn) => + column.dataType === 'setting'); + if (!commandColumn && !settingColumn) { const columnWidth = viewPortWidth / (context.value.primaryColumns.filter((column: DataColumn) => column.visible).length || 1); context.value.primaryColumns .filter((column: DataColumn) => column.visible) @@ -110,19 +113,52 @@ export function useFitColumn( context.value.primaryColumnsWidth += visibleColumn.actualWidth; }); } else { - // 如果存在操作列,暂时设置操作列宽度(默认150px)固定,其他列平分宽度 - const columnWidth = (viewPortWidth - 150) / ( + if (commandColumn && !settingColumn) { + // 如果存在操作列,暂时设置操作列宽度(默认150px)固定,其他列平分宽度 + const columnWidth = (viewPortWidth - 150) / ( + context.value.primaryColumns + .filter((column: DataColumn) => column.dataType !== 'commands') + .filter((column: DataColumn) => column.visible).length || 1); context.value.primaryColumns .filter((column: DataColumn) => column.dataType !== 'commands') - .filter((column: DataColumn) => column.visible).length || 1); - context.value.primaryColumns - .filter((column: DataColumn) => column.dataType !== 'commands') - .filter((column: DataColumn) => column.visible) - .forEach((visibleColumn: DataColumn) => { - visibleColumn.actualWidth = columnWidth; - context.value.primaryColumnsWidth += visibleColumn.actualWidth; - }); - context.value.primaryColumnsWidth += 150; + .filter((column: DataColumn) => column.visible) + .forEach((visibleColumn: DataColumn) => { + visibleColumn.actualWidth = columnWidth; + context.value.primaryColumnsWidth += visibleColumn.actualWidth; + }); + context.value.primaryColumnsWidth += 150; + } + if (!commandColumn && settingColumn) { + // 如果存在操作列,暂时设置操作列宽度(默认150px)固定,其他列平分宽度 + const columnWidth = (viewPortWidth - 32) / ( + context.value.primaryColumns + .filter((column: DataColumn) => column.dataType !== 'setting') + .filter((column: DataColumn) => column.visible).length || 1); + context.value.primaryColumns + .filter((column: DataColumn) => column.dataType !== 'setting') + .filter((column: DataColumn) => column.visible) + .forEach((visibleColumn: DataColumn) => { + visibleColumn.actualWidth = columnWidth; + context.value.primaryColumnsWidth += visibleColumn.actualWidth; + }); + context.value.primaryColumnsWidth += 32; + } + if (commandColumn && settingColumn) { + // 如果存在操作列,暂时设置操作列宽度(默认150px)固定,其他列平分宽度 + const columnWidth = (viewPortWidth - 150 - 32) / ( + context.value.primaryColumns + .filter((column: DataColumn) => column.dataType !== 'commands' && column.dataType !== 'setting') + .filter((column: DataColumn) => column.visible).length || 1); + context.value.primaryColumns + .filter((column: DataColumn) => column.dataType !== 'commands' && column.dataType !== 'setting') + .filter((column: DataColumn) => column.visible) + .forEach((visibleColumn: DataColumn) => { + visibleColumn.actualWidth = columnWidth; + context.value.primaryColumnsWidth += visibleColumn.actualWidth; + }); + context.value.primaryColumnsWidth += 150 + 32; + } + } } diff --git a/packages/ui-vue/components/data-view/composition/column/use-setting-column.ts b/packages/ui-vue/components/data-view/composition/column/use-setting-column.ts new file mode 100644 index 00000000000..817ad37f7f2 --- /dev/null +++ b/packages/ui-vue/components/data-view/composition/column/use-setting-column.ts @@ -0,0 +1,26 @@ +import { Ref } from "vue"; +import { DataColumn, DataViewOptions } from "../types"; + +export function useSettingColumn(props: DataViewOptions) { + function applyColumnSetting(columns: Ref) { + if (props.showSetting) { + const hasCommandColumn = columns.value.findIndex((column: DataColumn) => + column.dataType === 'setting') > -1; + if (!hasCommandColumn) { + const commandColumn = { + field: '__setting__', + width: 32, + // headerFormatter: + // (value: { headerCell: HeaderCell, headerCells: HeaderCell[], columnIndex: number }) => + // renderGridSettingsIcon(), + fixed: 'right', + dataType: 'setting', + resizable: false, + visible: true + } as DataColumn; + columns.value.push(commandColumn as DataColumn); + } + } + } + return { applyColumnSetting }; +} diff --git a/packages/ui-vue/components/data-view/index.ts b/packages/ui-vue/components/data-view/index.ts index d5ee95e2b2d..17da92a1205 100644 --- a/packages/ui-vue/components/data-view/index.ts +++ b/packages/ui-vue/components/data-view/index.ts @@ -10,6 +10,8 @@ import getSummary from './components/summary/data-grid-summary.component'; import getVerticalScrollbar from './components/scrollbar/vertical-scrollbar.component'; import getCommandColumn from './components/editors/commands.component'; import getEmpty from './components/data/empty.component'; +import getGridSettingsIconRender from './components/column-setting/column-setting-icon.component'; +import getSettingRender from './components/column-setting/column-setting.component'; export * from './composition/types'; export * from './composition/appearance/use-cell-position'; @@ -45,9 +47,10 @@ export * from './composition/appearance/use-cell-content-style'; export * from './composition/data/use-loading'; export * from './composition/pagination/use-pagination'; export * from './composition/data/use-tree-data'; +export * from './composition/column/use-setting-column'; export { getColumnHeader, getDisableMask, getFilterPanel, getGroupPanel, getHierarchyRow, getHorizontalScrollbar, getPagination, getSidebar, getSummary, getVerticalScrollbar, - getCommandColumn,getEmpty + getCommandColumn,getEmpty,getGridSettingsIconRender, getSettingRender }; diff --git a/packages/ui-vue/demos/data-grid/show_setting.vue b/packages/ui-vue/demos/data-grid/show_setting.vue index c3fea7fcc79..1f439816eba 100644 --- a/packages/ui-vue/demos/data-grid/show_setting.vue +++ b/packages/ui-vue/demos/data-grid/show_setting.vue @@ -24,7 +24,7 @@ const columns: DataColumn[] = [
- +
diff --git a/packages/ui-vue/docs/components/data-grid/index.md b/packages/ui-vue/docs/components/data-grid/index.md index 9003b35ea32..bf18fdd7a9e 100644 --- a/packages/ui-vue/docs/components/data-grid/index.md +++ b/packages/ui-vue/docs/components/data-grid/index.md @@ -1,7 +1,6 @@ # Data Grid 表格 Data Grid 是展示数据的表格组件,提供分页展示数据,在单元格中编辑数据的功能。 - ## 基本用法 :::vdemo @@ -303,6 +302,15 @@ Data Grid 是展示数据的表格组件,提供分页展示数据,在单元 {demos/data-grid/select_and_unselect.vue} ``` +::: +## 远端分页 + +:::vdemo + +```vue +{demos/data-grid/remote_pagination.vue} +``` + ::: -- Gitee From 40eb91d6394d819fc14699b18b943aa4da054411 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 25 Aug 2025 13:41:13 +0800 Subject: [PATCH 083/109] fix: optimize server page of data grid --- pnpm-lock.yaml | 642 ++++++------------------------------------------- 1 file changed, 71 insertions(+), 571 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9b3146c845..e3e286b93a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,10 +366,10 @@ importers: version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -408,7 +408,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -444,19 +444,19 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -513,7 +513,7 @@ importers: version: 7.8.1 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.120)(rollup@4.45.1)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@5.6.3) @@ -526,10 +526,10 @@ importers: version: 7.25.8 '@babel/preset-env': specifier: ^7.19.0 - version: 7.25.8(@babel/core@7.25.8) + version: 7.25.8(@babel/core@7.28.0) '@babel/preset-typescript': specifier: ^7.18.0 - version: 7.25.7(@babel/core@7.25.8) + version: 7.25.7(@babel/core@7.28.0) '@babel/traverse': specifier: ^7.19.0 version: 7.25.7 @@ -565,13 +565,13 @@ importers: version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 - version: 1.2.5(@babel/core@7.25.8) + version: 1.2.5(@babel/core@7.28.0) '@vue/compiler-sfc': specifier: ^3.2.0 version: 3.5.12 @@ -586,7 +586,7 @@ importers: version: 0.7.6 babel-jest: specifier: ^29.0.3 - version: 29.7.0(@babel/core@7.25.8) + version: 29.7.0(@babel/core@7.28.0) chalk: specifier: ^5.0.0 version: 5.3.0 @@ -604,7 +604,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -622,25 +622,25 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@18.19.120)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@18.19.120)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -843,7 +843,7 @@ importers: version: 3.9.1(@types/node@20.5.1)(rollup@4.45.1)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) @@ -1091,7 +1091,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -1185,10 +1185,10 @@ importers: version: 7.18.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1227,7 +1227,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -1263,19 +1263,19 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1499,7 +1499,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -1720,7 +1720,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -2083,7 +2083,7 @@ importers: version: 2.3.0(@types/node@20.5.1)(rollup@4.45.1)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -2340,7 +2340,7 @@ importers: version: 0.8.0 vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) @@ -4841,6 +4841,7 @@ packages: '@ls-lint/ls-lint@2.3.1': resolution: {integrity: sha512-vPe6IDByQnQRTxcAYjTxrmga/tSIui50VBFTB5KIJWY3OOFmxE2VtymjeSEfQfiMbhZV/ZPAqYy2lt8pZFQ0Rw==} + cpu: [x64, arm64, s390x, ppc64le] os: [darwin, linux, win32] hasBin: true @@ -16345,7 +16346,7 @@ snapshots: '@types/node': 20.5.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.8.3) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.8.3))(typescript@5.8.3) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -17188,7 +17189,7 @@ snapshots: bignumber.js: 9.1.2 lodash: 4.17.21 lodash-es: 4.17.21 - moment: 2.30.1 + moment: 2.29.1 mxgraph: 4.2.2 rxjs: 7.8.1 vue: 3.5.12(typescript@4.9.5) @@ -17619,41 +17620,6 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.120 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 @@ -18000,14 +17966,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.29.8(@types/node@18.19.120)': - dependencies: - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.120) - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor-model@7.29.8(@types/node@18.19.57)': dependencies: '@microsoft/tsdoc': 0.15.0 @@ -18060,24 +18018,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.11(@types/node@18.19.120)': - dependencies: - '@microsoft/api-extractor-model': 7.29.8(@types/node@18.19.120) - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.120) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.2(@types/node@18.19.120) - '@rushstack/ts-command-line': 4.23.0(@types/node@18.19.120) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor@7.47.11(@types/node@18.19.57)': dependencies: '@microsoft/api-extractor-model': 7.29.8(@types/node@18.19.57) @@ -18473,18 +18413,6 @@ snapshots: '@rushstack/eslint-patch@1.11.0': {} - '@rushstack/node-core-library@3.66.1(@types/node@18.19.120)': - dependencies: - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - z-schema: 5.0.5 - optionalDependencies: - '@types/node': 18.19.120 - '@rushstack/node-core-library@3.66.1(@types/node@18.19.57)': dependencies: colors: 1.2.5 @@ -18531,19 +18459,6 @@ snapshots: optionalDependencies: '@types/node': 20.5.1 - '@rushstack/node-core-library@5.9.0(@types/node@18.19.120)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - optionalDependencies: - '@types/node': 18.19.120 - '@rushstack/node-core-library@5.9.0(@types/node@18.19.57)': dependencies: ajv: 8.13.0 @@ -18594,13 +18509,6 @@ snapshots: optionalDependencies: '@types/node': 20.5.1 - '@rushstack/terminal@0.14.2(@types/node@18.19.120)': - dependencies: - '@rushstack/node-core-library': 5.9.0(@types/node@18.19.120) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 18.19.120 - '@rushstack/terminal@0.14.2(@types/node@18.19.57)': dependencies: '@rushstack/node-core-library': 5.9.0(@types/node@18.19.57) @@ -18633,15 +18541,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.23.0(@types/node@18.19.120)': - dependencies: - '@rushstack/terminal': 0.14.2(@types/node@18.19.120) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@rushstack/ts-command-line@4.23.0(@types/node@18.19.57)': dependencies: '@rushstack/terminal': 0.14.2(@types/node@18.19.57) @@ -19421,16 +19320,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - transitivePeerDependencies: - - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: '@babel/core': 7.25.8 @@ -19460,11 +19349,6 @@ snapshots: dependencies: vite: 2.9.18(sass@1.89.2) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - vite: 3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) @@ -19500,11 +19384,6 @@ snapshots: vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': - dependencies: - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) @@ -20218,39 +20097,14 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': - dependencies: - '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite - - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -20268,46 +20122,19 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite - - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))': - dependencies: - '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) - fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding - - happy-dom - jsdom - less - lightningcss @@ -20316,14 +20143,13 @@ snapshots: - sugarss - supports-color - terser - - vite '@yankeeinlondon/builder-api@1.4.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 markdown-it: 13.0.2 vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0))(vue@3.5.18(typescript@5.8.3)))(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0)(vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0)) transitivePeerDependencies: @@ -20342,7 +20168,7 @@ snapshots: '@yankeeinlondon/gray-matter@6.2.1': dependencies: - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 js-yaml: 4.1.0 kind-of: 6.0.3 section-matter: 1.0.0 @@ -21289,7 +21115,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 vitest: 0.25.8(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -21309,7 +21135,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 vitest: 0.25.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -21329,7 +21155,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types: 0.37.6 vitest: 0.25.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -22112,7 +21938,7 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.8.3))(typescript@5.8.3): + cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.8.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.8.3): dependencies: '@types/node': 20.5.1 cosmiconfig: 8.3.6(typescript@5.8.3) @@ -22182,21 +22008,6 @@ snapshots: p-filter: 3.0.0 p-map: 6.0.0 - create-jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 @@ -24560,6 +24371,10 @@ snapshots: index-to-position@0.1.2: {} + inferred-types@0.37.6: + dependencies: + brilliant-errors: 0.7.3(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) + inferred-types@0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0): dependencies: brilliant-errors: 0.7.3(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.89.2)(terser@5.36.0) @@ -25108,25 +24923,6 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest-cli@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) @@ -25203,7 +24999,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 @@ -25229,12 +25025,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.120 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) + ts-node: 10.9.2(@types/node@18.19.120)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): dependencies: '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 @@ -25260,12 +25056,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.120 - ts-node: 10.9.2(@types/node@18.19.120)(typescript@5.8.3) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): dependencies: '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 @@ -25291,12 +25087,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.120 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 @@ -25322,43 +25118,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.120 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): - dependencies: - '@babel/core': 7.25.8 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.8) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 18.19.120 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)): dependencies: '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 @@ -25384,7 +25149,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -25690,18 +25455,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.6.3)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest@29.7.0(@types/node@18.19.120)(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.120)(typescript@5.8.3)) @@ -28864,25 +28617,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.57 - acorn: 8.13.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optional: true - ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -29345,24 +29079,6 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - cac: 6.7.14 - debug: 4.3.7 - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vite-node@1.6.0(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: cac: 6.7.14 @@ -29405,24 +29121,6 @@ snapshots: dependencies: vite: 4.5.5(@types/node@20.5.1)(sass@1.89.2)(terser@5.36.0) - vite-plugin-dts@2.3.0(@types/node@18.19.120)(rollup@4.45.1)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@babel/parser': 7.25.8 - '@microsoft/api-extractor': 7.47.11(@types/node@18.19.120) - '@rollup/pluginutils': 5.1.2(rollup@4.45.1) - '@rushstack/node-core-library': 3.66.1(@types/node@18.19.120) - debug: 4.3.7 - fast-glob: 3.3.2 - fs-extra: 10.1.0 - kolorist: 1.8.0 - magic-string: 0.29.0 - ts-morph: 18.0.0 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: '@babel/parser': 7.25.8 @@ -29606,69 +29304,18 @@ snapshots: - terser - vite - vite-plugin-md@0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.20.6(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/builder-api': 1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) gray-matter: 4.0.3 markdown-it: 13.0.2 source-map-js: 1.2.1 transitivePeerDependencies: - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite - - vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding - - happy-dom - jsdom - less - lightningcss @@ -29702,63 +29349,14 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.21.5(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/builder-api': 1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): - dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) - '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -29774,15 +29372,15 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -29856,18 +29454,6 @@ snapshots: fsevents: 2.3.3 sass: 1.89.2 - vite@3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0): - dependencies: - esbuild: 0.15.18 - postcss: 8.4.47 - resolve: 1.22.8 - rollup: 2.79.2 - optionalDependencies: - '@types/node': 18.19.120 - fsevents: 2.3.3 - sass: 1.80.3 - terser: 5.36.0 - vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.15.18 @@ -29970,18 +29556,6 @@ snapshots: sass: 1.89.2 terser: 5.36.0 - vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.45.1 - optionalDependencies: - '@types/node': 18.19.120 - fsevents: 2.3.3 - sass: 1.80.3 - sass-embedded: 1.80.3 - terser: 5.36.0 - vite@5.4.19(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.89.2)(terser@5.36.0): dependencies: esbuild: 0.21.5 @@ -30006,18 +29580,6 @@ snapshots: sass-embedded: 1.80.3 terser: 5.36.0 - vite@5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 - optionalDependencies: - '@types/node': 18.19.120 - fsevents: 2.3.3 - sass: 1.80.3 - sass-embedded: 1.80.3 - terser: 5.36.0 - vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.21.5 @@ -30270,32 +29832,6 @@ snapshots: - supports-color - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@18.19.120)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): - dependencies: - '@docsearch/css': 3.6.2 - '@docsearch/js': 3.6.0(@algolia/client-search@5.34.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@vue/devtools-api': 6.6.4 - '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) - body-scroll-lock: 4.0.0-beta.0 - shiki: 0.11.1 - vite: 3.2.11(@types/node@18.19.120)(sass@1.80.3)(terser@5.36.0) - vue: 3.5.12(typescript@5.6.3) - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/node' - - '@types/react' - - '@vue/composition-api' - - less - - react - - react-dom - - sass - - search-insights - - stylus - - sugarss - - terser - - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@5.34.1)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): dependencies: '@docsearch/css': 3.6.2 @@ -30609,42 +30145,6 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@18.19.120)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.4 - chai: 4.5.0 - debug: 4.3.7 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.12 - pathe: 1.1.2 - picocolors: 1.1.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.9.0 - tinypool: 0.8.4 - vite: 5.4.9(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vite-node: 1.6.0(@types/node@18.19.120)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 18.19.120 - happy-dom: 8.9.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vitest@1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: '@vitest/expect': 1.6.0 -- Gitee From 526ab7ebade2f1baf4aa04f997feaa5cc03c9d45 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 25 Aug 2025 17:11:25 +0800 Subject: [PATCH 084/109] fix: optimize header show tip --- packages/ui-vue/components/chs.json | 493 ++++++++++++++++++ .../column-header/column-header.component.tsx | 9 +- packages/ui-vue/components/index.ts | 2 +- 3 files changed, 502 insertions(+), 2 deletions(-) create mode 100644 packages/ui-vue/components/chs.json diff --git a/packages/ui-vue/components/chs.json b/packages/ui-vue/components/chs.json new file mode 100644 index 00000000000..fc7713c4ea0 --- /dev/null +++ b/packages/ui-vue/components/chs.json @@ -0,0 +1,493 @@ +{ + "transfer": { + "selectedStart": "已选:", + "selectedEnd": "项数据" + }, + "timePicker": { + "placeholder": "请选择时间", + "time": { + "hour": "时", + "minute": "分", + "seconds": "秒" + } + }, + "tabs": { + "more": "更多", + "leftButton": "向左", + "rightButton": "向左", + "noData": "没有相关数据" + }, + "section": { + "expandLabel": "展开", + "collapseLabel": "收起" + }, + "responseToolbar": { + "more": "更多" + }, + "querySolution": { + "saveAsDialog": { + "queryPlanName": "方案名称", + "setAsDefault": "设为默认", + "confirm": "确定", + "cancel": "取消", + "caption": "新增方案", + "personal": "用户个人方案", + "system": "系统公共方案", + "nameNotify": "请填写方案名称", + "authNotify": "您暂无权限修改公共类型方案。", + "success": "查询方案保存成功。", + "maxLength": "方案名称最多100个字符,超出请修改" + }, + "manageDialog": { + "caption": "方案管理", + "default": "默认", + "system": "系统公共", + "saveAs": "另存为", + "save": "保存", + "manage": "管理", + "isDefault": "默认方案", + "code": "名称", + "type": "属性", + "private": "用户个人方案", + "public": "系统公共方案", + "org": "组织公共方案", + "remove": "删除" + }, + "configDialog": { + "caption": "筛选条件配置" + }, + "container": { + "filter": "筛选", + "default": "默认筛选方案", + "clear": "清空", + "require": "请填写{fields}再进行筛选" + } + }, + "pagination": { + "message": "共 {1} 条", + "totalInfo": { + "firstText": "共", + "lastText": "条" + }, + "pageList": { + "firstText": "每页", + "lastText": "条" + }, + "previous": "上一页", + "next": "下一页", + "goto": { + "prefix": "跳转至", + "suffix": "页" + }, + "show": "显示" + }, + "numberSpinner": { + "placeholder": "请输入数字", + "range": { + "begin": "请输入开始数字", + "end": "请输入结束数字" + } + }, + "messageBox": { + "yes": "是", + "no": "否", + "ok": "确定", + "close": "关闭", + "cancel": "取消", + "title": "系统提示", + "errorTitle": "错误提示", + "prompt": { + "fontSize": { + "name": "字体大小", + "small": "小", + "middle": "中", + "big": "大", + "large": "特大", + "huge": "超大" + }, + "tips": { + "surplus": "还可以输入 {0} 个字符", + "length": "已输入 {0} 个字符" + } + }, + "exception": { + "expand": "展开", + "collapse": "收起", + "happend": "发生时间", + "detail": "详细信息", + "copy": "复制详细信息", + "copySuccess": "复制成功", + "copyFailed": "复制失败", + "roger": "知道了" + } + }, + "lookup": { + "placeholder": "请选择", + "favorites": "收藏夹", + "selected": "已选数据", + "okText": "确定", + "cancelText": "取消", + "allColumns": "所有列", + "datalist": "数据列表", + "mustWriteSomething": "请输入关键字后查询。", + "mustChoosAdatarow": "请选择一条记录!", + "tipText": "您要找的是不是这些?", + "cascade": { + "enable": "同步选择", + "disable": "仅选择自身", + "up": "包含上级", + "down": "包含下级" + }, + "includechildren": "包含下级", + "favoriteInfo": { + "addFav": "已添加到收藏夹。", + "cancelFav": "已从收藏夹中移除。", + "addFavTitle": "收藏", + "cancelFavTitle": "取消收藏" + }, + "getAllChilds": "获取所有子级数据", + "contextMenu": { + "checkChildNodes": "勾选下级数据", + "uncheckChildNodes": "取消勾选下级数据", + "expandall": "全部展开", + "collapseall": "全部收起", + "expandByLayer": "按层级展开", + "expand1": "展开 1 级", + "expand2": "展开 2 级", + "expand3": "展开 3 级", + "expand4": "展开 4 级", + "expand5": "展开 5 级", + "expand6": "展开 6 级", + "expand7": "展开 7 级", + "expand8": "展开 8 级", + "expand9": "展开 9 级" + }, + "quick": { + "notfind": "未找到搜索内容", + "more": "显示更多" + }, + "configError": "帮助显示列未配置,请检查是否已正确配置帮助数据源! ", + "selectedInfo": { + "total": "已选 {0} 条", + "clear": "取消已选", + "remove": "移除 ({0})", + "confirm": "您确认要取消所有选中记录吗?" + }, + "clearAllConditions": "清除所有查询条件", + "anyFields": "全部" + }, + "loading": { + "message": "正在加载,请稍候..." + }, + "listView": { + "emptyMessage": "暂无数据" + }, + "filterConditionEditor": { + "cancelButton": "取消", + "okButton": "确定", + "addWhere": "添加子句", + "clear": "清空", + "moveTop": "置顶", + "moveUp": "上移", + "moveDown": "下移", + "moveBottom": "置底", + "leftBrackets": "左括号", + "field": "字段", + "operator": "操作符", + "value": "值", + "valueType": "值类型", + "expressType": { + "value": "值", + "express": "表达式", + "frontExpress": "表单表达式" + }, + "rightBrackets": "右括号", + "relation": "关系", + "relationValue": { + "and": "并且", + "or": "或者" + }, + "designTab": "设计器", + "jsonTab": "源代码", + "sqlTab": "Sql预览", + "title": "条件编辑器", + "message": "确认要清空当前所有数据吗?", + "validate": { + "bracket": "左右括号不匹配,请检查", + "relation": "条件关系不完整,请检查", + "field": "条件字段未设置,请检查" + } + }, + "eventParameter": { + "title": "参数编辑器", + "ok": "确定", + "cancel": "取消", + "workFlowClass": { + "title": "请选择流程分类" + }, + "generalEditor": { + "field": "字段", + "tabVar": "变量", + "form": "表单组件" + }, + "jsonEditor": { + "dialogTitle": "可配置参数编辑器", + "keyColumnTitle": "参数", + "valueColumnTitle": "参数值", + "addButtonText": "添加配置参数", + "keyColumnPlaceholder": "请输入参数", + "error": "JsonEditor的参数预期是数组,但收到无效的JSON" + }, + "comboTree": { + "placeholder": "请选择" + } + }, + "drawer": { + "cancel": "取消", + "confirm": "确定" + }, + "datepicker": { + "dayLabels": { + "Sun": "日", + "Mon": "一", + "Tue": "二", + "Wed": "三", + "Thu": "四", + "Fri": "五", + "Sat": "六" + }, + "monthLabels": { + "1": "一月", + "2": "二月", + "3": "三月", + "4": "四月", + "5": "五月", + "6": "六月", + "7": "七月", + "8": "八月", + "9": "九月", + "10": "十月", + "11": "十一月", + "12": "十二月" + }, + "dateFormat": "yyyy-MM-dd", + "returnFormat": "yyyy-MM-dd", + "firstDayOfWeek": "mo", + "sunHighlight": false, + "yearTxt": "年", + "timeBtnText": "选择时间", + "dateBtnText": "选择日期", + "commitBtnText": "确定", + "weekText": "周", + "placeholder": "请选择日期", + "range": { + "begin": "请选择开始日期", + "end": "请选择结束日期" + }, + "message": { + "101": "结束时间不得早于开始时间!", + "102": "仅允许选择 ${0} 个日期" + }, + "current": { + "today": "今天", + "week": "本周", + "month": "本月", + "year": "今年" + }, + "multiDatesLocale": { + "backtotoday": "回到今天", + "clearSelections": "清空", + "delete": "删除", + "selected": "已选,天" + }, + "quickSelectors": { + "today": "今天", + "yesterday": "昨天", + "tomorrow": "明天", + "thisMonday": "本周一", + "nextMonday": "下周一", + "firstDayOfMonth": "本月初", + "lastDayOfMonth": "本月末", + "firstDayOfLastMonth": "上月初", + "lastDayOfLastMonth": "上月末", + "firstDayOfYear": "今年初", + "lastDayOfYear": "今年末", + "firstDayOfQuarter": "本季度初", + "lastDayOfQuarter": "本季度末", + "thisWeek": "本周", + "lastWeek": "上周", + "nextWeek": "下周", + "past7Days": "过去7天", + "past30Days": "过去30天", + "thisMonth": "本月", + "lastMonth": "上月", + "thisQuarter": "本季度", + "lastQuarter": "上季度", + "thisYear": "今年", + "lastYear": "去年", + "recent3Months": "最近3个月", + "recent6Months": "最近6个月" + } + }, + "datagrid": { + "lineNumberTitle": "序号", + "emptyMessage": "暂无数据", + "pagination": { + "previousLabel": "上一页", + "nextLabel": "下一页", + "message": "共 {1} 条", + "pagelist": { + "firstText": "显示", + "lastText": "条" + } + }, + "filter": { + "title": "筛选", + "reset": "重置", + "clear": "清空", + "clearAll": "清空所有条件", + "setting": "高级设置", + "nofilter": "[ 无 ]", + "checkAll": "全选", + "and": "并且", + "or": "或者", + "operators": { + "equal": "等于", + "notEqual": "不等于", + "greater": "大于", + "greaterOrEqual": "大于等于", + "less": "小于", + "lessOrEqual": "小于等于", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "属于", + "notIn": "不属于", + "empty": "为空", + "notEmpty": "不为空", + "null": "null", + "notNull": "不为null" + }, + "more": "查看更多", + "ok": "确定", + "cancel": "取消", + "sevenDays": "七天", + "oneMonth": "一个月", + "threeMonths": "三个月", + "sixMonths": "半年" + }, + "settings": { + "visible": "显示列", + "sortting": "列排序", + "title": "列配置", + "canchoose": "可选列", + "choosed": "已选列", + "asc": "升序", + "desc": "降序", + "cancelSort": "取消排序", + "ok": "确定", + "cancel": "取消", + "reset": "恢复默认", + "conciseMode": "简洁模式", + "advancedMode": "高级模式", + "formatSetting": "列格式", + "properties": "列属性", + "groupping": "分组", + "allColumns": "所有列", + "visibleColumns": "可见列", + "hiddenColumns": "隐藏列", + "searchPlaceholder": "请输入列名称", + "checkall": "全部显示/隐藏", + "headeralign": "表头对齐", + "dataalign": "数据对齐", + "alignLeft": "左对齐", + "alignCenter": "居中对齐", + "alignRight": "右对齐", + "summarytype": "汇总合计类型", + "summarytext": "汇总合计文本", + "summaryNone": "无", + "summarySum": "求和", + "summaryMax": "最大值", + "summaryMin": "最小值", + "summarCount": "计数", + "summaryAverage": "平均值", + "grouppingField": "分组字段", + "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", + "grouppingSummary": "分组合计", + "addGrouppingFieldTip": "添加分组字段", + "removeGrouppingFieldTip": "移除分组字段", + "grouppingSummaryType": "分组合计类型", + "grouppingSummaryText": "分组合计文本", + "restoreDefaultSettingsText": "确认要恢复默认设置吗?", + "simple": { + "title": "显示列", + "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", + "count": "已显示 {0} 列" + } + }, + "selectionData": { + "clearAll": "清空", + "tooltip": "点击显示已选记录列表", + "currentLenth": "已选择:{0} 条" + }, + "groupRow": { + "tips": "拖动列到这儿可进行数据分组", + "removeColumn": "移除分组列", + "clearTip": "清除所有分组字段", + "clear": "清空" + }, + "summary": { + "title": "当页合计" + }, + "loadingMessage": "正在加载", + "commandColumn": { + "title": "操作", + "edit": "编辑", + "remove": "删除", + "cancel": "取消", + "accept": "确定" + } + }, + "condition": { + "add": "添加条件", + "create": "生成条件组", + "reset": "重置", + "and": "与", + "or": "或" + }, + "operators": { + "equal": "等于", + "notEqual": "不等于", + "greater": "大于", + "greaterOrEqual": "大于等于", + "less": "小于", + "lessOrEqual": "小于等于", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "属于", + "notIn": "不属于", + "empty": "为空", + "notEmpty": "不为空", + "null": "null", + "notNull": "不为null", + "startWith": "开始是", + "endWith": "结束是", + "and": "与", + "or": "或" + }, + "comboList": { + "remoteError": "请求方法类型不正确", + "placeholder": "请选择" + }, + "avatar": { + "imgtitle": "点击修改", + "typeError": "上传图片类型不正确", + "sizeError": "上传图片不能大于", + "uploadError": "图片上传失败,请重试!", + "loadError": "加载错误", + "loading": "加载中" + } + } \ No newline at end of file diff --git a/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx b/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx index 7d3753b8255..45746cc344a 100644 --- a/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-header/column-header.component.tsx @@ -187,6 +187,11 @@ export default function ( } } + function renderTips(headerCell: HeaderCell) { + + return {headerCell.title}; + } + function renderGridHeaderCell(headerCell: HeaderCell, headerCells: HeaderCell[], columnIndex: number) { return (
{headerCell.title} + headerCell.column?.showTips? renderTips(headerCell):{headerCell.title} + + } {shouldShowHeaderOperation(headerCell) && renderHeaderCellHandler(headerCell, columnIndex, headerCells)} {shouldShowGridSettings(headerCell) && renderGridSettingsIcon()} diff --git a/packages/ui-vue/components/index.ts b/packages/ui-vue/components/index.ts index 2a7933b8fc8..101da26b2ee 100644 --- a/packages/ui-vue/components/index.ts +++ b/packages/ui-vue/components/index.ts @@ -97,7 +97,7 @@ import HtmlTemplate from './html-template'; import Locale from './locale'; import '../public/assets/farris-all.css'; import enLocale from './en'; -import chsLocale from './chs'; +import chsLocale from './chs.json'; import chtLocale from './cht'; // export all components modules export * from './components'; -- Gitee From 6c11b3357591dbb5af95dc5bf4792a491185b02b Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 25 Aug 2025 19:12:55 +0800 Subject: [PATCH 085/109] chore: resolve conflicts --- packages/bef/lib/framework-session.service.ts | 45 +- .../bef/lib/session/bef_session_manager.ts | 42 +- .../bef/lib/session/bef_session_service.ts | 1 - ...bef-separated-session-handling-strategy.ts | 23 +- .../handling-strategy-factory.ts | 3 + .../handling-strategies/handling-strategy.ts | 4 +- .../session-storage-strategy.ts | 2 +- packages/code-editor/package.json | 2 +- .../command-services/lib/dialog.service.ts | 18 +- .../lib/form-notify.service.ts | 2 +- .../lib/navigation-event.service.ts | 97 +++-- .../lib/navigation-middleware.service.ts | 88 +++- .../lib/navigation.service.ts | 10 +- packages/command-services/lib/types.ts | 15 + .../designer/public/assets/farris-all.css | 4 +- .../components/entity-tree-view.component.tsx | 18 +- .../components/entity-tree-view.scss | 4 + .../external-component-selector.component.tsx | 2 +- .../form-designer/form-designer.component.tsx | 6 +- .../composition/form-metadata-rtc.service.tsx | 2 +- .../lookup/lookup-schema.service.ts | 28 +- .../types/form-property-config.json | 27 -- .../components/types/form-property-config.ts | 52 +++ .../lib/expression/expression-registry.ts | 5 +- packages/devkit/lib/expression/types.ts | 2 + packages/devkit/lib/module/module.ts | 35 +- .../store/entity-store/entity-data-loader.ts | 18 +- .../store/entity-store/entity-data-peeker.ts | 13 +- .../store/entity-store/entity-state-query.ts | 12 +- .../entity-store/entity-state-updater.ts | 10 + .../validators/max-length-validator.ts | 34 +- .../theme/iteration/_variables.scss | 2 +- .../components/button-group/index.ts | 2 +- .../button-group/src/button-group.props.ts | 2 +- .../button-group/src/button-group.scss | 1 + ....tsx => button-group.design.component.tsx} | 14 +- .../src/designer/use-designer-rules.ts | 10 +- .../button-group.property-config.ts | 2 +- .../src/schema/button-group.schema.json | 4 +- .../button/src/designer/use-designer-rules.ts | 19 +- .../button/src/schema/button.schema.json | 11 +- .../components/card/src/card.component.tsx | 5 +- .../src/designer/card.design.component.tsx | 9 +- .../card/src/designer/use-designer-rules.ts | 6 +- .../common/src/compositions/index.ts | 1 + .../use-designer-component.ts | 11 +- .../use-dragula/use-dragula-common-rule.ts | 54 +++ .../common/src/properties/dg-control.ts | 2 +- .../src/properties/schema-dom-mapping.ts | 8 +- .../src/designer/use-designer-rules.ts | 8 +- .../content-container.design.component.tsx | 3 +- .../src/designer/use-designer-rules.ts | 6 +- .../designer/date-picker.design.component.tsx | 4 +- .../date-picker.property-config.ts | 7 +- .../src/schema/date-picker.schema.json | 2 +- .../components/designer-canvas/index.ts | 8 - .../components/designer-item.component.tsx | 340 --------------- .../designer-canvas/src/components/maps.ts | 49 --- .../src/composition/function/drag-resolve.tsx | 230 ----------- .../src/designer-canvas.component.tsx | 143 ------- .../designer/form-item-use-designer-rules.ts | 4 +- .../designer/form-item.design.component.tsx | 63 ++- .../response-form-use-designer-rules.ts | 10 +- .../form-item/src/form-item.props.ts | 5 +- .../components/form-item/src/form-item.scss | 19 + .../src/schema/form-item.schema.json | 5 + packages/mobile-ui-vue/components/index.ts | 2 +- .../input-group/src/input-group.scss | 1 + .../input-group.property-config.ts | 13 +- .../src/schema/input-group.schema.json | 5 + .../designer/list-view.design.component.tsx | 2 +- .../src/designer/use-designer-rules.ts | 6 +- .../src/designer/lookup.design.component.tsx | 4 +- .../navbar/src/schema/navbar.schema.json | 2 +- .../components/number-input/index.ts | 2 +- .../number-input.property-config.ts | 21 +- .../src/schema/number-input.schema.json | 4 +- .../page-body-container.design.component.tsx | 2 +- .../src/designer/use-designer-rules.ts | 8 +- .../src/designer/use-designer-rules.ts | 17 +- ...page-footer-container.design.component.tsx | 2 +- .../src/designer/use-designer-rules.ts | 6 +- ...page-header-container.design.component.tsx | 2 +- .../src/designer/use-designer-rules.ts | 27 +- .../enum-field-input.design.component.tsx | 75 ---- .../src/designer/picker.design.component.tsx | 4 +- .../src/composition/entity/base-property.ts | 130 ------ .../composition/entity/input-base-property.ts | 390 ------------------ .../src/composition/entity/use-input-rules.ts | 62 --- .../components/register-designer.ts | 5 +- packages/mobile-ui-vue/components/register.ts | 40 +- .../src/designer/switch.design.component.tsx | 2 +- .../switch/src/schema/switch.schema.json | 4 + .../components/time-picker/index.ts | 9 +- .../designer/time-picker.design.component.tsx | 71 ++++ .../src/designer/use-designer-rules.ts | 15 + .../time-picker.property-config.ts | 52 +++ .../time-picker/src/schema/schema-mapper.ts | 6 + .../time-picker/src/schema/schema-resolver.ts | 5 + .../src/schema/time-picker.schema.json | 78 ++++ .../time-picker/src/time-picker.props.ts | 10 + ...id-component-config-dependency-resolver.ts | 5 +- .../data-grid-component-config-resolver.ts | 26 +- .../data-grid-required-effector.ts | 9 +- .../renderer/src/composition/use-session.ts | 9 +- .../expression-config-builder.ts | 3 +- .../form/validation-rule-creator.ts | 2 +- packages/renderer/src/config/types.ts | 1 + .../end-edit-cell-event-handler.ts | 10 +- .../modal-closed-event-handler.ts | 85 ++++ .../model-value-update-event-handler.ts | 11 +- .../renderer/src/event-handler/providers.ts | 4 +- packages/renderer/src/i18n/resource-loader.ts | 45 +- .../transformer/data-grid-i18n-transformer.ts | 108 +++-- .../form-group-i18n-transformer.ts | 14 + .../response-toolbar-i18n-transformer.ts | 10 +- .../validator/response-required-validator.ts | 12 +- .../lib/compositions/use-data-grid-binding.ts | 4 +- .../button-edit/src/button-edit.component.tsx | 8 +- .../button-edit/src/button-edit.props.ts | 2 +- .../src/components/text-edit.component.tsx | 12 +- 121 files changed, 1352 insertions(+), 1805 deletions(-) delete mode 100644 packages/designer/src/components/types/form-property-config.json create mode 100644 packages/designer/src/components/types/form-property-config.ts rename packages/mobile-ui-vue/components/button-group/src/designer/{card.design.component.tsx => button-group.design.component.tsx} (75%) create mode 100644 packages/mobile-ui-vue/components/common/src/compositions/use-dragula/use-dragula-common-rule.ts delete mode 100644 packages/mobile-ui-vue/components/designer-canvas/index.ts delete mode 100644 packages/mobile-ui-vue/components/designer-canvas/src/components/designer-item.component.tsx delete mode 100644 packages/mobile-ui-vue/components/designer-canvas/src/components/maps.ts delete mode 100644 packages/mobile-ui-vue/components/designer-canvas/src/composition/function/drag-resolve.tsx delete mode 100644 packages/mobile-ui-vue/components/designer-canvas/src/designer-canvas.component.tsx delete mode 100644 packages/mobile-ui-vue/components/picker/src/designer/enum-field-input.design.component.tsx delete mode 100644 packages/mobile-ui-vue/components/property-panel/src/composition/entity/base-property.ts delete mode 100644 packages/mobile-ui-vue/components/property-panel/src/composition/entity/input-base-property.ts delete mode 100644 packages/mobile-ui-vue/components/property-panel/src/composition/entity/use-input-rules.ts create mode 100644 packages/mobile-ui-vue/components/time-picker/src/designer/time-picker.design.component.tsx create mode 100644 packages/mobile-ui-vue/components/time-picker/src/designer/use-designer-rules.ts create mode 100644 packages/mobile-ui-vue/components/time-picker/src/property-config/time-picker.property-config.ts create mode 100644 packages/mobile-ui-vue/components/time-picker/src/schema/schema-mapper.ts create mode 100644 packages/mobile-ui-vue/components/time-picker/src/schema/schema-resolver.ts create mode 100644 packages/mobile-ui-vue/components/time-picker/src/schema/time-picker.schema.json create mode 100644 packages/renderer/src/event-handler/modal-closed-event-handler.ts diff --git a/packages/bef/lib/framework-session.service.ts b/packages/bef/lib/framework-session.service.ts index 35632ad1bbf..c80a0cef1f1 100644 --- a/packages/bef/lib/framework-session.service.ts +++ b/packages/bef/lib/framework-session.service.ts @@ -2,8 +2,21 @@ * 框架Session服务 */ class FrameworkSessionService { + + /** + * 框架服务 + * @summary + * 等同于frameworkService的rtf属性 + */ private rtfService: any; + + /** + * 框架服务 + * @summary + * 等同于框架向Window注册的gspframeworkService对象 + */ private frameworkService: any = null; + /** * 构造函数 */ @@ -14,44 +27,68 @@ class FrameworkSessionService { /** * 获取当前会话id */ - getCurrentSessionId(): string { + public getCurrentSessionId(): string { + // TODO: 存在页签未激活获取token错误的问题 return this.formToken || ''; } + public get tabId() { return this.params && this.params['tabId'] || null; } + /** * 获取formToken */ public get formToken() { return this.params && this.params['cvft'] || null; } + + /** + * 从URL中获取查询参数 + */ public get params() { + // if (this.rtfService && this.rtfService.hasOwnProperty('session') && typeof this.rtfService['session']['getCommonVariable'] === 'function') { // return this.rtfService['session']['getCommonVariable'](); // } // return null; - // 从url中获取 + const hash = window.location.hash; const params = this.parseQueryString(hash); return params; } + + /** + * 获取框架服务 + */ private getRuntimeFrameworkService() { const frameworkService = this.gspFrameworkService; return frameworkService && frameworkService.rtf || {}; } + + /** + * 获取框架服务 + * @summary + * 从Window上获取框架的gspframeworkService对象 + */ private get gspFrameworkService() { if (this.frameworkService) { return this.frameworkService; } + let env: Window = window; while (!env['gspframeworkService'] && env !== window.top && this.isSameOrigin(env)) { env = env.parent; } + this.frameworkService = env['gspframeworkService']; return this.frameworkService; } + + /** + * 当前Window是否和表单是同源 + */ private isSameOrigin(environment: Window) { const host = window.location.host; try { @@ -64,6 +101,10 @@ class FrameworkSessionService { return false; } + + /** + * 将查询参数字符串转换成对象 + */ private parseQueryString(queryString: string): { [propName: string]: any } { if (!queryString) { return {}; diff --git a/packages/bef/lib/session/bef_session_manager.ts b/packages/bef/lib/session/bef_session_manager.ts index 14263a40a74..f36cc33932a 100644 --- a/packages/bef/lib/session/bef_session_manager.ts +++ b/packages/bef/lib/session/bef_session_manager.ts @@ -2,15 +2,35 @@ import { RuntimeContext } from '../types'; import { BefSessionService } from './bef_session_service'; export class BefSessionManager { - private static history: string[] = []; - public static getSessionId(moduleId: string, sessionService: BefSessionService, beBaseUri: string, runtimeContext?: RuntimeContext): Promise { - const key = `${moduleId}_${beBaseUri}`; - const createSessionIsInvoked = this.history.includes(key); - if (createSessionIsInvoked) { - return Promise.resolve(null); - } else { - this.history.push(key); - return sessionService.getBeSessionId(runtimeContext); - } + + /** + * 会话创建历史记录 + */ + private static history: string[] = []; + + /** + * 获取会话 + */ + public static getSessionId(moduleId: string, sessionService: BefSessionService, beBaseUri: string, runtimeContext?: RuntimeContext): Promise { + const key = `${moduleId}_${beBaseUri}`; + const createSessionIsInvoked = this.history.includes(key); + if (createSessionIsInvoked) { + return Promise.resolve(null); + } else { + this.history.push(key); + return sessionService.getBeSessionId(runtimeContext); + } + } + + /** + * 清理会话 + */ + public static clearSessionId(moduleId: string, sessionService: BefSessionService, beBaseUri: string, runtimeContext?: RuntimeContext) { + const key = `${moduleId}_${beBaseUri}`; + const keyIndex = this.history.indexOf(key); + if (keyIndex !== -1) { + this.history.splice(keyIndex, 1); } - } \ No newline at end of file + sessionService.clearBeSessionId(runtimeContext); + } +} \ No newline at end of file diff --git a/packages/bef/lib/session/bef_session_service.ts b/packages/bef/lib/session/bef_session_service.ts index 85eb16d4dd9..9b06e360a39 100644 --- a/packages/bef/lib/session/bef_session_service.ts +++ b/packages/bef/lib/session/bef_session_service.ts @@ -34,7 +34,6 @@ class BefSessionService { /** * 设置sessionId - * @param sessionId sessionId */ public setBeSessionId(sessionId: string, runtimeContext?: RuntimeContext) { this.handlingStrategy.setSessionId(sessionId, runtimeContext); diff --git a/packages/bef/lib/session/handling-strategies/bef-separated-session-handling-strategy.ts b/packages/bef/lib/session/handling-strategies/bef-separated-session-handling-strategy.ts index 42156ab0cd6..b6bf7cf3d9e 100644 --- a/packages/bef/lib/session/handling-strategies/bef-separated-session-handling-strategy.ts +++ b/packages/bef/lib/session/handling-strategies/bef-separated-session-handling-strategy.ts @@ -9,6 +9,7 @@ import { RuntimeContext } from '../../types'; * 隔离的BeSession处理策略 */ class BefSeparatedSessionHandlingStrategy extends SessionHandlingStrategy { + /** * 构造函数 */ @@ -24,6 +25,9 @@ class BefSeparatedSessionHandlingStrategy extends SessionHandlingStrategy { /** * 获取BeSessionId + * @summary + * 1、如果前端缓存存在:优先使用缓存中的BE会话; + * 2、如果缓存中的不存在:如果存在上次打开菜单时遗留的BE会话先关闭老BE会话,再创建新的BE会话 */ public getSessionId(runtimeContext?: RuntimeContext): Promise { const beSessionId = this.getSessionIdFromStorage(runtimeContext); @@ -35,6 +39,7 @@ class BefSeparatedSessionHandlingStrategy extends SessionHandlingStrategy { }); return sessionIdPromise; } + /** * 创建BeSessionId */ @@ -71,11 +76,14 @@ class BefSeparatedSessionHandlingStrategy extends SessionHandlingStrategy { requestConfig.headers = BefHttpUtil.appendCafRuntimeContext(requestConfig.headers, this.lastTimeUsedSessionId); requestConfig.headers = BefHttpUtil.appendCafRuntimeCommonVariable(requestConfig.headers, this.frameworkSessionId); - // 无论是否成功,统一置空cleardBeSessionId + // 无论关闭是否成功,不重复关闭 return this.httpClient.post(this.closeSessionUrl, null, requestConfig).then(() => { return true; + }).finally(() => { + this.lastTimeUsedSessionId = null; }); } + /** * 设置BeSessionId */ @@ -89,8 +97,13 @@ class BefSeparatedSessionHandlingStrategy extends SessionHandlingStrategy { */ public clearSessionId(runtimeContext?: RuntimeContext) { if (BefEnvUtil.isInFramework() === true) { + + // 菜单打开:清理该菜单相关的全部会话(风险:1、PC端不应该触发该逻辑,否则弹窗表单会有问题;2、PC端没有formToken参数恰好没有触发) + // TODO: 待优化 this.storageStrategy.removeItemsByScope(this.frameworkSessionId); } else { + + // 菜单外打开:1、先记录上次遗留的会话ID,以便对其进行关闭;2、移除上次的会话ID,以便重新创建 const sessionKey = this.getSessionStorageKey(runtimeContext); this.lastTimeUsedSessionId = this.getSessionIdFromStorage(runtimeContext); this.storageStrategy.removeItem(sessionKey); @@ -104,7 +117,10 @@ class BefSeparatedSessionHandlingStrategy extends SessionHandlingStrategy { const frmSessionId = this.getFrameworkSessionId(); const beSessionId = this.getSessionIdFromStorage(runtimeContext); + // 追加框架会话ID headers = BefHttpUtil.appendCafRuntimeCommonVariable(headers, frmSessionId); + + // 追加BE会话ID if (beSessionId) { headers = BefHttpUtil.appendCafRuntimeContext(headers, beSessionId); headers = BefHttpUtil.appendSessionId(headers, beSessionId); @@ -122,14 +138,19 @@ class BefSeparatedSessionHandlingStrategy extends SessionHandlingStrategy { * 获取某个Repository对应的BeSession的唯一key */ protected getSessionStorageKey(runtimeContext?: RuntimeContext): string { + + // 获取会话ID let sessionId: string = this.frameworkSessionId; if (runtimeContext) { sessionId = this.getFrameworkSessionId(); } + + // 获取标签页ID const tabId = runtimeContext && runtimeContext.tabId; if (tabId) { return `${sessionId}_${tabId}_${this.baseUrl}`; } + return `${sessionId}_${this.baseUrl}`; } } diff --git a/packages/bef/lib/session/handling-strategies/handling-strategy-factory.ts b/packages/bef/lib/session/handling-strategies/handling-strategy-factory.ts index e46a2ec8b23..4b4b684531c 100644 --- a/packages/bef/lib/session/handling-strategies/handling-strategy-factory.ts +++ b/packages/bef/lib/session/handling-strategies/handling-strategy-factory.ts @@ -9,6 +9,7 @@ import { BefUnifiedSessionHandlingStrategy } from './bef-unified-session-handlin * BeSession处理策略工厂 */ class BefSessionHandlingStrategyFactory { + /** * 创建BeSession处理策略 */ @@ -23,6 +24,8 @@ class BefSessionHandlingStrategyFactory { if (handlingStrategyName === 'UnifiedSession') { return new BefUnifiedSessionHandlingStrategy(storageStrategy, frmSessionService, httpClient, beBaseUrl, injector); } else { + + // 默认策略 return new BefSeparatedSessionHandlingStrategy(storageStrategy, frmSessionService, httpClient, beBaseUrl, injector); } } diff --git a/packages/bef/lib/session/handling-strategies/handling-strategy.ts b/packages/bef/lib/session/handling-strategies/handling-strategy.ts index 6a19181f559..3eea06cb945 100644 --- a/packages/bef/lib/session/handling-strategies/handling-strategy.ts +++ b/packages/bef/lib/session/handling-strategies/handling-strategy.ts @@ -40,7 +40,7 @@ abstract class SessionHandlingStrategy { /** * 上次使用的会话id */ - protected lastTimeUsedSessionId: string; + protected lastTimeUsedSessionId: string | null; /** * injector */ @@ -75,6 +75,8 @@ abstract class SessionHandlingStrategy { /** * 获取框架SessionId * TODO: 暂不支持runtimeContext + * @summary + * 获取框架的会话,即框架参数中的cvft的值 */ public getFrameworkSessionId() { return this.frameworkSessionId; diff --git a/packages/bef/lib/session/storage-strategies/session-storage-strategy.ts b/packages/bef/lib/session/storage-strategies/session-storage-strategy.ts index 965ec1d267b..01de5335a56 100644 --- a/packages/bef/lib/session/storage-strategies/session-storage-strategy.ts +++ b/packages/bef/lib/session/storage-strategies/session-storage-strategy.ts @@ -87,7 +87,7 @@ class SessionStorageStrategy implements StorageStrategy { /** * 设置全部BeSessions到SessionStorage */ - setAllBeSessions(beSessions: any): void { + private setAllBeSessions(beSessions: any): void { const beSessionsString = JSON.stringify(beSessions); window.sessionStorage.setItem(this.sessionStorageKey, beSessionsString); } diff --git a/packages/code-editor/package.json b/packages/code-editor/package.json index e8232379c22..6e7d22ab1ff 100644 --- a/packages/code-editor/package.json +++ b/packages/code-editor/package.json @@ -15,7 +15,7 @@ "check": "vue-tsc --noEmit", "build": "vue-tsc --noEmit && vite build", "build:lib": "node --max-old-space-size=8192 ./scripts/index.js build", - "build:system": "farris-cli build -c ./vite.config.build.ts" + "build:system": "farris-cli build -c ./farris.config.mjs" }, "dependencies": { "@farris/ui-vue": "workspace:^", diff --git a/packages/command-services/lib/dialog.service.ts b/packages/command-services/lib/dialog.service.ts index 8f05a598f4d..149d031b934 100644 --- a/packages/command-services/lib/dialog.service.ts +++ b/packages/command-services/lib/dialog.service.ts @@ -173,16 +173,14 @@ export class DialogService { resizeable: true, enableEsc: true, showMaxButton: true, - showCloseButton: true + showCloseButton: true }; // 组件实例上的配置 instanceDialogConfig = instanceDialogConfig || {}; - // 构件中的窗口配置 - const { title } = dialogConfig; - - const newLookupDialogProps = { ...defaultDialogConfig, ...instanceDialogConfig, title }; + // 构造新的配置 + const newLookupDialogProps = { ...defaultDialogConfig, ...instanceDialogConfig, ...dialogConfig }; this.stripUndefinedProps(newLookupDialogProps); return { @@ -198,11 +196,13 @@ export class DialogService { return null; } - let modalConfig = {}; if (typeof config === 'string') { - modalConfig = JSON.parse(config); - } else { - modalConfig = Object.assign({}, config); + return JSON.parse(config); + } + + const modalConfig = Object.assign({}, config); + if (Object.keys(modalConfig).length === 0) { + return null; } return modalConfig; diff --git a/packages/command-services/lib/form-notify.service.ts b/packages/command-services/lib/form-notify.service.ts index fc032a34b32..51909ac5c87 100644 --- a/packages/command-services/lib/form-notify.service.ts +++ b/packages/command-services/lib/form-notify.service.ts @@ -15,7 +15,7 @@ export class FormNotifyService { if (this.injector) { this.notifyService = this.injector.get(NOTIFY_SERVICE_TOKEN); this.notifyService.globalConfig.position = 'top-center'; - this.notifyService.globalConfig.top = 150; + this.notifyService.globalConfig.top = 20; } } diff --git a/packages/command-services/lib/navigation-event.service.ts b/packages/command-services/lib/navigation-event.service.ts index bb00f23b76e..7aca5ed3d83 100644 --- a/packages/command-services/lib/navigation-event.service.ts +++ b/packages/command-services/lib/navigation-event.service.ts @@ -1,10 +1,14 @@ import { RuntimeFrameworkService } from './rtf.service'; import { QuerystringService } from './querystring.service'; -import { TAB_EVENT } from './types'; +import { TAB_EVENT, TabClosingConfirmResult } from './types'; import { CommandContext, Token } from '@farris/devkit-vue'; import { NavigationHistoryService } from './navigation-history.service'; export class NavigationEventService { + + /** + * 命令上下文 + */ public commandContext: CommandContext; /** * 关闭后事件处理器 @@ -13,12 +17,20 @@ export class NavigationEventService { /** * 关闭前处理器 */ - private onClosingListeners: Map Promise>; + private onClosingListeners: Map Promise>; /** - * 框架页签切换事件 + * 切换事件处理器 */ private onTabSwitchListeners: Map void>; + + /** + * 刷新事件处理器 + */ private onTabRefreshListeners: Map void>; + + /** + * 获取查询参数 + */ private get querystrings() { const params = this.querystringService.parse(window.location.hash); // 修正formToken @@ -27,17 +39,25 @@ export class NavigationEventService { } return params; } + + /** + * 构造函数 + */ constructor( private runtimeFrameworkService: RuntimeFrameworkService, private querystringService: QuerystringService, private navigationHistoryService: NavigationHistoryService ) { this.onClosedListeners = new Map void>(); - this.onClosingListeners = new Map Promise>(); + this.onClosingListeners = new Map Promise>(); this.onTabSwitchListeners = new Map void>(); this.onTabRefreshListeners = new Map void>(); this.registerEvent(); } + + /** + * 向框架注册事件 + */ public registerEvent() { const options = this.querystrings; // 注册标签页切换事件 @@ -47,6 +67,10 @@ export class NavigationEventService { // 注册标签页关闭前事件 this.runtimeFrameworkService.addEventListener(TAB_EVENT.onTabClosing, (e) => this.handleTabClosingEvent(e), options); } + + /** + * 处理标签页切换事件 + */ private handleTabSwitchEvent(e: any) { if (!e) { return; @@ -65,10 +89,10 @@ export class NavigationEventService { } this.fireTabSwitchEvent(e); } + /** - * 触发tab切换事件 - * @param e e - */ + * 触发标签页切换事件 + */ private fireTabSwitchEvent(e: any) { if (!this.onTabSwitchListeners || this.onTabSwitchListeners.size < 1) { return; @@ -79,8 +103,9 @@ export class NavigationEventService { } }); } + /** - * 标签页关闭前事件 + * 处理Tab闭前事件 */ private handleTabClosingEvent(event: any) { if (!event) { @@ -101,37 +126,51 @@ export class NavigationEventService { }); } } + /** - * 触发关闭前事件 + * 触发标签页关闭前事件 */ private fireTabClosingEvent(e: any): Promise { if (!this.onClosingListeners || this.onClosingListeners.size < 1) { return Promise.resolve(true); } const listeners = Array.from(this.onClosingListeners.values()); - // const result$ = from(listeners); - // 用户拒绝 - let userRejected = false; + + // 用户已确认(点击了确定或取消) + let userConfirmed = false; + let userConfirmResult: boolean | undefined; const resultPromise = listeners.reduce((promiseChain: Promise, handle) => { - return promiseChain.then(chainResults => { - // 如果用户已经拒绝,则跳过后续的处理 - if (userRejected) { - return chainResults; - } + return promiseChain.then((chainResults: TabClosingConfirmResult[]) => { + + const extraOptions = {userConfirmed, userConfirmResult}; + // 处理当前的 handle,只取第一个结果 - return handle(e).then(result => { - // 如果用户拒绝,则设置标志 - userRejected = !result; + return handle(e, extraOptions).then((result: TabClosingConfirmResult) => { + + // 如果用户点击了确定或取消,则终止 + userConfirmed = result.confirmType === 'User'; + if (result.confirmType === 'User') { + userConfirmed = true; + userConfirmResult = result.confirmResult; + } + // 将结果添加到结果链中 return [...chainResults, result]; }); + }); }, Promise.resolve([])); - return resultPromise.then(chainResults => { + + // 如果所有用户返回true,则关闭标签页 + return resultPromise.then((chainResults: TabClosingConfirmResult[]) => { + // 检查是否所有的结果都是 true - return chainResults.every((result: any) => result); + return chainResults.every((result: TabClosingConfirmResult) => { + return result.confirmResult === true; + }); }); } + /** * 标签页关闭后事件 */ @@ -151,9 +190,9 @@ export class NavigationEventService { } this.fireTabClosedEvent(e); } + /** - * 触发关闭后事件 - * @param e event + * 触发标签页关闭后事件 */ private fireTabClosedEvent(e: any) { if (!this.onClosedListeners || this.onClosedListeners.size < 1) { @@ -165,6 +204,10 @@ export class NavigationEventService { } }); } + + /** + * 触发标签页刷新事件 + */ private fireTabRefreshEvent() { if (!this.onTabRefreshListeners || this.onTabRefreshListeners.size < 1) { return; @@ -176,6 +219,7 @@ export class NavigationEventService { }); } // #endregion + /** * 注册事件监听器 * @param eventType 事件类型 onTabClosed @@ -198,6 +242,7 @@ export class NavigationEventService { } return null; } + /** * 移除事件监听器 * @param eventType 事件类型 @@ -211,6 +256,7 @@ export class NavigationEventService { } return false; } + /** * 清空事件监听器 * @param eventType 事件类型 @@ -222,8 +268,9 @@ export class NavigationEventService { this.onClosingListeners.clear(); } } + /** - * 刷新数据 + * 刷新标签页数据 */ private refresh() { this.fireTabRefreshEvent(); diff --git a/packages/command-services/lib/navigation-middleware.service.ts b/packages/command-services/lib/navigation-middleware.service.ts index 0b0cc6a802a..df544544190 100644 --- a/packages/command-services/lib/navigation-middleware.service.ts +++ b/packages/command-services/lib/navigation-middleware.service.ts @@ -1,4 +1,4 @@ -import { Token, ViewModel, ViewModelState } from '@farris/devkit-vue'; +import { Token, ViewModel, ViewModelState, IDisposable } from '@farris/devkit-vue'; import { NavigationService } from './navigation.service'; import { TAB_EVENT } from './types'; import { FormMessageService } from './form-message.service'; @@ -7,7 +7,16 @@ import { EntityChangeService } from './entity-change.service'; import { EndEditService } from './end-edit.service'; import { LocaleService } from './locale'; -export class NavigationMiddlewareService { +export class NavigationMiddlewareService implements IDisposable { + + /** + * 事件监听Token + */ + private listenerTokens: string[]; + + /** + * 构造函数 + */ constructor( private navigationService: NavigationService, private formMessageService: FormMessageService, @@ -15,16 +24,38 @@ export class NavigationMiddlewareService { private viewModel: ViewModel, private entityChangeService: EntityChangeService, private endEditService: EndEditService - ) { } + ) { + this.listenerTokens = []; + this.registerToModule(); + } + /** * 菜单关闭前 */ public onClosing() { - this.navigationService.addEventListener(TAB_EVENT.onTabClosing, (options) => { + const listenerToken = this.navigationService.addEventListener(TAB_EVENT.onTabClosing, (options: any, extraOptions?: any) => { + + // 如果用户已经手工确认了是否关闭菜单,以用户选择为准,不再重复确认 + if (extraOptions && extraOptions.userConfirmed) { + + // 用户已经确定不关闭菜单 + if (extraOptions.userConfirmResult === false) { + return Promise.resolve({confirmResult:false, confirmType: 'User'}); + } else { + + // 用户已经确定关闭菜单 + return this.cancelDataService.cancel(false).then(() => { + return {confirmResult: true, confirmType: 'User'}; + }); + } + } + + // 判断是否已经有关闭前的确认框 const isConfirming = this.viewModel.getModule().getContext().getParam('ON_CLOSING_CONFIRM') || false; if (isConfirming) { - return Promise.resolve(false); + return Promise.resolve({confirmResult:false, confirmType: 'User'}); } + // 检测变更前先结束编辑 this.endEditService.endEdit(); return this.entityChangeService.hasChanges().then((changed: boolean) => { @@ -33,26 +64,52 @@ export class NavigationMiddlewareService { if (options && options.beforeCloseHandle && typeof options.beforeCloseHandle === 'function') { options.beforeCloseHandle({ selectedChange: true }); } + + // 打开确认提示框 this.viewModel.getModule().getContext().setParam('ON_CLOSING_CONFIRM', true); const confirm = this.formMessageService.confirm(LocaleService.translate('confirmClosing')); return confirm.then((result: boolean) => { this.viewModel.getModule().getContext().setParam('ON_CLOSING_CONFIRM', false); + + // 如果用户选择了确定,执行取消并关闭Tab关闭 if (result) { - return this.cancelDataService.cancel(false).then(() => true); + return this.cancelDataService.cancel(false).then(() => { + return {confirmResult:true, confirmType: 'User'}; + }); } - return Promise.resolve(false); - } - ); + + // 否则返回false,阻止Tab页关闭 + return Promise.resolve({confirmResult:false, confirmType: 'User'}); + }); } else { - return Promise.resolve(true); + + // 未检测到变更,关闭Tab页 + return Promise.resolve({confirmResult:true, confirmType: 'NoChange'}); } }).catch((error) => { return this.formMessageService.confirm(LocaleService.translate('hasChangeCheckFaild')).then((result: boolean) => { - return Promise.resolve(result); + if (result) { + return Promise.resolve({confirmResult:true, confirmType: 'User'}); + } else { + return Promise.resolve( {confirmResult:false, confirmType: 'User'}); + } }); }); }); + + if (listenerToken) { + this.listenerTokens.push(listenerToken); + } + } + + /** + * 注册到模块 + */ + public registerToModule() { + const module = this.viewModel.getModule(); + module.registerDisposable(this); } + /** * 获取tabid,如果targetId存在则直接使用targetId * @description 将用户要查看的数据id转换为运行框架需要的tabId @@ -73,4 +130,13 @@ export class NavigationMiddlewareService { } return paramId; } + + /** + * 释放监听 + */ + public dispose(): void { + this.listenerTokens.forEach((listenerToken) => { + this.navigationService.removeEventListener(TAB_EVENT.onTabClosing, listenerToken); + }) + } } \ No newline at end of file diff --git a/packages/command-services/lib/navigation.service.ts b/packages/command-services/lib/navigation.service.ts index 6b5067d54a2..1b727485313 100644 --- a/packages/command-services/lib/navigation.service.ts +++ b/packages/command-services/lib/navigation.service.ts @@ -274,9 +274,17 @@ export class NavigationService { * @param handler * @returns */ - public addEventListener(eventType: string, handler: (options: any) => any): string | null { + public addEventListener(eventType: string, handler: (options: any, extraOptions?: any) => any): string | null { return this.navigationEventService.addEventListener(eventType, handler); } + + /** + * 删除注册的事件 + */ + public removeEventListener(eventType: string, key: string) { + this.navigationEventService.removeEventListener(eventType, key); + } + private resolveBizMetadataId(baseMetadataId: string, dim1: string, dim2: string) { if (!dim1) { dim1 = 'public'; diff --git a/packages/command-services/lib/types.ts b/packages/command-services/lib/types.ts index 4227e18c14f..0c1d787b0de 100644 --- a/packages/command-services/lib/types.ts +++ b/packages/command-services/lib/types.ts @@ -7,21 +7,36 @@ export const AppType = { }; export const TAB_EVENT = { + /** * Tab关闭后 */ onTabClosed: 'FuncClosed', + /** * Tab关闭前 */ onTabClosing: 'beforeFuncCloseEvent', + /** * Tab切换 */ onTabSwitched: 'funcSwitchEvent', + + /** + * Tab刷新 + */ onTabRefresh: 'tabRefresh' }; +/** + * 标签页关闭前确认结果 + */ +export interface TabClosingConfirmResult { + confirmResult: boolean; + confirmType: 'User' | 'NoChange' +} + export const TAB_QUERY_STRING = { TabId: 'tabId', AppType: 'appType', diff --git a/packages/designer/public/assets/farris-all.css b/packages/designer/public/assets/farris-all.css index f9fbcd40030..e6e62aefe20 100644 --- a/packages/designer/public/assets/farris-all.css +++ b/packages/designer/public/assets/farris-all.css @@ -1,2 +1,2 @@ -/**2025-07-30 11:54:40**/ -@charset "UTF-8";.rtv-container .toolbar button:active,.rtv-container .toolbar button:focus,[tabindex="-1"]:focus{outline:0!important}body,caption{text-align:left}.f-calendar-month-view td,.f-icon::before,progress,sub,sup{vertical-align:baseline}.fixed-bottom,.fixed-top{z-index:1030;left:0;right:0}.f-page-header-base>.col,.f-page-header-base>[class*=col-],.f-utils-nogutters>.col,.f-utils-nogutters>[class*=col-]{padding-left:0;padding-right:0}.f-utils-fill-auto{flex-shrink:1;flex-grow:1;flex-basis:0;overflow-x:hidden;overflow-y:auto}.f-cmp-footer-hasgap,.f-page-is-managelist .f-section+.f-section,.f-page-is-managelist .f-struct-wrapper+.f-struct-wrapper>.f-section,.f-section-hasgap{margin:.5rem 0 0}.f-cmp-footer-hasgap::before,.f-page-is-managelist .f-section+.f-section::before,.f-page-is-managelist .f-struct-wrapper+.f-struct-wrapper>.f-section::before,.f-section-hasgap::before{content:"";position:absolute;height:.5rem;background:#EFF2F4;left:0;right:0;top:-.5rem}.accordion .card .card-header,.f-col-h1,.f-col-h10,.f-col-h11,.f-col-h12,.f-col-h2,.f-col-h3,.f-col-h4,.f-col-h5,.f-col-h6,.f-col-h7,.f-col-h8,.f-col-h9,.f-col-w1,.f-col-w10,.f-col-w11,.f-col-w12,.f-col-w2,.f-col-w3,.f-col-w4,.f-col-w5,.f-col-w6,.f-col-w7,.f-col-w8,.f-col-w9,.f-section-header .f-title,.f-tmpl-for-title-withline,.farris-panel .card .card-header,.rtv-container .toolbar .btns .btn-group button i.f-icon,sub,sup{position:relative}.f-section-header .f-title,.f-tmpl-for-title-withline{color:var(--f-text-01);display:inline-flex;align-items:center;line-height:1.375rem;overflow:hidden;padding:0 0 0 .75rem}article,aside,figcaption,figure,footer,header,hgroup,legend,main,nav,section{display:block}label,output{display:inline-block}.f-section-header .f-title>*,.f-tmpl-for-title-withline>*{margin:0 .625rem 0 0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn,.custom-control-label,dl,ol,ol ol,ol ul,ul,ul ol,ul ul{margin-bottom:0}dd,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem}.rtv-container.rtv-container-week .header-cell>span,dd{margin-left:0}.f-section-header .f-title .f-title-text,.f-tmpl-for-title-withline .f-title-text{font-size:.9375rem;line-height:1.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-section-header .f-title .f-title-subtitle,.f-tmpl-for-title-withline .f-title-subtitle{font-size:.8125rem;color:var(--f-text-08);line-height:1.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-section-header .f-title::before,.f-tmpl-for-title-withline::before{content:"";width:.25rem;height:1rem;background:var(--f-theme-03);border-radius:2px;position:absolute;top:50%;left:0;margin-top:-.5rem}dl,h1,h2,h3,h4,h5,h6,ol,p,pre,ul{margin-top:0}:root{--f-theme-01:#0E6DED;--f-theme-02:linear-gradient(135deg, #0E6DED 0%, #1B75EF 100%);--f-theme-03:#2A87FF;--f-theme-04:linear-gradient(135deg, #2A87FF 0%, #328BFF 100%);--f-theme-05:#529DFF;--f-theme-06:linear-gradient(135deg, #529DFF 0%, #559FFF 100%);--f-theme-07:linear-gradient(214deg, #3F65FF 0%, #4D9AFF 100%);--f-theme-08:#6388FF;--f-theme-09:linear-gradient(46deg, #2E77FF 0%, #2A87FF 100%);--f-theme-10:#2A62AB;--f-theme-11:linear-gradient(135deg, #2A87FF 0%, #328BFF 100%);--f-theme-12:linear-gradient(135deg, #2A87FF 0%, #328BFF 100%);--f-theme-13:linear-gradient(135deg, rgba(42, 135, 255, 0.1) 0%, rgba(50, 139, 255, 0.1) 100%);--f-theme-more-02:#2E77FF;--f-aid-01:#95BEF1;--f-aid-02:#DBE9FF;--f-aid-03:#E8F2FF;--f-aid-04:#EFF5FF;--f-aid-05:#CFEDFF;--f-aid-06:#EFF2F4;--f-aid-07:linear-gradient(195deg, #FFFBEB 0%, #EFF8F8 100%);--f-aid-08:#F0F6FF;--f-aid-09:#F7FAFF;--f-aid-10:#95C3FF;--f-ornament-01:linear-gradient(135deg, #FC8249 0%, #FE9539 100%);--f-ornament-02:linear-gradient(135deg, #1FC8DC 0%, #41D2BD 100%);--f-ornament-03:linear-gradient(135deg, #4190FF 0%, #657CFF 100%);--f-ornament-04:linear-gradient(135deg, #8B82FF 0%, #A082FF 100%);--f-ornament-05:linear-gradient(135deg, #4EC87A 0%, #52D389 100%);--f-ornament-01-start:#FC8249;--f-ornament-02-start:#1FC8DC;--f-ornament-03-start:#4190FF;--f-ornament-04-start:#8B82FF;--f-ornament-05-start:#4EC87A;--f-neutral-00:#fff;--f-neutral-00-rgb:255,255,255;--f-neutral-01:#303C53;--f-neutral-02:#AEB5C6;--f-neutral-03:#CCD1DD;--f-neutral-04:#D9DEE7;--f-neutral-05:#DEE4ED;--f-neutral-06:#E6E9F0;--f-neutral-07:#E9ECF3;--f-neutral-08:#E8EBF2;--f-neutral-09:#F1F3F7;--f-neutral-10:#F5F6F9;--f-neutral-11:#F7F8FB;--f-neutral-12:#FFFFFF;--f-neutral-13:#E4E7EF;--f-neutral-14:#FAFAFC;--f-neutral-15:#1F2329;--f-neutral-15-rgb:31,35,41;--f-neutral-16:#013364;--f-neutral-17:#031233;--f-neutral-18:rgba(255, 255, 255, 0.7);--f-neutral-19:rgba(255, 255, 255, 0.85);--f-neutral-20:#ffffff;--f-neutral-21:#334052;--f-text-00:#fff;--f-text-01:#000;--f-text-02:#2D2F33;--f-text-03:#424347;--f-text-04:#5A5E66;--f-text-05:#6080AD;--f-text-06:#747B8B;--f-text-07:#848C9A;--f-text-08:#A8ADB8;--f-text-09:#B4BCCC;--f-text-10:#C7CFDD;--f-text-11:#ffffff;--f-text-12:#C7D4EE;--f-text-13:rgba(255, 255, 255, 0.85);--f-semantic-info-01:#4D9AFF;--f-semantic-info-02:#AED1FF;--f-semantic-info-03:#EEF5FF;--f-semantic-info-04:linear-gradient(135deg, #657CFF 0%, #4190FF 100%);--f-semantic-submit-01:#62CBCD;--f-semantic-submit-02:#A7E0E1;--f-semantic-submit-03:#F3FBFB;--f-semantic-submit-04:linear-gradient(135deg, #12BFD3 0%, #41D5B9 100%);--f-semantic-success-01:#6CC77F;--f-semantic-success-02:#B5E3BF;--f-semantic-success-03:#F0FAF4;--f-semantic-success-04:linear-gradient(135deg, #3CA78D 0%, #7BCA8B 100%);--f-semantic-warning-01:#F5A144;--f-semantic-warning-02:#FAD0A1;--f-semantic-warning-03:#FEF5EC;--f-semantic-warning-04:linear-gradient(135deg, #FC8249 0%, #FE9539 100%);--f-semantic-warning-06:#F7B500;--f-semantic-danger-01:#F46160;--f-semantic-danger-02:#F9B0AF;--f-semantic-danger-03:#FDEFEF;--f-semantic-danger-04:linear-gradient(135deg, #E55875 0%, #FF7878 100%)}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}.popover-tips,body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif}body{margin:0;font-size:.8125rem;font-weight:400;line-height:1.4286;color:var(--f-text-02);background-color:#fff}.text-monospace,code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}p{margin-bottom:1rem}abbr[data-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{padding:0}li{list-style:none}dt{font-weight:700}blockquote,figure{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--f-theme-03);text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:var(--f-theme-05);text-decoration:none}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-size:1em}pre{margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:var(--f-text-08);caption-side:bottom}th{text-align:inherit}label{margin-bottom:.3125rem}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.display-1,.display-2,.display-3,.display-4{line-height:1.2}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:400;color:inherit}.blockquote,.table,hr{margin-bottom:1rem}.display-1,.display-2,.display-3,.display-4,.lead{font-weight:300}.h1,h1{font-size:1.625rem}.h2,h2{font-size:1.5rem}.h3,h3{font-size:1.375rem}.h4,h4{font-size:1.25rem}.accordion .card .card-header .panel-item-title,.farris-panel .card .card-header .panel-item-title,.h5,h5{font-size:1rem;line-height:1.375rem}.h5,h5{font-size:1rem}.btn-lg,.h6,h6{font-size:.875rem}.lead{font-size:1.015625rem}.display-1{font-size:6rem}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-4{font-size:3.5rem}hr{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.015625rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"— "}.clearfix::after,.custom-control-label::after,.custom-control-label::before{content:""}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:var(--f-theme-03)!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:var(--f-semantic-success-01)!important}.bg-info{background-color:var(--f-semantic-info-01)!important}.bg-warning{background-color:var(--f-semantic-warning-01)!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#343a40!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid var(--f-neutral-06)!important}.border-top{border-top:1px solid var(--f-neutral-06)!important}.border-right{border-right:1px solid var(--f-neutral-06)!important}.border-bottom{border-bottom:1px solid var(--f-neutral-06)!important}.border-left{border-left:1px solid var(--f-neutral-06)!important}.border-0{border:0!important}.rounded-right,.rounded-top{border-top-right-radius:6px!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:6px!important}.rounded-left,.rounded-top{border-top-left-radius:6px!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:6px!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:var(--f-theme-03)!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:var(--f-semantic-success-01)!important}.border-info{border-color:var(--f-semantic-info-01)!important}.border-warning{border-color:var(--f-semantic-warning-01)!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:6px!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:888px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media (min-width:1690px){.d-el-none{display:none!important}.d-el-inline{display:inline!important}.d-el-inline-block{display:inline-block!important}.d-el-block{display:block!important}.d-el-table{display:table!important}.d-el-table-row{display:table-row!important}.d-el-table-cell{display:table-cell!important}.d-el-flex{display:flex!important}.d-el-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.flex-row{flex-direction:row!important}.f-utils-flex-column,.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:888px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:888px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{position:fixed;top:0}.fixed-bottom{position:fixed;bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.f-max-width-auto,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .farris-title-auto{max-width:none!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:888px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width:1690px){.flex-el-row{flex-direction:row!important}.flex-el-column{flex-direction:column!important}.flex-el-row-reverse{flex-direction:row-reverse!important}.flex-el-column-reverse{flex-direction:column-reverse!important}.flex-el-wrap{flex-wrap:wrap!important}.flex-el-nowrap{flex-wrap:nowrap!important}.flex-el-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-el-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-el-grow-0{flex-grow:0!important}.flex-el-grow-1{flex-grow:1!important}.flex-el-shrink-0{flex-shrink:0!important}.flex-el-shrink-1{flex-shrink:1!important}.justify-content-el-start{justify-content:flex-start!important}.justify-content-el-end{justify-content:flex-end!important}.justify-content-el-center{justify-content:center!important}.justify-content-el-between{justify-content:space-between!important}.justify-content-el-around{justify-content:space-around!important}.align-items-el-start{align-items:flex-start!important}.align-items-el-end{align-items:flex-end!important}.align-items-el-center{align-items:center!important}.align-items-el-baseline{align-items:baseline!important}.align-items-el-stretch{align-items:stretch!important}.align-content-el-start{align-content:flex-start!important}.align-content-el-end{align-content:flex-end!important}.align-content-el-center{align-content:center!important}.align-content-el-between{align-content:space-between!important}.align-content-el-around{align-content:space-around!important}.align-content-el-stretch{align-content:stretch!important}.align-self-el-auto{align-self:auto!important}.align-self-el-start{align-self:flex-start!important}.align-self-el-end{align-self:flex-end!important}.align-self-el-center{align-self:center!important}.align-self-el-baseline{align-self:baseline!important}.align-self-el-stretch{align-self:stretch!important}.float-el-left{float:left!important}.float-el-right{float:right!important}.float-el-none{float:none!important}.m-el-0{margin:0!important}.mt-el-0,.my-el-0{margin-top:0!important}.mr-el-0,.mx-el-0{margin-right:0!important}.mb-el-0,.my-el-0{margin-bottom:0!important}.ml-el-0,.mx-el-0{margin-left:0!important}.m-el-1{margin:.25rem!important}.mt-el-1,.my-el-1{margin-top:.25rem!important}.mr-el-1,.mx-el-1{margin-right:.25rem!important}.mb-el-1,.my-el-1{margin-bottom:.25rem!important}.ml-el-1,.mx-el-1{margin-left:.25rem!important}.m-el-2{margin:.5rem!important}.mt-el-2,.my-el-2{margin-top:.5rem!important}.mr-el-2,.mx-el-2{margin-right:.5rem!important}.mb-el-2,.my-el-2{margin-bottom:.5rem!important}.ml-el-2,.mx-el-2{margin-left:.5rem!important}.m-el-3{margin:1rem!important}.mt-el-3,.my-el-3{margin-top:1rem!important}.mr-el-3,.mx-el-3{margin-right:1rem!important}.mb-el-3,.my-el-3{margin-bottom:1rem!important}.ml-el-3,.mx-el-3{margin-left:1rem!important}.m-el-4{margin:1.5rem!important}.mt-el-4,.my-el-4{margin-top:1.5rem!important}.mr-el-4,.mx-el-4{margin-right:1.5rem!important}.mb-el-4,.my-el-4{margin-bottom:1.5rem!important}.ml-el-4,.mx-el-4{margin-left:1.5rem!important}.m-el-5{margin:3rem!important}.mt-el-5,.my-el-5{margin-top:3rem!important}.mr-el-5,.mx-el-5{margin-right:3rem!important}.mb-el-5,.my-el-5{margin-bottom:3rem!important}.ml-el-5,.mx-el-5{margin-left:3rem!important}.p-el-0{padding:0!important}.pt-el-0,.py-el-0{padding-top:0!important}.pr-el-0,.px-el-0{padding-right:0!important}.pb-el-0,.py-el-0{padding-bottom:0!important}.pl-el-0,.px-el-0{padding-left:0!important}.p-el-1{padding:.25rem!important}.pt-el-1,.py-el-1{padding-top:.25rem!important}.pr-el-1,.px-el-1{padding-right:.25rem!important}.pb-el-1,.py-el-1{padding-bottom:.25rem!important}.pl-el-1,.px-el-1{padding-left:.25rem!important}.p-el-2{padding:.5rem!important}.pt-el-2,.py-el-2{padding-top:.5rem!important}.pr-el-2,.px-el-2{padding-right:.5rem!important}.pb-el-2,.py-el-2{padding-bottom:.5rem!important}.pl-el-2,.px-el-2{padding-left:.5rem!important}.p-el-3{padding:1rem!important}.pt-el-3,.py-el-3{padding-top:1rem!important}.pr-el-3,.px-el-3{padding-right:1rem!important}.pb-el-3,.py-el-3{padding-bottom:1rem!important}.pl-el-3,.px-el-3{padding-left:1rem!important}.p-el-4{padding:1.5rem!important}.pt-el-4,.py-el-4{padding-top:1.5rem!important}.pr-el-4,.px-el-4{padding-right:1.5rem!important}.pb-el-4,.py-el-4{padding-bottom:1.5rem!important}.pl-el-4,.px-el-4{padding-left:1.5rem!important}.p-el-5{padding:3rem!important}.pt-el-5,.py-el-5{padding-top:3rem!important}.pr-el-5,.px-el-5{padding-right:3rem!important}.pb-el-5,.py-el-5{padding-bottom:3rem!important}.pl-el-5,.px-el-5{padding-left:3rem!important}.m-el-auto{margin:auto!important}.mt-el-auto,.my-el-auto{margin-top:auto!important}.mr-el-auto,.mx-el-auto{margin-right:auto!important}.mb-el-auto,.my-el-auto{margin-bottom:auto!important}.ml-el-auto,.mx-el-auto{margin-left:auto!important}}.f-cmp-pt,.f-cmp-py{padding-top:.875rem!important}.f-cmp-pb,.f-cmp-py{padding-bottom:.875rem!important}.f-cmp-mr,.f-cmp-mx{margin-right:.875rem!important}.f-cmp-ml,.f-cmp-mx{margin-left:.875rem!important}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:888px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:var(--f-theme-03)!important}.text-secondary{color:#6c757d!important}.text-success{color:var(--f-semantic-success-01)!important}.text-warning{color:var(--f-semantic-warning-01)!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#343a40!important}.text-body{color:var(--f-text-02)!important}.text-muted{color:var(--f-text-08)!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}body{background:#f0f3f6}input::-ms-clear{display:none}input::-webkit-contacts-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;position:absolute;right:0}.f-utils-fill-flex-column,.f-utils-flex-column,.f-utils-flex-row,.f-utils-flex-row-wrap{display:flex!important;overflow:hidden}.h1,h1{line-height:2.125rem}.h2,h2{line-height:2}.h3,h3{line-height:1.875rem}.h4,h4{line-height:1.75rem}.btn-link,.h6,h6{line-height:1.25rem}.text-dark{color:var(--f-text-01)}.text-danger{color:var(--f-semantic-danger-01)!important}.text-info{color:var(--f-theme-05)!important}.font-small{font-size:12px!important}.font-middle{font-size:16px!important}.font-large{font-size:18px!important}.font-exlarge{font-size:24px!important}::-webkit-scrollbar{width:7px;height:7px;background-color:var(--f-neutral-14)}::-webkit-scrollbar-track{border-radius:0;background-color:var(--f-neutral-14);border:none;background-clip:padding-box}::-webkit-scrollbar-thumb{background-color:var(--f-neutral-03);border:none;background-clip:content-box;opacity:.6;border-radius:7px}::-webkit-scrollbar-thumb:hover{background:var(--f-text-06)}.f-cmp-mt{margin-top:.875rem!important}.f-cmp-mb{margin-bottom:.875rem!important}.f-cmp-mx-minus{margin-left:-.875rem!important;margin-right:-.875rem!important}.f-cmp-px{padding-left:.875rem!important;padding-right:.875rem!important}.f-cmp-p{padding:.875rem!important}.f-cmp-gutter{border-bottom:10px solid #EFF2F4}.f-split-border-b{border-bottom:1px solid var(--f-neutral-08)}.f-common-px{padding-left:.875rem;padding-right:.875rem}.f-col-h1,.f-col-h10,.f-col-h11,.f-col-h12,.f-col-h2,.f-col-h3,.f-col-h4,.f-col-h5,.f-col-h6,.f-col-h7,.f-col-h8,.f-col-h9,.f-col-w1,.f-col-w10,.f-col-w11,.f-col-w12,.f-col-w2,.f-col-w3,.f-col-w4,.f-col-w5,.f-col-w6,.f-col-w7,.f-col-w8,.f-col-w9{padding-right:14px;padding-left:14px;min-height:1px}.f-common-py{padding-top:.875rem;padding-bottom:.875rem}.f-common-py-form{padding-top:.875rem;padding-bottom:.5rem}.f-utils-absolute-all{top:0;bottom:0;position:absolute;right:0;left:0}.f-utils-fill-flex-column{flex-shrink:1;flex-grow:1;flex-basis:0;flex-direction:column!important}.f-utils-flex-row{flex-direction:row!important;flex-wrap:nowrap}.f-utils-flex-row-wrap{flex-direction:row!important;flex-wrap:wrap!important}.f-utils-fill-flex-row,.f-utils-fill-flex-row-wrap{flex-shrink:1;display:flex!important;overflow:hidden}.f-utils-fill-flex-row{flex-grow:1;flex-basis:0;flex-direction:row!important;flex-wrap:nowrap!important}.f-utils-fill-flex-row-wrap{flex-grow:1;flex-basis:0;flex-direction:row!important;flex-wrap:wrap!important}.f-utils-fill{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden}.f-utils-overflow-xhya{overflow-x:hidden!important;overflow-y:auto!important}.f-utils-overflow-xayh{overflow-y:hidden!important;overflow-x:auto!important}.f-utils-overflow-xaya{overflow:auto!important}.f-utils-overflow-hidden{overflow:hidden!important}.f-utils-overflow-auto{overflow:auto!important}.f-utils-hcenter-vcenter{display:flex;align-items:center;justify-content:center}.f-overflow-y-auto{overflow-y:auto!important}.f-overflow-y-hidden{overflow-y:hidden!important}.f-overflow-x-auto{overflow-x:auto!important}.f-overflow-x-hidden{overflow-x:hidden!important}@media (min-width:576px){.f-overflow-sm-y-auto{overflow-y:auto!important}.f-overflow-sm-y-hidden{overflow-y:hidden!important}.f-overflow-sm-x-auto{overflow-x:auto!important}.f-overflow-sm-x-hidden{overflow-x:hidden!important}}@media (min-width:768px){.f-overflow-md-y-auto{overflow-y:auto!important}.f-overflow-md-y-hidden{overflow-y:hidden!important}.f-overflow-md-x-auto{overflow-x:auto!important}.f-overflow-md-x-hidden{overflow-x:hidden!important}}@media (min-width:888px){.f-overflow-lg-y-auto{overflow-y:auto!important}.f-overflow-lg-y-hidden{overflow-y:hidden!important}.f-overflow-lg-x-auto{overflow-x:auto!important}.f-overflow-lg-x-hidden{overflow-x:hidden!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}.f-overflow-xl-y-auto{overflow-y:auto!important}.f-overflow-xl-y-hidden{overflow-y:hidden!important}.f-overflow-xl-x-auto{overflow-x:auto!important}.f-overflow-xl-x-hidden{overflow-x:hidden!important}}@media (min-width:1690px){.text-el-left{text-align:left!important}.text-el-right{text-align:right!important}.text-el-center{text-align:center!important}.f-overflow-el-y-auto{overflow-y:auto!important}.f-overflow-el-y-hidden{overflow-y:hidden!important}.f-overflow-el-x-auto{overflow-x:auto!important}.f-overflow-el-x-hidden{overflow-x:hidden!important}}.farris-overflow-y-auto{overflow-x:hidden!important;overflow-y:auto!important}.farris-overflow-y-hidden{overflow-x:hidden!important;overflow-y:hidden!important}.farris-overflow-hidden{overflow:hidden!important}.f-col-w1{width:8.3333333333%}.f-col-w2{width:16.6666666667%}.f-col-w3{width:25%}.f-col-w4{width:33.3333333333%}.f-col-w5{width:41.6666666667%}.f-col-w6{width:50%}.f-col-w7{width:58.3333333333%}.f-col-w8{width:66.6666666667%}.f-col-w9{width:75%}.f-col-w10{width:83.3333333333%}.f-col-w11{width:91.6666666667%}.f-col-w12{width:100%}.f-col-h1{height:8.3333333333%}.f-col-h2{height:16.6666666667%}.f-col-h3{height:25%}.f-col-h4{height:33.3333333333%}.f-col-h5{height:41.6666666667%}.f-col-h6{height:50%}.f-col-h7{height:58.3333333333%}.f-col-h8{height:66.6666666667%}.f-col-h9{height:75%}.f-col-h10{height:83.3333333333%}.f-col-h11{height:91.6666666667%}.f-col-h12{height:100%}.f-utils-text-break{white-space:normal!important;word-break:break-all!important}.f-text-emphasize{color:var(--f-text-01)!important}.f-text-light{color:var(--f-text-04)!important}.f-text-lighter{color:var(--f-text-08)!important}.f-text-mute{color:var(--f-text-09)!important}.f-text-two-line{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.5rem}.f-min-width-auto{min-width:auto!important}.f-width-auto{width:auto!important}.win11Scroll{overflow:overlay;scroll-behavior:smooth}.win11Scroll::-webkit-scrollbar{width:14px;height:14px;border-radius:7px}.win11Scroll::-webkit-scrollbar-thumb{display:none;background-clip:padding-box;border:6px solid transparent;border-radius:14px}.win11Scroll::-webkit-scrollbar-thumb:hover{border:4px solid transparent}.win11Scroll::-webkit-scrollbar-button:single-button{height:14px}.win11Scroll:hover::-webkit-scrollbar-thumb{display:block}.win11Scroll.show::-webkit-scrollbar-thumb{display:block}.win11Scroll::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.win11Scroll::-webkit-scrollbar-track{background-color:transparent}.win11Scroll.nobtn::-webkit-scrollbar:vertical{background:0 0}.win11Scroll.nobtn::-webkit-scrollbar:horizontal{background:0 0}.win11Scroll.nobtn::-webkit-scrollbar-button:single-button{height:0;width:0}.accordion,.farris-panel{border:1px solid var(--f-neutral-13)}.accordion .card,.farris-panel .card{border-top:0;background:var(--f-neutral-00);border-color:var(--f-neutral-13)}.accordion .card .card-header,.farris-panel .card .card-header{border-width:0;background-color:var(--f-neutral-00);color:var(--f-text-02);padding:.5265rem .875rem}.accordion .card .card-header:hover,.accordion .card.f-state-hover,.farris-panel .card .card-header:hover,.farris-panel .card.f-state-hover{color:var(--f-theme-05);border-color:var(--f-neutral-13);background-color:var(--f-neutral-00)}.accordion .card .card-body,.farris-panel .card .card-body{padding:.9375rem}.accordion .card.f-state-disabled .card-header,.farris-panel .card.f-state-disabled .card-header{color:var(--f-text-07);background-color:var(--f-neutral-00);border-color:var(--f-neutral-02)}.accordion .card.f-state-disabled .f-icon,.farris-panel .card.f-state-disabled .f-icon{display:none}.accordion .card.f-state-disabled .accordion-title,.farris-panel .card.f-state-disabled .accordion-title{color:var(--f-text-07)}.accordion .card.f-state-selected .card-header,.farris-panel .card.f-state-selected .card-header{color:var(--f-theme-01);background-color:var(--f-neutral-00);border-color:var(--f-neutral-13)}.accordion .accordion-title,.farris-panel .accordion-title{color:var(--f-text-02)}.accordion .f-accordion-collapse,.accordion .f-accordion-expand,.farris-panel .f-accordion-collapse,.farris-panel .f-accordion-expand{margin-top:-.3125rem;color:var(--f-neutral-01);font-size:1.25rem;width:1.25rem;height:1.25rem;vertical-align:middle}.accordion .f-accordion-collapse::before,.farris-panel .f-accordion-collapse::before{font-family:FarrisIcons;content:"\e013"}.accordion .f-accordion-expand::before,.farris-panel .f-accordion-expand::before{font-family:FarrisIcons;content:"\e015"}.accordion .card-header,.farris-panel .card-header{cursor:pointer}.accordion .panel-item-title,.farris-panel .panel-item-title{float:left}.accordion .panel-item-tool,.farris-panel .panel-item-tool{float:right}.accordion .panel-item-clear,.farris-panel .panel-item-clear{clear:both}.accordion .f-state-disabled,.farris-panel .f-state-disabled{pointer-events:none}.accordion .card,.farris-panel .card{border-left:0;border-right:0}.accordion .active,.farris-panel .active{height:initial;transition:height .35s ease}.accordion .inactive,.farris-panel .inactive{height:0;overflow:hidden;transition:height .35s ease}.farris-panel .card:not(:first-of-type) .card-header:first-child,.farris-panel .card:not(:first-of-type):not(:last-of-type){border-radius:0}.farris-panel .card:first-of-type{border-bottom-right-radius:0;border-bottom-left-radius:0}.farris-panel .card:last-of-type{border-bottom:0;border-top-left-radius:0;border-top-right-radius:0}.f-cmp-panel-pt-card-subgrid .card,.farris-panel-dividing-line .card{border-width:0}.f-cmp-panel-pt-card-subgrid .card .card-header,.farris-panel-dividing-line .card .card-header{border-width:0 0 1px;background:var(--f-neutral-00);border-color:var(--f-neutral-13)}.f-cmp-panel-pt-card-subgrid .card.f-state-selected .card-header,.farris-panel-dividing-line .card.f-state-selected .card-header{background-color:var(--f-neutral-00);border-color:var(--f-neutral-13);color:var(--f-theme-01)}.accordion .card .card-header .f-icon,.btn-secondary,.farris-panel .card .card-header .f-icon{color:var(--f-text-02)}.f-cmp-panel-pt-card-subgrid{margin:0}.f-cmp-panel-has-form .card .card-body{padding:0}.accordion .card .card-header:hover .f-icon,.btn-secondary:hover,.farris-panel .card .card-header:hover .f-icon{color:var(--f-theme-05)}.accordion .card.f-state-selected .card-header .f-icon,.farris-panel .card.f-state-selected .card-header .f-icon{color:var(--f-theme-01)}.rtv-container{width:100%;height:100%;display:flex;flex-direction:column;background:#fff}.rtv-container .room-subject{border-radius:2px}.rtv-container .room-subject dt{font-size:13px;text-overflow:ellipsis;overflow:hidden}.rtv-container .room-subject_category{padding:0 4px;border-radius:4px;margin-right:8px;font-size:12px;display:inline-block;line-height:20px;background:var(--f-aid-02);border:1px solid var(--f-theme-01)}.rtv-container .room-subject dd.other-info{margin:0;line-height:18px;color:var(--f-text-07);text-overflow:ellipsis;overflow:hidden;padding-top:3px}.rtv-container .text-center{align-items:center;justify-content:center}.rtv-container .toolbar{height:50px;width:100%;border-bottom:1px solid var(--f-neutral-07);display:flex;align-items:center;padding-left:20px}.rtv-container .toolbar .view-type{width:131px;height:32px;line-height:32px;background:var(--f-aid-04);border-radius:32px;display:flex;align-items:center}.rtv-container .toolbar .view-type .btn-day,.rtv-container .toolbar .view-type .btn-week{width:64px;height:30px;border-radius:32px;background:0 0;border:0;font-weight:400;cursor:pointer}.rtv-container .toolbar .view-type .btn-active{background:rgba(255,255,255,.75);box-shadow:0 4px 18px 0 rgba(2,75,193,.2);color:var(--f-theme-03);cursor:default}.rtv-container .toolbar .line{height:20px;width:20px;display:inline-block;border-right:1px solid var(--f-neutral-06);margin-right:20px}.rtv-container .toolbar .btns{display:flex;width:112px;margin-right:20px}.rtv-container .toolbar .btns button{height:26px;background:#FFF;border:1px solid #e8ebf2;box-shadow:0 2px 6px 0 rgba(31,35,41,.06);border-radius:6px;outline:0;cursor:pointer}.rtv-container .toolbar .btns .btn-today{width:50px;margin-right:5px}.rtv-container .toolbar .btns .btn-group{width:53px;flex-grow:1;display:flex}.rtv-container .toolbar .btns .btn-group button{width:26px}.rtv-container .toolbar .btns .btn-group button i.f-icon{left:-2px;top:2px}.rtv-container .toolbar .btns .btn-prev{border-radius:6px 0 0 6px}.rtv-container .toolbar .btns .btn-next{border-radius:0 6px 6px 0}.rtv-container .main{flex-grow:1;display:flex;flex-direction:column;overflow:hidden}.rtv-container .main .fixed-left{position:sticky!important;left:0;z-index:9;flex:none!important;width:300px}.rtv-container .main .roomname{align-items:center;justify-content:start;background-color:#fff!important}.rtv-container .main .header{height:40px;overflow:hidden;border-bottom:1px solid #E6E9F0}.rtv-container .main .body .room-cell,.rtv-container .main .header-cell{height:100%;border-right:1px solid var(--f-neutral-06);border-bottom:1px solid var(--f-neutral-06);display:flex}.rtv-container .main .header-row{display:flex;flex-direction:row;width:2700px;height:100%}.rtv-container .main .header-cell>span.time{margin-left:-20px;font-size:14px;color:var(--f-text-04);font-weight:500}.rtv-container .main .time-cell{width:100px;align-items:center}.rtv-container .main .body{flex-grow:1;height:100%}.rtv-container .main .body .room-row{min-height:62px;display:flex;flex-direction:row;width:2700px}.rtv-container .main .body .room-cell{position:relative}.rtv-container .main .body .room-cell .item-content{width:100px;position:absolute;left:0;flex-wrap:nowrap;display:flex;flex-direction:column;line-height:20px;justify-content:center;z-index:1;word-break:normal;white-space:nowrap;overflow:hidden;height:calc(100% - 4px);cursor:pointer}.rtv-container .main .body .room-cell .item-content:hover{box-shadow:2px 2px 7px #bebebe}.rtv-container .main .body .room-cell .item-content .item-content-wrap{border-radius:6px;background:var(--f-aid-02);width:100%;height:100%}.rtv-container .main .body .room-cell .item-content .item-content-wrap.gray{background-color:#f0f0f0}.rtv-container .main .body .room-cell .item-content .item-content-wrap.gray .room-subject_category{border:1px solid #ccc;background:#F2F3F5;color:#878d99}.rtv-container .main .body .room-cell .item-content .item-content-wrap.blue{background:#dae9ff}.rtv-container .main .body .room-cell .item-content .item-content-wrap.blue .room-subject_category{border:1px solid #9bf;background:#9bf;color:#fff}.rtv-container .main .body .room-cell .item-content .item-content-wrap.orange{background:#ffedda}.rtv-container .main .body .room-cell .item-content .item-content-wrap.orange .room-subject_category{border:1px solid #ff772e;background:#ff772e;color:#fff5ea}.rtv-container .main .body .room-cell .item-content .item-content-wrap.mintgreen{background:#daffe0}.rtv-container .main .body .room-cell .item-content .item-content-wrap.mintgreen .room-subject_category{border:1px solid #42fc57;background:#42fc57;color:#449e00}.rtv-container .main .body .room-cell .item-content .item-content-wrap.red{background:#ffdada}.rtv-container .main .body .room-cell .item-content .item-content-wrap.red .room-subject_category{border:1px solid #ff8383;background:#ffa4a4;color:#ae0000}.rtv-container .main .body .room-cell .item-content .item-content-wrap.pink{background:#f6daff}.rtv-container .main .body .room-cell .item-content .item-content-wrap.pink .room-subject_category{border:1px solid #f867d6;background:#f867d6;color:#ffe2ef}.rtv-container .main .body .room-cell .item-content .item-content-wrap.bluegreen{background:#dafffe}.rtv-container .main .body .room-cell .item-content .item-content-wrap.bluegreen .room-subject_category{border:1px solid #2ac3ac;background:#2ac3ac;color:#efffe5}.rtv-container .main .body .room-cell .item-content .selected{outline:var(--f-theme-05) solid 2px;outline-offset:-2px;border-radius:6px}.rtv-container.rtv-container-week .header-cell,.rtv-container.rtv-container-week .room-cell{flex:1}.rtv-container.rtv-container-week .header-row,.rtv-container.rtv-container-week .room-row{width:auto!important}.rtv-container.rtv-container-week .time-cell{line-height:20px;width:150px}.rtv-container.rtv-container-week .time-cell .week-day-subject{cursor:pointer;transition:all .1s ease}.rtv-container.rtv-container-week .time-cell .week-day-subject:hover{background-color:var(--f-aid-02)}.rtv-container.rtv-container-week .time-cell li.selected{border:1px solid var(--f-theme-01);border-radius:4px;background:var(--f-aid-02)}.rtv-container.rtv-container-week .time-cell .rtv-week-day{text-align:center;border-radius:10px;width:20px;margin:0 5px;font-size:13px}.rtv-container.rtv-container-week .time-cell .rtv-week-day.active{background-image:linear-gradient(135deg,var(--f-aid-10) 0,var(--f-theme-05) 100%);color:#fff}.rtv-container.rtv-container-week .time-cell .rtv-week-day-item:before{content:"●";margin-right:3px;top:-2px;position:relative}.reserve-detail-container{display:flex;flex-direction:column;background:#FFF;box-shadow:0 4px 12px 2px rgba(31,35,41,.1);border-radius:16px;width:368px;height:436px;transition:all .12s ease}.reserve-detail-container .detail-header{height:185px;background-image:linear-gradient(116deg,var(--f-aid-10) 0,var(--f-theme-05) 100%);border-radius:16px 16px 0 0}.reserve-detail-container .detail-header.gray{color:#fff;background-image:linear-gradient(116deg,#bcbebf 0,#909293 100%)}.reserve-detail-container .detail-header.blue{color:#fff;background-image:linear-gradient(116deg,#09F 0,#0AF 100%)}.reserve-detail-container .detail-header.orange{color:#fff;background-image:linear-gradient(116deg,#ffc78c 0,#ffab58 100%)}.reserve-detail-container .detail-header.mintgreen{color:#fff;background-image:linear-gradient(116deg,#72cc89 0,#00a804 100%)}.reserve-detail-container .detail-header.red{color:#fff;background-image:linear-gradient(116deg,#ff9797 0,#ff3939 100%)}.reserve-detail-container .detail-header.pink{color:#fff;background-image:linear-gradient(116deg,#f1b9fb 0,#d458ff 100%)}.reserve-detail-container .detail-header.bluegreen{color:#fff;background-image:linear-gradient(116deg,#59ddc9 0,#1694c5 100%)}.reserve-detail-container .detail-header .detail-toolbar{height:44px;justify-content:flex-end;align-items:center;padding-right:15px;display:flex}.reserve-detail-container .detail-header .detail-toolbar span.f-icon{font-size:14px;cursor:pointer;width:32px;height:32px;text-align:center;line-height:32px;border-radius:6px}.reserve-detail-container .detail-header .detail-toolbar span.f-icon:hover{background:rgba(255,255,255,.2)}.reserve-detail-container .detail-header .detail-title{flex:1;padding:0 24px;overflow:hidden}.reserve-detail-container .detail-header .detail-title .detail-place{font-size:16px}.reserve-detail-container .detail-header .detail-title div.title-content{margin:6px 0 16px;font-size:20px;line-height:28px}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge{height:18px;border-radius:4px;display:inline-block;font-size:12px;text-align:center;line-height:18px;padding:0 5px}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.gray{border:1px solid #ccc;background:#F2F3F5;color:#878d99}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.blue{border:1px solid #9bf;background:#9bf;color:#fff}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.pink{border:1px solid #f867d6;background:#f867d6;color:#ffe2ef}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.red{border:1px solid #ff8383;background:#ffa4a4;color:#ae0000}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.mintgreen{border:1px solid #42fc57;background:#42fc57;color:#449e00}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.orange{border:1px solid #ff772e;background:#ff772e;color:#fff5ea}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.bluegreen{border:1px solid #48fce0;background:#5efee6;color:#00b8bd}.reserve-detail-container .detail-header .detail-title .detail-timer{height:30px;font-size:14px;line-height:30px}.reserve-detail-container .detail-info-content{flex:1;padding:2px 2px 10px;color:#666;border-radius:0 0 16px 16px}.reserve-detail-container .detail-info-content ul{list-style:none;margin:0;padding:16px;font-size:14px}.reserve-detail-container .detail-info-content ul li{line-height:28px;display:flex;flex-direction:row}.f-calendar-day-view-header-primary,.reserve-detail-container .detail-info-content ul li span.detail-content{flex:1}.reserve-detail-container .detail-info-content ul li span.detail-subtitle{width:70px;display:inline-block}.shading-border-top{border-top:1px solid #fff!important}.f-avatar{position:relative;cursor:pointer;overflow:hidden}.f-avatar.f-avatar-readonly{cursor:default}.f-avatar.f-avatar-circle{border-radius:100%;overflow:hidden}.f-avatar.f-avatar-square{border-radius:0}.f-avatar .f-avatar-defult,.f-avatar .f-avatar-image{display:inline-block;width:100%;height:100%}.f-avatar .f-avatar-icon{display:none;position:absolute;left:0;right:0;top:0;bottom:0;align-items:center;justify-content:center;background:rgba(0,0,0,.3)}.f-avatar .f-avatar-icon .f-icon{font-size:24px;color:#fff}.f-avatar.f-avatar-circle .f-avatar-icon{border-radius:100%}.f-avatar.f-avatar-square .f-avatar-icon{border-radius:0}.f-avatar .f-avatar-upload-loading{position:absolute;left:0;top:0;display:inline-block;width:100%;height:100%;background-color:rgba(0,0,0,.15)}.f-avatar .f-avatar-upload-loading .loading-inner{position:absolute;width:100%;left:0;top:50%;margin-top:-25px;height:50px;line-height:50px;text-align:center;font-size:16px;color:#fff}.f-avatar:hover .f-avatar-icon{display:flex}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:1px solid transparent;padding:.1875rem .875rem;font-size:.8125rem;line-height:1.4286;border-radius:6px;transition:none}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn.disabled,.btn:disabled{opacity:1;box-shadow:none}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled).active:focus,.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled):active:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:var(--f-text-00);background:var(--f-theme-04);border-color:var(--f-theme-03);box-shadow:0 4px 10px 0 rgba(var(--f-theme-03),.2);position:relative;z-index:20}.btn-primary:hover,.btn-primary:not(:disabled):not(.disabled).focus,.btn-primary:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-primary:hover{color:var(--f-text-00);background:linear-gradient(135deg,#529DFF 0,#559FFF 100%);border-color:var(--f-theme-05)}.btn-primary.disabled,.btn-primary:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:var(--f-text-00);background:var(--f-theme-02);border-color:var(--f-theme-01);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-secondary,.btn-secondary:hover,.btn-secondary:not(:disabled):not(.disabled).focus,.btn-secondary:not(:disabled):not(.disabled):focus{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-secondary{background:var(--f-neutral-12);border-color:var(--f-neutral-08)}.btn-secondary:hover{background:var(--f-neutral-12);border-color:var(--f-theme-05)}.btn-secondary.disabled,.btn-secondary:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-danger,.btn-danger:hover,.btn-danger:not(:disabled):not(.disabled).focus,.btn-danger:not(:disabled):not(.disabled):focus,.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:var(--f-theme-01);background:var(--f-neutral-12);border-color:var(--f-theme-01)}.btn-danger{color:var(--f-semantic-danger-01);background:var(--f-neutral-00);border-color:#F9B0AF}.btn-danger:hover{color:var(--f-semantic-danger-01);background:rgba(var(--f-semantic-danger-01),.06);border-color:var(--f-semantic-danger-01)}.btn-danger.disabled,.btn-danger:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:var(--f-semantic-danger-01);background:rgba(var(--f-semantic-danger-01),.1);border-color:var(--f-semantic-danger-01);box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-success,.btn-success:hover,.btn-success:not(:disabled):not(.disabled).focus,.btn-success:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-success,.btn-success:hover{color:var(--f-text-00);background:var(--f-semantic-success-01);border-color:var(--f-semantic-success-01)}.btn-success.disabled,.btn-success:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:var(--f-text-00);background:var(--f-semantic-success-01);border-color:var(--f-semantic-success-01);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning,.btn-warning:hover{color:var(--f-text-00);background:var(--f-semantic-warning-01);border-color:var(--f-semantic-warning-01);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning:not(:disabled):not(.disabled).focus,.btn-warning:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning.disabled,.btn-warning:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-dark,.btn-dark:hover,.btn-dark:not(:disabled):not(.disabled).focus,.btn-dark:not(:disabled):not(.disabled):focus,.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:var(--f-text-00);background:var(--f-semantic-warning-01);border-color:var(--f-semantic-warning-01)}.btn-dark{color:var(--f-text-00);background:#343a40;border-color:#343a40}.btn-dark:hover{color:var(--f-text-00);background:#23272b;border-color:#23272b}.btn-dark.disabled,.btn-dark:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:var(--f-text-00);background:#1d2124;border-color:#171a1d;box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light,.btn-light:hover{color:#212529;box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light{background:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{background:#e2e6ea;border-color:#dae0e5}.btn-light:not(:disabled):not(.disabled).focus,.btn-light:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light.disabled,.btn-light:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-info,.btn-info:hover,.btn-info:not(:disabled):not(.disabled).focus,.btn-info:not(:disabled):not(.disabled):focus,.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background:#dae0e5;border-color:#d3d9df}.btn-info{background:var(--f-theme-03);border-color:var(--f-theme-03)}.btn-info:hover{color:var(--f-text-00);background:linear-gradient(135deg,#529DFF 0,#559FFF 100%);border-color:var(--f-theme-05)}.btn-info.disabled,.btn-info:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:var(--f-text-00);background:var(--f-theme-02);border-color:var(--f-theme-02);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-link,.btn-link:hover{background-color:transparent}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-link{font-weight:400;color:var(--f-theme-03);padding:0;border:0}.btn-lg,.btn-sm{line-height:1.4286;border-radius:6px}.btn-link:hover{color:var(--f-theme-05);text-decoration:none;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:none;border-color:transparent;color:var(--f-theme-01);box-shadow:none}.btn-link.active,.btn-link:active{box-shadow:none!important;color:var(--f-theme-01)}.btn-link.disabled,.btn-link:disabled{color:var(--f-text-07);pointer-events:none}.btn-link+.btn-link{margin-right:.875rem}.btn-lg{padding:.25rem 1.125rem}.btn-sm{padding:.125rem .5rem;font-size:.75rem}.custom-control-label::before,.f-btn-collapse-expand::after{line-height:1;vertical-align:middle;font-variant:normal;font-style:normal;text-transform:none;-moz-osx-font-smoothing:grayscale;speak:none;font-family:FarrisIcons}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-warning{color:var(--f-text-00)}.btn-outline-danger.disabled,.btn-outline-danger:disabled,.btn-outline-dark.disabled,.btn-outline-dark:disabled,.btn-outline-info.disabled,.btn-outline-info:disabled,.btn-outline-light.disabled,.btn-outline-light:disabled,.btn-outline-link.disabled,.btn-outline-link:disabled,.btn-outline-primary.disabled,.btn-outline-primary:disabled,.btn-outline-secondary.disabled,.btn-outline-secondary:disabled,.btn-outline-success.disabled,.btn-outline-success:disabled,.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:var(--f-text-07);border-color:var(--f-neutral-05);background:0 0}.dropdown-toggle-split{padding-right:.125rem;padding-left:.125rem}.btn-info{color:var(--f-text-00)}.f-cursor-pointer{cursor:pointer!important}.f-btn-collapse-expand{color:var(--f-text-03);background-color:transparent;box-shadow:none}.dropdown-submenu .dropdown-toggle,.f-btn-collapse-expand:active,.f-btn-collapse-expand:focus,.f-btn-icon.f-bare,.f-response-content .dropdown-item{box-shadow:none!important}.f-btn-collapse-expand:hover{color:var(--f-theme-05)}.f-btn-collapse-expand:active{color:var(--f-theme-01)}.f-btn-collapse-expand::after{width:1em;height:1em;-webkit-font-smoothing:antialiased;font-size:1rem;font-weight:400;display:inline-block;content:"\e015";margin-left:.25rem}.f-btn-collapse-expand.f-state-expand::after{content:"\e013"}.f-toolbar .f-btn-collapse-expand{padding-right:0}.f-pretend-link{color:var(--f-theme-03)!important;cursor:pointer;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}.f-pretend-link:hover{color:var(--f-theme-05);text-decoration:none}.btn.btn-px{padding-left:2.25rem;padding-right:2.25rem}.f-btn-ml{margin-left:.5rem!important}.f-btn-link-ml,.f-btn-link-mr{margin-left:.875rem!important}.f-btn-mr{margin-right:.625rem!important}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex-grow:0;flex-shrink:1;flex-basis:auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group-sm>.btn{padding:.125rem .5rem;font-size:.75rem;line-height:1.4286;border-radius:6px}.btn-group-lg>.btn{padding:.25rem 1.125rem;font-size:.875rem;line-height:1.4286;border-radius:6px}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropright-top .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropup-left .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before,.dropleft-up .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split{padding-right:.84375rem;padding-left:.84375rem}.btn-group.show .dropdown-toggle{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.f-btn-group .f-btn-group-links .btn-link{margin-left:.375rem;margin-right:.375rem}.f-btn-group .f-btn-group-links .btn-link:first-child{margin-left:0}.f-btn-group .f-btn-group-links .btn-link:last-child{margin-right:.1875rem}.f-btn-group .f-btn-group-links .btn-icontext{color:var(--f-theme-03);padding:0 3px;margin:0 0 0 .375rem}.f-btn-group .f-btn-group-links .btn-icontext .f-icon{margin:0}.f-btn-group .f-btn-group-links .btn-icontext:last-child{margin-right:0}.f-btn-group .f-btn-group-dropdown{padding:0 3px;margin-left:.375rem}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown{display:inline-block;border:none;outline:0;background:var(--f-aid-04);color:var(--f-theme-03);width:1rem;height:1rem;line-height:1rem;text-align:center;border-radius:100%;padding:0}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown:hover{cursor:pointer;color:var(--f-theme-03);background:var(--f-aid-03)}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown:focus{color:var(--f-text-00);background:var(--f-theme-02)}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown .f-icon{font-size:.75rem}.f-btn-group .f-btn-group-dropdown .dropdown-menu{min-width:5rem}.f-btn-group-dropdown-menu{z-index:1300!important}.f-btn-group-dropdown-menu .dropdown-item .dropdown-item-icon{margin:0 8px 0 0}.f-button-edit .farris-tags.form-control{padding:0}.f-button-edit .farris-tag-input-box,.f-button-edit .farris-tag-item{line-height:17px!important;margin:2px 6px 2px 0!important}.f-button-edit .farris-tag-input-box .form-control{height:inherit!important;padding:1px 0!important}.f-button-edit-nowrap .input-group{flex-wrap:nowrap!important}.f-button-edit-nowrap .farris-tags{overflow:hidden}.f-button-edit-nowrap .farris-tags-item-container{display:flex;flex-wrap:nowrap;overflow:hidden}.f-button-edit .input-group:not(.f-state-disabled,.f-state-readonly) .form-control,.f-cmp-number-spinner:not(.f-state-disabled,.f-state-readonly,.number-range,.spinner-hidden) .form-control{border-top-right-radius:0;border-bottom-right-radius:0}.fv-calculator-standard-main{background-color:#f1f1f1;margin:0 auto;box-shadow:0 0 15px #4d4d4d}.fv-calculator-standard-main ul{list-style:none;margin:0;padding:0}.fv-calculator-standard-main li{float:left;text-align:center;cursor:pointer}.fv-calculator-standard-main li img{height:14px}.fv-calculator-standard-main .fv-calculator-title{padding:5px 0;height:30px;line-height:30px;font-size:18px;margin-left:10px}.fv-calculator-standard-main .fv-calculator-result{height:140px;text-align:right;width:100%}.fv-calculator-standard-main .fv-calculator-result-out{margin:0 5px;height:48px;overflow:hidden}.fv-calculator-standard-main .fv-calculator-second{font-size:42px;font-weight:700;overflow-y:auto;white-space:nowrap;text-align:right}.fv-calculator-standard-main .fv-calculator-pre{color:#A7A7A7;padding:0 20px;font-size:16px;height:24px;width:100%;overflow:hidden;position:relative;z-index:99}.fv-calculator-standard-main .fv-calculator-pre .fv-calculator-pre-left{width:16px;text-align:center;line-height:20px;height:24px;position:absolute;z-index:101;left:0;top:0;font-weight:600;cursor:pointer;background:#f1f1f1}.fv-calculator-standard-main .fv-calculator-pre .fv-calculator-pre-right{width:16px;text-align:center;line-height:20px;height:24px;position:absolute;z-index:101;right:0;top:0;font-weight:600;cursor:pointer;background:#f1f1f1}.fv-calculator-pre .fv-calculator-pre-content{text-align:right;height:24px;line-height:24px;white-space:nowrap;overflow-y:auto;overflow-x:hidden}.fv-calculator-pre-left:hover,.fv-calculator-pre-right:hover{color:#1853d1;background:#9b9b9b}.fv-calculator-standard-main .fv-calculator-type{height:auto;text-align:left;font-weight:700;margin:10px 0 20px 10px;font-size:22px}.fv-calculator-standard-main .fv-calculator-type-bar{height:90px;width:100px;position:absolute;top:110px;background-color:#E6E6E6}.fv-calculator-standard-main .fv-calculator-type-bar li{float:left;width:100px;text-align:center;line-height:30px}.fv-calculator-standard-main .active{background-color:#CFCFCF}.fv-calculator-standard-main .fv-calculator-number{font-weight:700;border:1px solid #fff!important;background:#fff!important}.fv-calculator-standard-main .fv-calculator-number:hover{border:1px solid #f1f1f1!important;background:#c6c6c6!important}.fv-calculator-standard-main .fv-calculator-operator:hover{border:1px solid #f1f1f1!important;background:#82bceb!important;color:#fff}.fv-calculator-standard-main .fv-calculator-letter{font-size:16px}.fv-calculator-standard-main{width:500px;height:460px}#fv-calculator-num-symbol{height:270px;font-size:20px;display:flex;flex-wrap:wrap;justify-content:center}#fv-calculator-num-symbol li{line-height:48px;width:23%;margin:5px 0 0 5px;background:#dedede;border:1px solid #dedede;list-style-type:none}#fv-calculator-num-symbol li:hover{background:#c6c6c6;border:1px solid #f1f1f1}.f-calendar-day-view-item,.f-calendar-day-view-item-lower,.f-calendar-day-view-item-upper,.f-calendar-day-view-item-upper:first-child,.f-calendar-day-view-item:first-child{border-top:1px solid transparent}.f-calendar-day-view{background-color:#fff;display:flex;flex-direction:column;min-width:860px;height:530px}.f-calendar-day-view-header{display:flex;border-bottom:1px solid #e9e9e9}.f-calendar-day-view-header-corner{width:44px;height:24px}.f-calendar-day-view-header-columns{display:flex}.f-calendar-day-view-header-cell{display:flex;flex:1;padding:4px 4px 8px;font-size:14px;color:rgba(0,0,0,.75);line-height:22px;font-weight:500}.f-calendar-day-view-header-cell .f-calendar-day-view-date{border-radius:20px;width:24px;height:24px;text-align:center;margin-right:4px}.f-calendar-day-view-header-cell .f-calendar-day-view-current{background:#0093f5;color:#fff}.f-calendar-day-view-content{display:flex;flex:1;overflow-y:scroll}.f-calendar-day-view-content-side{width:44px}.f-calendar-day-view-item{height:22px;display:flex;border-bottom:1px solid #e9e9e9}.f-calendar-day-view-item-upper{border-bottom:1px solid transparent}.f-calendar-day-view-item-lower{border-bottom:1px solid #e9e9e9}.f-calendar-day-view-item-cell{flex:1;height:22px;border-left:1px solid transparent;border-right:1px solid #e9e9e9}.f-calendar-day-view-item-cell:first-child{border-left:1px solid #e9e9e9;border-right:1px solid #e9e9e9}.f-calendar-day-view-item-cell:last-child{border-left:1px solid transparent;border-right:1px solid transparent}.f-calendar-header{display:flex;background-color:#fff}.f-calendar-header>.f-calendar-title{font-weight:600;font-size:24px;line-height:32px;margin:14px 0;padding:0 14px;border-right:1px solid #e9e9e9;width:144px}.f-calendar-header>.f-calendar-navigator{flex:1;display:flex}.f-calendar-header .f-calendar-view-switch{margin:16px 14px;position:relative}.f-calendar-header .f-calendar-view-switch-panel{background-color:#eff5ff;width:200px;height:28px;border-radius:28px;display:flex;font-weight:500}.f-calendar-header .f-calendar-view-switch-panel>span{flex:1;line-height:28px;text-align:center}.f-calendar-header .f-calendar-view-switch>.f-calendar-view-switch-active-view{height:24px;width:62px;position:absolute;background:#fff;box-shadow:0 4px 18px 0 rgba(2,75,193,.2);border-radius:24px;line-height:24px;text-align:center;color:#0091da;font-weight:500;transition:.3s ease-out all}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-today{background:#fff;border:1px solid #e8ebf2;box-shadow:0 2px 6px 0 rgba(31,35,41,.06);border-radius:6px;font-size:13px;color:#2d2f33;font-weight:400;margin:auto 6px auto 14px}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-button-group{box-shadow:0 2px 6px 0 rgba(31,35,41,.06);border-radius:6px;font-size:13px;color:#2d2f33;font-weight:400;margin:auto 14px auto 0}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-button-group>.f-calendar-navigator-previous{background:#fff;border:1px solid #e8ebf2;border-right-color:transparent;border-radius:6px 0 0 6px;padding:.1875rem .375rem}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-button-group>.f-calendar-navigator-next{background:#fff;border:1px solid #e8ebf2;border-radius:0 6px 6px 0;padding:.1875rem .375rem}.f-calendar-month-view{min-width:860px;display:flex}.f-calendar-month-view table{display:table!important;margin:initial!important;flex:1;table-layout:fixed;width:-moz-fit-content;width:fit-content}.f-calendar-month-view tr{border-top:initial!important;transition:initial!important}.f-calendar-month-view th{border:initial!important;background-color:initial!important;font-size:14px!important;color:rgba(0,0,0,.75);line-height:22px;font-weight:500!important}.f-calendar-month-view{background-color:#fff}.f-calendar-month-view td{border:1px solid #e9e9e9!important;padding:4px!important;height:100px}.f-calendar-week-view-header,.f-calendar-week-view-item{display:flex;border-bottom:1px solid #e9e9e9}.f-calendar-month-view .f-calendar-month-view-title{display:flex}.f-calendar-month-view .f-calendar-month-view-title>.f-calendar-month-view-date{border-radius:20px;width:24px;height:24px;line-height:24px;text-align:center;font-size:14px}.f-calendar-month-view .f-calendar-month-view-title>.f-calendar-month-view-date-month{flex:1;border-radius:20px;width:24px;height:24px;line-height:24px;text-align:right;font-size:14px}.f-calendar-month-view .f-calendar-month-view-current{background:#0093f5;color:#fff}.f-calendar-month-view .f-calendar-month-view-event-item{background-color:#ebf3ff;font-size:12px;color:#0e6ded;line-height:18px;margin:2px 0;padding:2px 4px}.f-calendar-week-view{background-color:#fff;display:flex;flex-direction:column;min-width:860px;height:530px}.f-calendar-week-view-header-corner{width:44px;height:24px}.f-calendar-week-view-header-primary{flex:1}.f-calendar-week-view-header-columns{display:flex}.f-calendar-week-view-header-cell{flex:1;padding:4px 4px 8px;display:flex;font-size:14px;color:rgba(0,0,0,.75);line-height:22px;font-weight:500}.f-calendar-week-view-header-cell .f-calendar-week-view-date{border-radius:20px;width:24px;height:24px;text-align:center;margin-right:4px}.f-calendar-week-view-header-cell .f-calendar-week-view-current{background:#0093f5;color:#fff}.f-calendar-week-view-content{display:flex;flex:1;overflow-y:scroll}.f-calendar-week-view-content-side{width:44px}.f-calendar-content-primary{flex:1}.f-calendar-side{margin-top:-11px}.f-calendar-side-row{height:22px;padding-right:4px;text-align:end}.f-calendar-side-row-number{height:22px;line-height:22px}.f-calendar-week-view-item{height:22px;border-top:1px solid transparent}.f-calendar-week-view-item:first-child{border-top:1px solid #e9e9e9}.f-calendar-week-view-item-lower,.f-calendar-week-view-item-upper,.f-calendar-week-view-item-upper:first-child{border-top:1px solid transparent}.f-calendar-week-view-item-upper{border-bottom:1px solid transparent}.f-calendar-week-view-item-lower{border-bottom:1px solid #e9e9e9}.f-calendar-week-view-item-cell{flex:1;height:22px;border-left:1px solid transparent;border-right:1px solid #e9e9e9}.f-calendar-week-view-item-cell:first-child{border-left:1px solid #e9e9e9;border-right:1px solid #e9e9e9}.f-calendar-week-view-item-cell:last-child{border-left:1px solid transparent;border-right:1px solid transparent}.f-calendar-event{background:#ebf3ff;border-radius:2px;margin:2px;font-size:12px;color:#0e6ded;padding:2px 4px}.f-capsule-container{color:#6080AD;position:relative;display:inline-block;box-sizing:content-box;padding:0;margin:0;cursor:pointer;white-space:nowrap;min-width:2.5rem;height:1.8rem;overflow:hidden}.f-capsule-container .f-capsule-pane .f-capsule-item.f-capsule-disabled,.f-combo-list-item.f-un-select{color:var(--f-text-09)}.f-capsule-container.primary .f-capsule-board{background-color:#eff5ff}.f-capsule-container.secondary .f-capsule-board{background-color:#f2f4f8}.f-capsule-container .f-capsule-pane{display:flex;height:100%;min-height:100%;justify-content:flex-start;align-items:center;top:0;position:relative}.f-capsule-container .f-capsule-pane .f-capsule-item{opacity:1;display:inline-block;font-size:12px;line-height:1.8rem;padding-left:24px;padding-right:24px;z-index:2}.f-capsule-container .f-capsule-pane .f-capsule-item.f-capsule-active-item{font-weight:700}.f-capsule-container.primary .f-capsule-pane .f-capsule-item.f-capsule-active-item{color:#2a87ff}.f-capsule-container .f-capsule-pane .f-capsule-item>i{margin-right:2px;font-size:12px}.f-capsule-container .f-capsule-board{background-color:#f2f4f8;border-radius:1.8rem;height:1.8rem;position:absolute;top:0;z-index:0}.f-capsule{height:calc(100% - 4px);border-radius:1.8rem;position:absolute;background:#fff;left:2px;top:2px;opacity:1;display:inline-block;font-size:12px;padding-left:22px;padding-right:22px;z-index:1}.custom-checkbox .custom-control-input:checked~.custom-control-label::after,.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:none}.custom-control{position:relative;display:block;min-height:1.1607375rem;padding-left:0}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;clip:rect(0,0,0,0);overflow:hidden;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:var(--f-theme-03);background-color:var(--f-neutral-00);box-shadow:none}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 4px 2px rgba(99,136,255,.12);color:var(--f-theme-03)}.custom-control-input:active~.custom-control-label::before{color:var(--f-text-00);background-color:var(--f-theme-03);box-shadow:none}.custom-checkbox .custom-control-input:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before,.custom-control-label::before,.custom-radio .custom-control-input:checked~.custom-control-label::before,.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:var(--f-neutral-00)}.custom-control-input:disabled~.custom-control-label{color:var(--f-neutral-06)}.custom-control-label{position:relative}.custom-control-label::before{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 0 0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-control-label::after{position:absolute;top:.08036875rem;left:-1.5rem;width:1rem;height:1rem;background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{top:2px;border-radius:0}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before{transition:none}}.custom-control.custom-checkbox,.custom-control.custom-radio{padding-right:.8125rem;margin-bottom:.25rem}.custom-control .custom-control-label::before{color:var(--f-neutral-02)}.custom-control .custom-control-label:hover{cursor:pointer}.custom-control .custom-control-input:disabled~.custom-control-label:hover,.custom-control .custom-control-input[readonly]~.custom-control-label:hover{cursor:default}.custom-control .custom-control-label:hover::before{color:var(--f-theme-05)}.custom-control .custom-control-input:checked~.custom-control-label::before{color:var(--f-theme-03)}.custom-control .custom-control-input[readonly]~.custom-control-label{color:var(--f-text-02)}.custom-control .custom-control-input[readonly]~.custom-control-label::before{color:var(--f-neutral-06)}.custom-control .custom-control-input:disabled~.custom-control-label{color:var(--f-text-02)}.custom-control .custom-control-input:disabled~.custom-control-label::before{color:var(--f-neutral-06)}.custom-control .custom-control-input[disabled]:checked~.custom-control-label::before,.custom-control .custom-control-input[readonly]:checked~.custom-control-label::before{color:rgba(var(--f-theme-03),.2)}.custom-control-label{padding-left:1.5rem;color:var(--f-text-02);display:inline}.custom-control-label::before{width:1em;height:1em;-webkit-font-smoothing:antialiased;font-weight:400;display:inline-block;color:var(--f-neutral-02);font-size:14px;top:3px;left:0;position:absolute}.custom-control-label::after{display:none}.custom-checkbox .custom-control-label::before{content:"\e304"}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{box-shadow:none;font-family:FarrisIcons;content:"\e306";color:var(--f-theme-03)}.custom-checkbox .custom-control-input:checked~.custom-control-label::before,.custom-radio .custom-control-input:checked~.custom-control-label::before{content:"";background-repeat:no-repeat;background-size:contain;background-position:center center;box-shadow:0 2px 6px 0 rgba(var(--f-theme-03),.2)}.custom-checkbox .custom-control-input[disabled]:checked~.custom-control-label::before,.custom-checkbox .custom-control-input[readonly]:checked~.custom-control-label::before,.custom-radio .custom-control-input[disabled]:checked~.custom-control-label::before,.custom-radio .custom-control-input[readonly]:checked~.custom-control-label::before{box-shadow:none;opacity:.4}.f-radio-button-danger:hover,.f-radio-button-primary:hover,.f-radio-button-success:hover,.f-radio-button-warning:hover{box-shadow:0 2px 6px 0 rgba(31,35,41,.06)}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjE0cHgiIGhlaWdodD0iMTRweCIgdmlld0JveD0iMCAwIDE0IDE0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgIDx0aXRsZT7nvJbnu4QgMjc8L3RpdGxlPg0KICAgIDxkZWZzPg0KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9Ijg3LjE4OTcwNjUlIiB5MT0iMCUiIHgyPSIxOC4yNDA0NDkyJSIgeTI9IjEwMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4NCiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzRjY1RkYiIG9mZnNldD0iMCUiPjwvc3RvcD4NCiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM0RDlBRkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPg0KICAgICAgICA8L2xpbmVhckdyYWRpZW50Pg0KICAgIDwvZGVmcz4NCiAgICA8ZyBpZD0i5paw54mIIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4NCiAgICAgICAgPGcgaWQ9Iue8lue7hC0yNyI+DQogICAgICAgICAgICA8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTE0IiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHJ4PSIzIj48L3JlY3Q+DQogICAgICAgICAgICA8cGF0aCBkPSJNMTAuNjkwOTE2NCw0LjEzNjA2NjY0IEwxMS4zNTMzNzY5LDQuNzU0MDk0OTIgQzExLjQzNDE0MzMsNC44Mjk0NDQyNCAxMS40Mzg1MzQ3LDQuOTU2MDAxMDcgMTEuMzYzMTg1NCw1LjAzNjc2NzUxIEMxMS4zNjMwNjY2LDUuMDM2ODk0ODYgMTEuMzYyOTQ3Niw1LjAzNzAyMjA2IDExLjM2MjgyODUsNS4wMzcxNDkxMSBMNi42MTYzOTg1OSwxMC4wOTgyNDI1IEM2LjU0MDgzODUyLDEwLjE3ODgxMTggNi40MTQyNzA2NSwxMC4xODI4NzI2IDYuMzMzNzAxMzQsMTAuMTA3MzEyNSBDNi4zMzE3ODIyMSwxMC4xMDU1MTI3IDYuMzI5ODk4NzgsMTAuMTAzNjc1MiA2LjMyODA1MjE1LDEwLjEwMTgwMSBMMy4xNDA3NDAxNiw2Ljg2NzAxODkyIEMzLjA2MzIxNDc1LDYuNzg4MzM4ODggMy4wNjQxNTA3NSw2LjY2MTcwOTM0IDMuMTQyODMwNzksNi41ODQxODM5MyBDMy4xNDI5NTUxMSw2LjU4NDA2MTQzIDMuMTQzMDc5Niw2LjU4MzkzOTA5IDMuMTQzMjA0MjQsNi41ODM4MTY5MiBMMy43OTAxMjUxOCw1Ljk0OTcxODg4IEMzLjg2ODg2OTM1LDUuODcyNTM1NTQgMy45OTUyMjY2Myw1Ljg3MzY0MzM2IDQuMDcyNjA1NCw1Ljk1MjE5NTQ5IEw2LjQ1MDE0NjI0LDguMzY1Nzg4ODIgTDYuNDUwMTQ2MjQsOC4zNjU3ODg4MiBMMTAuNDA4NjEwMiw0LjE0NTQ4MzUzIEMxMC40ODQwMzI2LDQuMDY1MDcyMTYgMTAuNjEwMzAzLDQuMDYwODYwMTYgMTAuNjkwOTE2NCw0LjEzNjA2NjY0IFoiIGlkPSLot6/lvoQtMTPlpIfku70iIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPg0KICAgICAgICA8L2c+DQogICAgPC9nPg0KPC9zdmc+)}.farris-checkradio-ver{display:flex!important;flex-direction:column}.farris-checkradio-hor{flex-wrap:wrap;display:inline-flex}.farris-input-wrap.farris-checkradio-hor{display:inline-flex}.custom-radio .custom-control-label::before{border-radius:50%;content:"\e309"}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:none}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjE0cHgiIGhlaWdodD0iMTRweCIgdmlld0JveD0iMCAwIDE0IDE0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgIDx0aXRsZT5SZWN0YW5nbGUgMjcxIENvcHkgMTHlpIfku70gMjwvdGl0bGU+DQogICAgPGRlZnM+DQogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iODcuMTg5NzA2NSUiIHkxPSIwJSIgeDI9IjE4LjI0MDQ0OTIlIiB5Mj0iMTAwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzNGNjVGRiIgb2Zmc2V0PSIwJSI+PC9zdG9wPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzREOUFGRiIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+DQogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPC9kZWZzPg0KICAgIDxnIGlkPSLmlrDniYgiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTI3MS1Db3B5LTEx5aSH5Lu9LTIiIHN0cm9rZT0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgc3Ryb2tlLXdpZHRoPSI0IiB4PSIyIiB5PSIyIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSI1Ij48L3JlY3Q+DQogICAgPC9nPg0KPC9zdmc+)}.farris-checkradio-hor .farris-radio-button .btn{border-radius:0}.farris-checkradio-hor .farris-radio-button:first-child .btn{border-top-left-radius:6px;border-bottom-left-radius:6px}.farris-checkradio-hor .farris-radio-button:last-child .btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.f-radio-button,.f-radio-tag{color:#2d2f33;background:#fff;border:1px solid #e8ebf2}.f-radio-button-success:hover{color:#6cc77f;background:#fff;border-color:#6cc77f}.f-radio-button-warning:hover{color:#f5a144;background:#fff;border-color:#f5a144}.f-radio-button-danger:hover{color:#f46160;background:#fff;border-color:#f46160}.f-radio-button-primary:hover{color:#2a87ff;background:#fff;border-color:#2a87ff}.f-radio-button-success.active{color:#fff;background:#6cc77f;border-color:#6cc77f}.f-radio-button-warning.active{color:#fff;background:#f5a144;border-color:#f5a144}.f-radio-button-danger.active{color:#fff;background:#f46160;border-color:#f46160}.f-radio-button-primary.active{color:#fff;background:#2a87ff;border-color:#2a87ff}.f-radio-tag{display:inline-block;position:relative;margin-right:8px;padding:3px 16px;border:1px solid rgba(0,0,0,.15);border-radius:2px;overflow:hidden;cursor:pointer;margin-bottom:0}.f-radio-icon,.f-radio-tag>.tip{position:absolute;display:block}.f-radio-icon{right:-4px;bottom:-3px;font-size:12px;color:#fff}.f-radio-tag>.tip{right:0;bottom:0;width:14px;height:14px;border:7px solid #dadada;border-top:7px solid transparent;border-left:7px solid transparent}.f-radio-tag-success.active{color:#6cc77f;border-color:#6cc77f;background:rgba(108,199,127,.05)}.f-radio-tag-warning.active{color:#f5a144;border-color:#f5a144;background:rgba(245,161,68,.05)}.f-radio-tag-danger.active{color:#f46160;border-color:#f56161;background:rgba(245,97,97,.05)}.f-radio-tag-primary.active{color:#2a87ff;border-color:#2a87ff;background:rgba(42,135,255,.05)}.f-radio-tag-success.active>.tip{border-right-color:#6cc77f;border-bottom-color:#6cc77f}.f-radio-tag-warning.active>.tip{border-right-color:#f5a144;border-bottom-color:#f5a144}.f-radio-tag-danger.active>.tip{border-right-color:#f46160;border-bottom-color:#f46160}.f-radio-tag-primary.active>.tip{border-right-color:#2a87ff;border-bottom-color:#2a87ff}.f-color-picker-component{display:inline-block;position:relative;line-height:normal}.f-color-picker-component .color-picker-wrapper{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.f-color-picker-component .color-picker-wrapper .color-picker-input{border-top-right-radius:0;border-bottom-right-radius:0;flex:1 1 auto;width:1%;min-width:200px}.f-color-picker-component .color-picker-wrapper .color-picker-trigger{display:inline-block;box-sizing:border-box;height:calc(1.62503rem + 2px);width:calc(1.62503rem + 2px);padding:.1875rem;border:1px solid #e6e6e6;border-left:none;border-top-right-radius:4px;border-bottom-right-radius:4px;font-size:0;position:relative;cursor:pointer}.f-color-picker-component .color-picker-wrapper .color-picker-trigger .color-picker-trigger-inner{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.f-color-picker-component .color-picker-wrapper .color-picker-trigger .color-picker-trigger-inner.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.f-color-picker-component .color-picker-wrapper .color-picker-trigger .color-picker-trigger-inner div{width:100%;height:100%}.f-color-picker-component .color-picker-panel{display:block;position:absolute;width:300px;z-index:3000;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.f-color-picker-component .color-picker-panel.disabled{display:none}.f-color-picker-component .color-picker-panel .color-picker-main{padding-bottom:6px}.f-color-picker-component .color-picker-panel .input-btn{margin-top:6px;text-align:right}.f-color-picker-component .color-picker-panel .input-btn input{float:left;width:180px;height:28px;line-height:28px;cursor:pointer;-webkit-appearance:none;background-color:#fff;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;font-size:inherit;outline:0;padding:0 7px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.f-color-picker-component .color-picker-panel .input-btn input:focus{border-color:#409eff}.f-color-picker-component .color-picker-panel .input-btn .btn-clear{background-color:#fff;border:none;outline:0;color:#409eff}.color-picker-wrapper .color-picker-trigger{border-color:var(--f-neutral-04)!important;height:calc(1.5rem + .125rem)!important}.f-alpha-component{display:flex;flex-direction:column;position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.f-alpha-component .color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,69,0,0) 0,#ff4500 100%);height:100%}.f-alpha-component .color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:189px;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.f-hue-component{position:relative;box-sizing:border-box;width:12px;height:180px;background-color:red;padding:2px 0;float:right}.f-hue-component .color-hue-slider__bar{position:relative;background:linear-gradient(red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.f-hue-component .color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;top:10px;left:0;width:100%;height:4px;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.f-preset-component{display:flex;font-size:12px;margin-top:8px;width:280px}.f-preset-component .color-preset__colors{display:flex;flex:1;flex-wrap:wrap}.f-preset-component .color-preset__colors .color-preset__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.f-preset-component .color-preset__colors .color-preset__color-selector:nth-child(10n+1){margin-left:0}.f-preset-component .color-preset__colors .color-preset__color-selector.selected{box-shadow:0 0 3px 2px #409eff}.f-preset-component .color-preset__colors .color-preset__color-selector div{display:flex;height:100%;border-radius:3px}.f-sv-panel-component{display:inline-block;position:relative;width:280px;height:180px}.f-sv-panel-component .color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.f-sv-panel-component .color-svpanel__black{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(0deg,#000,transparent)}.f-sv-panel-component .color-svpanel__cursor{position:absolute}.f-sv-panel-component .color-svpanel__cursor div{cursor:pointer;width:6px;height:6px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-3px,-3px)}input-group.actived .input-group{box-shadow:0 0 4px 2px rgba(99,136,255,.12);border-color:var(--f-theme-08)}.popover.f-combo-list-wrapper{background:var(--f-neutral-20)}.f-combo-list-container{overflow:auto;z-index:9;padding:.25rem}.f-combo-list-container .f-empty-title,.f-combo-list-container .f-list-view-group{margin:0}.f-combo-list-container .f-combo-list-search-box{margin:.25rem .5rem}.f-combo-list-container .f-combo-list-search-box .f-combo-list-item{padding:.125rem .5rem}.f-combo-list-item{position:relative;display:block;padding:.3125rem .5rem;background-color:#fff;border-radius:6px}.f-combo-list-item:not(.f-un-select):hover{background:var(--f-neutral-11);color:var(--f-text-02)}.f-combo-list-item.f-listview-active{color:var(--f-text-02);background:var(--f-neutral-10)}.f-combo-tree-container .fv-tree,.f-combo-tree-container .fv-tree-content{overflow:auto}.condition-list{width:100%;display:flex;flex-direction:column;overflow-y:hidden;resize:vertical;min-height:50px}.condition-list .condition-list-body{height:calc(100% - 32px);overflow-y:auto}.condition-list .condition-list-body-maxh{max-height:380px}.condition-list .condition-list-bottom{position:relative;margin:14px 0 14px 6px}.condition-list .condition-list-reset{position:absolute;right:32px;bottom:4px}.condition-list .add-group-btn{width:100%;background:rgba(239,245,255,.65);border:1px solid #dbe9ff;border-radius:6px;color:#2a87ff;font-size:13px}.condition-list .add-condition-btn{color:#2A87FF;font-size:13px;display:inline-block}.condition-list .add-condition-btn:hover{cursor:pointer}.condition-list .add-condition-btn .f-icon{vertical-align:text-bottom;position:relative;width:16px;height:16px;border-radius:50%}.condition-list .add-condition-btn .f-icon-filter-add::before{position:relative;bottom:3px;left:2px;font-size:12px}.condition-list .add-condition-btn .f-icon-filter-grouping::before{position:relative;bottom:3px;left:1px;font-size:12px}.condition-list .condition-list-content{display:flex}.condition-list .condition-list-content-group{flex:0 0 auto}.condition-list .condition-list-item{padding:4px;display:flex;height:40px}.condition-list .condition-list-item-type{width:200px}.condition-list .condition-list-type button{text-align:left;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.condition-list .condition-list-item-compare{width:134px}.condition-list .condition-list-compare button{text-align:left;position:relative}.condition-list .condition-list-compare .f-icon-arrow-chevron-down::before,.condition-list .condition-list-compare .f-icon-arrowhead-s::before,.condition-list .condition-list-type .f-icon-arrow-chevron-down::before,.condition-list .condition-list-type .f-icon-arrowhead-s::before{position:absolute;right:8px;bottom:4px}.condition-list .condition-list-content .dropdown-toggle::after{display:none}.condition-list .condition-list-item-control{line-height:26px;width:200px}.condition-list .condition-list-item-extend .f-icon{vertical-align:text-bottom}.condition-list .condition-list-item-extend .f-icon:hover{cursor:pointer}.condition-list .condition-list-item-extend .f-icon-plus-sm::before,.condition-list .condition-list-item-extend .f-icon-splus::before{font-size:14px;color:#2a87ff;background-color:#e8f2ff;border-radius:50%;position:relative;top:1px}.condition-list .condition-list-item-extend .f-icon-minus-sm::before,.condition-list .condition-list-item-extend .f-icon-sminus::before{font-size:14px;color:#f46160;background-color:#fadcdd;border-radius:50%;position:relative;top:1px}.condition-list .condition-list-relation{margin:2px 0 2px 12px;border-left:1px solid #dee3f0;position:relative;display:flex;align-items:center;padding-left:12px;font-size:13px;color:#2a87ff;text-align:center;cursor:pointer}.condition-list .condition-list-relation:hover .condition-list-relation-close{display:inline}.condition-list .condition-list-relation-close{position:absolute;top:-4px;display:none}.fv-grid,.fv-grid-header,.fv-grid-header-cell{display:flex;overflow:hidden}.condition-list .condition-list-relation:hover .condition-list-relation-text{text-decoration:underline}.condition-list .condition-list-item .custom-control-label:before{position:relative;top:2px}.condition-list .condition-list-relation button{width:20px}.fv-grid{position:relative;flex-direction:column;border-style:solid;border-width:1px;border-color:transparent;flex:1;color:#424347}.fv-grid-header{position:relative;z-index:2;color:#5a5e66;font-weight:400;border-bottom:1px solid #e4e7ef;background-color:#f4f5f9}.fv-grid-header-corner{background-color:#f4f5f9;border-style:solid;border-width:1px;border-color:transparent;padding:.375rem 0}.fv-grid-header-cell,.table thead th{padding:.4375rem .75rem;text-overflow:ellipsis}.fv-grid-header-left-fixed,.fv-grid-header-right-fixed{position:relative;overflow:hidden;background-color:#f4f5f9;z-index:1}.fv-grid-header-left-fixed{box-shadow:4px 0 10px 0 rgba(31,35,41,.06)}.fv-grid-header-right-fixed{box-shadow:-4px 0 10px 0 rgba(31,35,41,.06)}.fv-grid-header-primary{flex:1;position:relative;overflow:hidden;background-color:#f4f5f9}.fv-grid-header-columns{position:relative}.fv-grid-header-cell{position:absolute;border:1px solid transparent;top:0;line-height:18px;color:#2d2f33;white-space:nowrap;vertical-align:middle}.fv-grid-header-cell::after{content:"";position:absolute;left:0;top:50%;margin-top:-.5625rem;display:block;height:1.125rem;width:1px;background-color:#e6e9f0}.fv-grid-header-group-columns .fv-grid-header-cell{border-bottom-color:#eaecf3;border-right-color:#eaecf3;padding:0 .75rem;text-align:center}.fv-grid-header-group-columns .fv-grid-header-cell::after{display:none}.fv-grid-content{flex:1;display:flex;position:relative;overflow:hidden;z-index:0;background:#fff}.fv-grid-content-hover{cursor:pointer}.fv-grid-content-side{position:relative}.fv-grid-content-primary{flex:1;position:relative;overflow:hidden}.fv-grid-content-left-fixed,.fv-grid-content-right-fixed{position:relative;overflow:hidden;z-index:1}.fv-grid-content-left-fixed{box-shadow:4px 0 10px 0 rgba(31,35,41,.06);background-color:#fff}.fv-grid-content-right-fixed{box-shadow:-6px 0 6px -4px rgba(0,0,0,.12);background-color:#fff}.fv-grid-data{height:100%}.fv-grid-merge-date{position:absolute;top:0}.fv-grid-row{left:0;position:absolute}.fv-datagrid-strip .fv-grid-row-odd{background-color:#fff}.fv-datagrid-strip .fv-grid-row-even{background-color:#f7f8fb}.fv-grid-row-hover{cursor:pointer;color:#424347;background:#edf5ff!important;border-color:#eaecf3}.fv-grid-row-selected{color:#424347!important;border-color:#95bef1;background-color:#dae9ff!important}.fv-grid-cell,.fv-grid-group-row,.fv-grid-summary-row{border-color:transparent;background-color:transparent;position:absolute;border-style:solid;border-width:1px}.fv-grid-group-row,.fv-grid-summary-row{left:0;font-weight:600}.fv-grid-group-row-icon{width:28px;height:28px;flex-shrink:0;color:rgba(0,0,0,.45);line-height:24px;padding:.25rem .75rem}@keyframes rotate-group-collapse{0%{transform:rotate(0)}100%{transform:rotate(-90deg)}}.fv-grid-group-row-icon-collapse{transform:rotate(-90deg)}.fv-grid-cell{line-height:26px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;top:0;padding:0 .75rem}.fv-grid-wrap-content .fv-grid-cell{text-overflow:initial;overflow:initial;white-space:initial}.fv-grid-cell .f-form-control-textarea,.fv-grid-cell textarea.form-control{min-height:initial}.fv-grid-merged-cell{border-left-color:#eaecf3;background-color:#fff;text-align:center}.fv-grid-sidebar-row{left:0;position:absolute;line-height:24px;border-style:solid;border-width:1px;border-color:transparent;background-color:transparent}.fv-datagrid-strip .fv-grid-sidebar-row-odd{background-color:#fff}.fv-datagrid-strip .fv-grid-sidebar-row-even{background-color:#f7f8fb}.fv-grid-sidebar-row-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.fv-grid-horizontal-scroll,.fv-grid-vertical-scroll{cursor:default;transition:width .2s linear,opacity .2s linear,background-color .2s linear;position:absolute;z-index:1}.fv-grid-sidebar-row-selected{color:#424347!important;background-color:#dae9ff!important}.fv-grid-sidebar-row-checkbox{vertical-align:middle;margin:.25rem .5rem .25rem 1rem}.fv-grid-sidebar-row-number{display:inline-flex;width:32px;padding:0 .25rem}.fv-grid-content-hover .fv-grid-vertical-scroll{opacity:1}.fv-grid-vertical-scroll{opacity:0;background-color:transparent;right:0;left:auto!important;width:10px;height:288px}.fv-grid-vertical-scroll-thumb{transition:background-color .2s linear;width:10px;right:0;background-color:rgba(0,0,0,.25);border-radius:10px;position:absolute}.fv-grid-content-hover .fv-grid-horizontal-scroll{opacity:1}.fv-grid-horizontal-scroll{opacity:0;background-color:transparent;bottom:0;top:auto!important;height:10px;width:812px}.fv-grid-horizontal-scroll-thumb{transition:background-color .2s linear,width .2s ease-in-out;height:10px;bottom:0;background-color:rgba(0,0,0,.25);border-radius:10px;position:absolute}.fv-grid-header-cell>.fv-column-title{flex:1;text-overflow:ellipsis;overflow:hidden;word-break:break-all;white-space:nowrap}.fv-grid-header-cell>.fv-column-resize-bar{display:block;position:absolute!important;top:-2px;bottom:-2px;right:0;margin:0;width:5px;padding:0;cursor:e-resize;border:1px solid transparent}.fv-grid-header-cell:hover>.fv-column-resize-bar{border-right:3px solid #2a87ff;border-top:none}.fv-grid-header-cell:hover>.fv-column-handler{display:block}.fv-grid-header-cell>.fv-column-handler{float:right;cursor:pointer;display:none;color:#2a87ff}.fv-grid-header-cell>.fv-column-handler.fv-column-handler-active{display:block!important;color:#2a87ff}.fv-grid-header-cell>.fv-column-handler:hover{color:#2a87ff}.fv-grid-header-cell>.fv-grid-settings-icon{display:block;cursor:pointer;margin-left:8px}.fv-datagrid-resize-overlay{z-index:98;width:100%;height:100%;cursor:e-resize;background:0 0;position:absolute}.fv-datagrid-resize-proxy{width:1px;border-left:1px dashed #2a87ff;left:0;display:none;position:absolute;height:100%;z-index:99}.fv-datagrid-summary{padding:3px;background-color:#fff}.fv-datagrid-summary .fv-datagird-summary-panel{height:40px;background:linear-gradient(90deg,#eff8f8 0,#fffbeb 100%);border-radius:8px;display:flex;justify-content:space-between}.fv-datagrid-summary-title{line-height:40px;width:100px;padding:0 16px;font-size:14px;font-weight:500}.fv-datagrid-summary-content{display:flex;line-height:40px}.fv-datagrid-summary-field{line-height:40px;margin-right:10px}.fv-datagrid-summary-field-title{font-size:14px;margin:0 16px}.fv-datagrid-summary-field-value{color:#ff6c29;font-size:18px;font-weight:700}.fv-datagrid-pagination{display:flex;flex-direction:row-reverse;background-color:#fff}.fv-column-handler-popover .popover-body{max-width:none}.fv-column-sort-filter-container{width:300px}.fv-column-sort-filter-container .fv-column-filter-section .fv-column-filter-section-title{font-size:15px;margin:10px 0}.fv-column-sort-filter-container .fv-column-filter-section .fv-column-filter-section-editor{margin-bottom:10px;max-height:240px;overflow:hidden;display:flex;flex-direction:column}.fv-column-sort-filter-container .fv-column-sort-filter-footer{display:flex}.fv-column-sort-filter-container .fv-column-sort-filter-footer .fv-column-confirm-section{flex:1;display:flex;flex-direction:row-reverse}.fv-grid-filter-panel{padding:0 6px 4px}.fv-grid-settings{min-width:800px;min-height:480px}.fv-grid-settings .f-btn-icon{color:#878d99!important}.fv-grid-settings .f-btn-icon:hover{color:#529dff!important}.fv-grid-settings .farris-tabs-header-pre{color:#000;font-weight:500}.fv-grid-settings .farris-tabs-header-post,.fv-grid-settings .farris-tabs-header-pre{padding:.75rem .5rem .75rem 1.125rem}.fv-grid-settings .farris-tabs-header{margin:0!important}.fv-grid-settings .container{padding-left:24px;padding-right:24px}.fv-grid-group-panel{border-bottom:1px solid #e4e7ef;background-color:#f4f5f9;height:40px}.fv-grid-bordered{border:1px solid #EAECF3}.fv-grid-bordered .fv-grid-cell{border-right-color:#EAECF3}.fv-grid-bordered .fv-grid-cell:last-child{border-right-color:transparent}.fv-grid-horizontal-bordered .fv-grid-cell,.fv-grid-horizontal-bordered .fv-grid-group-row,.fv-grid-horizontal-bordered .fv-grid-merged-cell,.fv-grid-horizontal-bordered .fv-grid-sidebar-row,.fv-grid-horizontal-bordered .fv-grid-summary-row{border-bottom-color:#eaecf3}.fv-grid-hierarchy-cell .custom-checkbox{display:flex;padding-right:0!important;margin:auto 0}.fv-grid-hierarchy-cell .fv-tree-node-toggle,.fv-grid-hierarchy-cell .fv-tree-node-toggle-minus{padding-right:6px}.fv-grid-hierarchy-cell .custom-label{padding-left:1.2rem}.fv-grid-hierarchy-cell div#treeNodeIcons{margin:auto 5px auto 0;color:#a5a6ab}.fv-grid-hierarchy-cell .fv-tree-node-toggle::before{font-family:FarrisIcons;color:#2D2F33;content:"\e11f"}.fv-grid-hierarchy-cell .fv-tree-node-toggle-minus::before{font-family:FarrisIcons;color:#2D2F33;content:"\e122"}.fv-grid-hierarchy-cell .fv-tree-node-toggle:hover::before{color:#59a1ff}.f-datepicker-container{display:flex;position:absolute;margin:.25rem 0 0;padding:0;box-shadow:0 2px 20px 0 rgba(3,18,51,.12);background:var(--f-neutral-20);border-radius:10px;z-index:9999;animation:selectorfadein 60ms;box-sizing:border-box;color:var(--f-text-01);flex-wrap:wrap;font-family:PingFangSC-Regular,Arial}.f-datepicker-container:focus{border:none;outline:0}.f-datepicker-container .arrow{display:none;width:1rem;height:6px;margin:0;position:absolute;left:8px}.f-datepicker-container .arrow::after,.f-datepicker-container .arrow::before{content:"";border-color:transparent;border-style:solid;position:absolute;display:block;border-width:0 6px 6px}.f-datepicker-container .arrow::after{top:1px}.f-datepicker-container .arrow::before{top:0}.f-datepicker-container.container-position-bottom .arrow{top:-6px}.f-datepicker-container.container-position-bottom .arrow::after,.f-datepicker-container.container-position-bottom .arrow::before{border-width:0 6px 6px;border-bottom-color:#fff}.f-datepicker-container.container-position-top{margin:-6px}.f-datepicker-container.container-position-top .arrow{top:auto;bottom:-6px}.f-datepicker-container.container-position-top .arrow::after,.f-datepicker-container.container-position-top .arrow::before{border-width:6px 6px 0;border-top-color:#fff}.f-datepicker-container .f-datepicker-sidebar{position:absolute;top:0;bottom:0;width:100px;border-right:1px solid var(--f-neutral-13);box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.f-datepicker-container .f-datepicker-sidebar button{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.f-datepicker-container .f-datepicker-sidebar button:hover{color:#409eff}.f-datepicker-container .f-datepicker-content{width:287px}.f-datepicker-container .f-datepicker-content .f-datepicker-header{display:flex;justify-content:space-between;border-bottom:1px solid var(--f-neutral-13)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-prev-btn{padding-left:1rem}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-prev-btn .f-datepicker-header-btn{color:var(--f-text-02);padding:1px 8px 1px 0}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-next-btn{padding-right:1rem}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-next-btn .f-datepicker-header-btn{color:var(--f-text-02);padding:1px 0 1px 8px}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn{height:40px;outline:0;border:0;background:var(--f-neutral-20);line-height:35px;font-size:14px;padding:1px 4px;cursor:pointer}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn:hover{color:var(--f-theme-05)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn:active{color:var(--f-theme-01)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn.f-datepicker-header-btn-disabled,.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn.f-datepicker-header-btn-disabled:active,.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn.f-datepicker-header-btn-disabled:hover{color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-monthYearText .f-datepicker-header-btn{color:var(--f-text-02)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper{width:100%;height:254px;padding:8px 12px}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table{width:100%;height:100%;max-width:100%;background-color:transparent;border-collapse:collapse;text-align:center;border:0}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table th{font-weight:400;color:var(--f-text-08)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table tr.f-datepicker-selectWeek{cursor:pointer;transition:all .3s}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table tr.f-datepicker-selectWeek:not(.f-datepicker-selectedWeek):hover{background:var(--f-neutral-10)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table tr.f-datepicker-selectedWeek{background:var(--f-neutral-09)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td{padding:0;position:relative}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td:focus{border:0;outline:0;box-shadow:none}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td.f-datepicker-weeknbr{color:var(--f-text-05)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date:hover,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month:hover,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year:hover,.f-datepicker-container .f-datepicker-select-btn:hover{color:var(--f-theme-05)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td.f-datepicker-range::before{position:absolute;top:3px;right:0;bottom:3px;left:0;display:block;background:var(--f-neutral-10);border:0;border-radius:0;content:""}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-markdate{position:absolute;top:5px;left:5px;width:4px;height:4px;border-radius:50%}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year{display:block;padding:0;margin:0 auto;text-align:center;background:0 0;border-radius:2px;transition:all .3s ease;cursor:pointer}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date:active,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month:active,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year:active{color:var(--f-theme-01)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date{width:28px;height:28px;line-height:28px;position:relative;z-index:1;border:1px solid transparent;border-radius:100%}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month-cell,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year-cell{display:inline-block;padding:3px 8px;line-height:20px;border-radius:100%;border:1px solid transparent}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-current{border:1px solid var(--f-theme-03);color:var(--f-theme-03);background:#fff;box-shadow:0 0 4px 2px rgba(var(--f-theme-03),.12)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-range{color:var(--f-theme-03);border:1px solid var(--f-aid-02);background:var(--f-aid-02)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-selected{border:1px solid transparent;background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);color:#fff;border-radius:100%;box-shadow:0 2px 6px 0 rgba(var(--f-theme-03),.4)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-selected:hover{color:#fff}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-highlight{background:#75abf2;color:#fff}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-highlight:hover{color:#fff}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td.f-datepicker-no-currmonth{color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-disabled{background:var(--f-neutral-09);color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-disabled:hover{color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-disabled.f-datepicker-selected{background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);color:#fff;opacity:.5}.f-datepicker-container .datepicker-content-has-timer{display:flex;flex-direction:column}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel{display:flex;flex:1 0 0;overflow:hidden;bottom:0}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker{display:flex;flex:1 1 0}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker .time-picker-panel-inner{box-shadow:none;display:flex;flex:1 1 0}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker .time-picker-panel-inner .time-picker-panel-combobox{flex:1 1 0;overflow:hidden}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select{height:100%;max-height:none}.f-datepicker-container .f-datepicker-commitBtn-wrapper{width:100%;text-align:right;height:2.8125rem;display:flex;align-items:center;padding:0 1.5rem;border-top:1px solid var(--f-neutral-13)}.f-datepicker-container .f-datepicker-select-btn{outline:0;border:0;cursor:pointer;flex-shrink:1;flex-grow:1;flex-basis:0}.f-datepicker-container .datepicker-multi-days-wrapper{border-left:1px solid var(--f-neutral-13)}.f-datepicker-multi-selectdays-header{border-bottom:1px solid var(--f-neutral-13)}.f-datepicker-multi-selectdays-clear{color:var(--f-text-09)}.f-datepicker-multi-selectdays-clear:hover{color:var(--f-theme-05)}.f-datepicker-multi-selectdays{color:var(--f-text-02)}.f-datepicker-multi-selectdays:hover{background:var(--f-neutral-10);color:var(--f-text-02)}.f-datepicker-multi-selectdays .remove{color:var(--f-text-09)}.f-datepicker-multi-selectdays .remove:hover{color:var(--f-theme-05)}.f-cmp-datepicker .date-range-wrapper{display:flex;padding-top:0;padding-bottom:0;align-items:center;flex-shrink:1;flex-grow:1;flex-basis:0%;background:0 0}.f-cmp-datepicker .date-range-wrapper .sub-input{outline:0;border:0;height:100%;display:block;width:100%}.f-cmp-datepicker .date-range-wrapper .sub-input.form-control{width:100%;padding:0}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper-end{flex:1 1 auto}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper{position:relative}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper::after{content:"";position:absolute;height:1px;background:var(--f-theme-04);left:0;bottom:0;width:0;transition:all .3s linear}.dropdown,.dropdown-left,.dropdown-submenu,.dropleft,.dropleft-up,.dropright,.dropright-up,.dropup,.dropup-left{position:relative}.f-cmp-datepicker .date-range-wrapper .sub-input-spliter{margin:0 4px;flex-shrink:0;line-height:1;font-size:12px;color:var(--f-text-04)}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper.f-state-focus::after{width:100%}.f-cmp-datepicker .input-group{display:flex}.f-cmp-datepicker .input-group.f-state-focus{border-color:var(--f-theme-08);box-shadow:0 0 0 2px rgba(var(--f-theme-03),.14)}.f-cmp-datepicker .input-group.f-state-disabled,.f-cmp-datepicker .input-group.f-state-readonly{box-shadow:none}@keyframes selectorfadein{from{opacity:0}to{opacity:1}}.f-datepicker-footer{display:flex;justify-content:space-between;border-top:1px solid #e4e7ef}.f-datepicker-footer .f-datepicker-redirect{margin:4px auto;line-height:32px;font-size:1rem}.f-datepicker-footer .f-datepicker-redirect>button{font-size:14px;font-weight:800}.f-daterange-select-timerange .calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox{width:100%!important}.f-dial .f-dial-range,.f-dial .f-dial-value{fill:none}.f-dial .f-dial-text{font-size:1.3rem;text-align:center}.dropdown-toggle::after,.dropup .dropdown-toggle::after,.dropup-left .dropdown-toggle::after{width:1.125em;font-size:1rem;display:inline-block}.f-discussion-group-edit{border:1px solid var(--f-neutral-04)!important;background:var(--f-neutral-12)!important}.f-discussion-group-edit .f-discussion-group-edit-container .textarea-editor a{color:var(--f-theme-03)}.f-discussion-group-edit .f-discussion-group-edit-footer{background:var(--f-neutral-09)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-item{color:var(--f-text-06)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-item .toolbar-icon{color:var(--f-text-08)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown{background:var(--f-neutral-20)!important;box-shadow:0 2px 20px 0 rgba(3,18,51,.12)!important}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-discussion-group-about-dropdown-list-detail .about-list-detail-text{color:var(--f-text-02)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-discussion-group-about-dropdown-list-detail .about-list-detail-subtext{color:var(--f-text-06)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-icon-check,.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-icon-tick::before{border:1px solid var(--f-neutral-02);color:#fff}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item.active .f-icon-check,.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item.active .f-icon-tick::before{background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .about-list-item-avatar-tip{background-color:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);color:#fff}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item:not(.about-dropdown-list-item-empty):hover{background:var(--f-neutral-11)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-about-list-btns{border-top:1px solid var(--f-neutral-06)!important;background:var(--f-neutral-09)!important}.f-discussion-dialog-content-left .f-discussion-tab-content,.f-discussion-dialog-content-right{border:1px solid var(--f-neutral-04)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-dropdown .toolbar-icon{color:var(--f-text-09)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-dropdown .toolbar-dropdown-list{background:0 2px 20px 0 rgba(3,18,51,.12);box-shadow:var(--f-neutral-20)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-dropdown .toolbar-dropdown-list ul li:hover{background:var(--f-neutral-11)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-btns .f-discussion-cancel,.farris-discussion-group-reply-tip{color:var(--f-text-04)}.f-discussion-dialog-content-left .f-discussion-tab-content .f-discussion-personnel-content .f-discussion-personnel-crumbs .crumbs-list-item{color:var(--f-text-02)}.f-discussion-dialog-content-left .f-discussion-tab-content .f-discussion-personnel-content .f-discussion-personnel-crumbs .crumbs-list-item.crumbs-list-item-disabled{color:var(--f-text-07)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-header{background:var(--f-neutral-09)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item-text .f-discussion-selected-name{color:var(--f-text-02)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item-tip{color:var(--f-text-09)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item-remove{color:var(--f-theme-05)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item:hover{background:var(--f-neutral-11)}.f-discussion-dialog-content .f-discussion-personnel-item:hover,.f-listview-active .f-tmpl-card--header-multicontent01,.f-listview-active .f-tmpl-list--columns01{background:var(--f-aid-03)}.f-discussion-dialog-content .f-discussion-personnel-item-text .f-discussion-personnel-name{color:var(--f-text-01)}.f-discussion-dialog-content .f-discussion-personnel-item-text .f-discussion-personnel-mail{color:var(--f-text-06)}.f-discussion-dialog-content .f-discussion-personnel-item.active,.f-discussion-dialog-content .f-discussion-personnel-item.selected{background:var(--f-aid-02)}.f-discussion-dialog-content .f-discussion-personnel-item.selected .f-discussion-personnel-mail,.f-discussion-dialog-content .f-discussion-personnel-item.selected .f-discussion-personnel-name{color:#c1c1c1}.f-discussion-dialog-content .f-discussion-section-list-empty .f-icon{color:var(--f-text-08)}.f-discussion-dialog-content .f-discussion-section-list-empty .section-list-empty-text{color:var(--f-text-09)}.f-discussion-dialog-content .f-discussion-personnel-item-tip{color:#fff;background-color:#4796FF}.f-discussion-dialog-content .f-discussion-section-list .section-list-item-name{color:var(--f-text-02);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-discussion-dialog-content .f-discussion-section-list .section-list-item-next{color:var(--f-theme-03)}.f-discussion-dialog-content .f-discussion-section-list .section-list-item-next::before{background:var(--f-neutral-06)}.f-discussion-dialog-content .f-discussion-section-list .section-list-item:hover{background:var(--f-neutral-11)}.f-discussion-dialog-content .f-discussion-section-list .person-list-item-content .section-list-item-name{color:var(--f-text-02)}.f-discussion-dialog-content .f-discussion-section-list .person-list-item-content .section-list-item-tip{color:var(--f-text-09)}.f-discussion-person-list-page .section-page-text{color:var(--f-text-05)}.f-discussion-person-list-page:hover .section-page-text{color:var(--f-text-02)}.f-discussion-group-content-item .discussion-item-avatar-tip{color:var(--f-text-00);background-color:var(--f-theme-05)}.dropdown-menu,.f-discussion-group-content-item .discussion-item-inner .discussion-item-username{color:var(--f-text-02)}.f-discussion-group-content-item .discussion-item-inner{border-bottom:1px solid var(--f-neutral-06)}.dropdown-item,.f-discussion-group-content-item .discussion-item-inner .discussion-item-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply-content,.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply-title{color:var(--f-text-04)}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply{background:var(--f-neutral-09)!important;border-radius:6px!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply-title .discussion-item-text-reply-name{color:rgba(var(--f-theme-05),.8)}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-time{color:var(--f-text-09)}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start .discussion-item-btns-start-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start .f-icon{color:var(--f-text-12)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:hover .discussion-item-btns-start-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:hover .f-icon{color:var(--f-theme-05)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:active .discussion-item-btns-start-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:active .f-icon{color:var(--f-theme-01)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text .discussion-item-text-message a{color:var(--f-theme-03)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text .discussion-item-text-message a:hover{color:var(--f-theme-05)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text .discussion-item-text-message a:active{color:var(--f-theme-01)!important}.dropdown-toggle::after{height:1em;font-variant:normal;font-family:FarrisIcons;font-style:normal;text-transform:none;font-weight:400;line-height:1.2;text-align:center;border:none;margin-left:.125rem;margin-right:-.375rem;vertical-align:.125rem;content:"\e015"}.dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropdown-menu{position:absolute;top:100%;left:0;z-index:300;display:none;float:left;min-width:10rem;padding:.25rem;margin:.25rem 0;font-size:.8125rem;text-align:left;list-style:none;background-color:var(--f-neutral-20);background-clip:padding-box;border:0 solid rgba(0,0,0,.15);border-radius:6px;box-shadow:0 2px 20px 0 rgba(3,18,51,.12)}.dropleft-up .dropdown-menu,.dropup .dropdown-menu,.dropup-left .dropdown-menu{top:auto;margin-bottom:.25rem;margin-top:0}.dropright .dropdown-toggle::after,.dropup .dropdown-toggle::after,.dropup-left .dropdown-toggle::after{height:1em;font-variant:normal;font-style:normal;text-transform:none;line-height:1.2;text-align:center;border:none;font-family:FarrisIcons}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{bottom:100%}.dropup .dropdown-toggle::after{font-weight:400;margin-left:.125rem;margin-right:-.375rem;vertical-align:.125rem;content:"\e013"}.dropup .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropup-left .dropdown-menu{right:0;left:auto;bottom:100%}.dropup-left .dropdown-toggle::after{font-weight:400;margin-left:.125rem;margin-right:-.375rem;vertical-align:.125rem;content:"\e013"}.dropright .dropdown-toggle::after,.dropright-up .dropdown-toggle::after{display:inline-block;content:"\e016";width:1.125em;font-size:1rem;font-weight:400}.dropup-left .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.25rem}.dropright .dropdown-toggle::after{margin-left:.125rem;margin-right:-.375rem}.dropright .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropright .dropdown-toggle::after{vertical-align:0}.dropright-up .dropdown-menu{top:auto;right:auto;left:100%;bottom:0;margin-top:0;margin-left:.25rem}.dropleft-up .dropdown-toggle::after,.dropleft-up .dropdown-toggle::before,.dropright-up .dropdown-toggle::after{height:1em;font-variant:normal;text-transform:none;line-height:1.2;text-align:center;border:none;margin-left:.125rem;font-style:normal}.dropright-up .dropdown-toggle::after{font-family:FarrisIcons;margin-right:-.375rem}.dropright-up .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropright-up .dropdown-toggle::after{vertical-align:0}.dropleft-up .dropdown-menu{right:100%;left:auto;bottom:0}.dropleft-up .dropdown-toggle::after{width:1.125em;font-family:FarrisIcons;font-size:1rem;font-weight:400;content:"\e015";margin-right:-.375rem;vertical-align:.125rem;display:none}.dropleft .dropdown-toggle::before,.dropleft-up .dropdown-toggle::before{content:"\e016";display:inline-block;font-family:FarrisIcons}.dropleft-up .dropdown-toggle::before{width:1.125em;font-size:1rem;font-weight:400}.dropleft-up .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropleft .dropdown-toggle::after,.dropleft .dropdown-toggle::before{width:1.125em;line-height:1.2;text-align:center;border:none;margin-left:.125rem;font-weight:400;font-variant:normal;font-size:1rem;height:1em;text-transform:none}.dropleft-up .dropdown-toggle::before{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.25rem}.dropleft .dropdown-toggle::after{font-family:FarrisIcons;font-style:normal;content:"\e015";margin-right:-.375rem;vertical-align:.125rem;display:none}.dropleft .dropdown-toggle::before{font-style:normal}.dropleft .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;overflow:hidden;border-top:1px solid var(--f-neutral-06)}.dropdown-item{display:block;line-height:1.25rem;clear:both;font-weight:400;text-align:inherit;white-space:nowrap;background-color:transparent;border:0;cursor:pointer;border-radius:6px}.dropdown-item:focus,.dropdown-item:hover{color:var(--f-text-02);text-decoration:none;background-color:var(--f-neutral-11)}.dropdown-item.active,.dropdown-item:active{color:var(--f-text-02);text-decoration:none;background-color:var(--f-neutral-10)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--f-text-09);background-color:transparent;cursor:default}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.25rem .5rem;margin-bottom:0;font-size:.75rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.3125rem .5rem;color:var(--f-text-04)}.dropdown-divider{margin:.25rem 0}.btn-group .btn+.dropdown-toggle-split{margin-left:-1px}.btn-group .btn-info+.dropdown-toggle-split,.btn-group .btn-primary+.dropdown-toggle-split,.btn-group .btn-success+.dropdown-toggle-split,.btn-group .btn-warning+.dropdown-toggle-split{margin-left:-1px;border-left-color:var(--f-neutral-06)}.dropdown-item{padding:.25rem .5rem}.dropdown-left>.dropdown-menu{right:0;left:auto}.dropleft>.dropdown-menu{top:0;right:100%;left:auto!important;margin-right:-1px}.dropdown-submenu .dropdown-item{padding-right:24px}.dropdown-submenu .dropdown-item.dropdown-toggle{padding-right:1rem}.dropdown-submenu>.dropdown-toggle.dropdown-toggle-split{position:absolute;width:24px;height:24px;top:50%;right:0;left:auto;margin-top:-12px;cursor:pointer;border-radius:4px;text-align:center}.dropdown-submenu>.dropdown-toggle.dropdown-toggle-split:hover{color:var(--f-text-04);background:var(--f-aid-02)}.dropdown-item .btn-link,.dropdown-item .btn-link:hover,.f-btn-icon.f-bare,.f-btn-icon.f-bare.f-state-active,.f-btn-icon.f-bare.f-state-hover,.f-btn-icon.f-bare:active,.f-btn-icon.f-bare:hover,.f-btn-icon.f-bare:hover.f-state-active,.f-btn-icon.f-bare:hover:active{color:inherit}.dropdown-submenu .dropdown-toggle:empty:after{line-height:1.5}.dropdown-submenu .dropdown-toggle:after{content:"\e014"}.dropdown-submenu>.dropdown-item.dropdown-toggle::after,.dropdown-submenu>.dropdown-item.dropdown-toggle::before{position:absolute;top:50%;right:9px;left:auto;margin-top:-.5em}.dropdown-submenu.dropleft>.dropdown-item.dropdown-toggle::before,.dropdown-submenu.dropright>.dropdown-item.dropdown-toggle::before{margin-top:-.25rem}.btn-group .btn-secondary+.dropdown-toggle-split,.dropright>.dropdown-menu{margin-left:-1px}.f-response-content .dropdown-item.f-rt-btn,.f-response-content .dropdown-item.f-rt-toggle{cursor:pointer}.f-response-content .dropdown-item.f-rt-btn.disabled,.f-response-content .dropdown-item.f-rt-toggle.disabled{cursor:default}.farris-dropdown.btn-group .dropdown-menu{max-height:unset!important;width:unset!important}.dropdown-item.btn-icontext{display:block}.f-filter-footer .footer-container,.f-sort-editor .footer-container{height:2rem;min-height:2rem;background-color:var(--f-neutral-07);line-height:2rem;flex-shrink:0}.f-list-filter .filter-expand{color:var(--f-text-07);cursor:pointer}.f-list-filter .filter-expand:hover{color:var(--f-theme-05)}.f-list-filter .filter-expand.active{color:var(--f-theme-03);background:rgba(var(--f-theme-05),.1)}.f-list-filter .filter-expand .filter-expand-tag{background-color:var(--f-semantic-danger-01)}.f-list-filter .filter-inputs-extend{border:none;background:var(--f-neutral-20)}.f-filter-wrapper .f-filter-inputs-extend .f-filter-typelist-arrow,.f-list-filter .filter-inputs-extend .filter-typelist-arrow{background:0 0;border-top-color:var(--f-neutral-20);border-right-color:transparent;border-bottom-color:transparent;border-left-color:var(--f-neutral-20)}.f-list-filter .filter-inputs-extend .filter-typelist-arrow{box-shadow:-2px -2px 5px rgba(0,0,0,.08)}.f-list-filter .filter-inputs-extend .filter-form-btns .filter-form-btn-reset::after{background:var(--f-neutral-06)}.f-list-filter .filter-search-btn-reset{color:var(--f-text-04)}.f-list-filter .filter-search-btn-reset:hover{color:var(--f-theme-05)}.f-list-filter .filter-inputs-extend{box-shadow:0 0 5px 0 rgba(0,0,0,.15)!important;border-radius:10px}.f-filter{display:block;flex-grow:1;flex-shrink:1;flex-basis:0;max-width:100%}.f-filter-wrapper{display:flex;align-items:flex-start;position:relative}.f-filter-wrapper .f-filter-wrapper-inner{display:flex;align-items:flex-start}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn{display:flex;align-items:center;flex-shrink:0;height:26px;line-height:26px;padding-left:10px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn .extend-btn-text{margin-right:2px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn .extend-btn-arrow{margin-left:8px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced{flex-shrink:0;width:24px;height:24px;margin-left:21px;line-height:24px;color:var(--f-text-07);cursor:pointer}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced:hover{color:var(--f-theme-05)}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced.active{box-shadow:0 2px 5px 0 rgba(0,0,0,.15);color:var(--f-theme-01);background:rgba(var(--f-theme-03),.1);border-radius:2px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced .f-icon{display:block;line-height:24px;margin:0 auto;font-size:18px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced .filter-expand-tag{position:absolute;right:0;top:0;display:block;width:6px;height:6px;background-color:#f5222d;border-radius:50%}.f-filter-wrapper .f-filter-inputs-extend{width:429px;right:0;top:38px;border-radius:10px;background-color:var(--f-neutral-20);box-shadow:0 0 5px 0 rgba(0,0,0,.15);z-index:101;padding:20px 0}.f-filter-wrapper .f-filter-inputs-extend .f-filter-typelist-arrow{display:block;position:absolute;right:7px;top:-4px;width:8.49px;height:8.49px;border-style:solid;border-width:4.24px;box-shadow:-2px -2px 5px rgba(0,0,0,.08);transform:translateX(-50%) rotate(45deg)}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns{margin-top:6px;padding:0 14px}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns .btn{margin-left:6px}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns .filter-form-btn-reset{position:relative;padding-right:10px;margin-right:4px}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns .filter-form-btn-reset::after{content:"";position:absolute;right:0;top:50%;width:1px;height:16px;margin-top:-8px;background:#d9d9d9}.f-filter-wrapper .f-filter-main{display:flex;justify-content:space-between}.f-filter-wrapper .f-filter-main .f-filter-list-wrapper{max-width:100%;margin-right:26px;overflow:hidden}.f-filter-wrapper .f-filter-list{display:flex;align-items:center;flex-wrap:nowrap;height:26px}.f-filter-wrapper .f-filter-list .f-filter-item{display:flex;align-items:center;flex-shrink:0;position:relative;height:26px;line-height:26px;margin-right:8px;font-size:13px;color:var(--f-text-02);border:1px solid #fff;border-radius:3px;cursor:pointer}.f-filter-wrapper .f-filter-list .f-filter-item-text{flex-shrink:0;color:var(--f-text-04)}.f-filter-wrapper .f-filter-list .f-filter-item-content{margin-left:4px;color:var(--f-text-02);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-filter-wrapper .f-filter-list .f-filter-item-arrow{flex-shrink:0;margin-left:8px;color:var(--f-text-04)}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-edit,.f-filter-wrapper .f-filter-list .f-filter-item:hover{background:rgba(var(--f-aid-05),.35);border-color:var(--f-aid-05)}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-actived{background:rgba(var(--f-aid-05),.35);border:1px solid var(--f-aid-05);border-radius:3px}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-actived:hover .f-filter-item-clear{display:flex}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-actived:hover .f-filter-item-arrow{opacity:0}.f-filter-wrapper .f-filter-list .f-filter-item-clear{display:none;flex-direction:column;justify-content:center;position:absolute;right:2px;top:0;bottom:0;cursor:pointer}.f-filter-wrapper .f-filter-list .f-filter-item-clear .f-icon{font-size:12px;color:#6388FF}.f-filter-wrapper .f-filter-list .f-filter-item-required{flex-shrink:0;margin-right:2px}.f-filter-wrapper .f-filter-list.f-filter-list-extend .f-filter-item-last,.f-filter-wrapper .f-filter-toolbars .btn,.form-group--has-tips .farris-input-wrap{margin-right:18px}.f-filter-wrapper .f-filter-list .f-filter-item-inner{display:flex;align-items:center;max-width:286px}.f-filter-wrapper .f-filter-list.f-filter-list-extend{height:auto;flex-wrap:wrap}.f-filter-wrapper .f-filter-list.f-filter-list-extend .f-filter-item{margin-bottom:6px}.f-filter-wrapper .f-filter-list-ellipsis{flex-shrink:0;width:48px;height:26px;line-height:20px;padding-right:18px;text-align:center;cursor:pointer}.f-filter-wrapper .f-filter-toolbars{flex-shrink:0;display:flex;align-items:center;padding:3px 0}.f-filter-wrapper .f-filter-list-extend .f-filter-toolbars{margin-bottom:8px}.f-filter-wrapper .f-filter-item-reminder{position:absolute;top:calc(100% - 6px);left:0;padding-top:11px;z-index:100}.f-filter-wrapper .f-filter-item-reminder .reminder-arrow{position:absolute;top:2px;left:10%}.f-filter-wrapper .f-filter-item-reminder .reminder-arrow::after{position:absolute;top:2px;display:block;content:"";border-color:transparent;border-style:solid;border-width:0 6px 8px;border-bottom-color:var(--f-theme-03)}.f-filter-wrapper .f-filter-item-reminder .reminder-inner{padding:8px 12px;font-size:13px;color:#fff;white-space:nowrap;background:linear-gradient(46deg,#2E77FF 0,#2A87FF 100%);box-shadow:2px 2px 8px 0 rgba(0,0,0,.14);border-radius:10px}.f-filter-wrapper .f-filter-item-reminder .reminder-inner .f-icon{margin-right:6px;font-size:13px}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio{margin-bottom:0;margin-top:0}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox:last-child,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio:last-child{margin-bottom:0}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox .custom-control-label,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio .custom-control-label{display:block;width:100%;line-height:30px}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox .custom-control-label::before,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio .custom-control-label::before{top:8px}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox:hover,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio:hover{background-color:var(--f-neutral-11)}.f-sidebar-filter-main .f-sidebar-filter-footer{display:flex;align-items:center;justify-content:space-between!important;height:72px!important;padding:10px 24px!important;border-top:1px dashed #eaedf3!important;background:var(--f-neutral-00)!important}.f-sidebar-filter-main .f-sidebar-header .f-tmpl-for-title-withline::before{display:none}.f-sidebar-filter-main .f-sidebar-filter-content{padding:24px 48px 24px 12px!important}.f-sidebar-filter-main .f-sidebar-filter-content .farris-form-controls-inline .farris-group-wrap .form-group{margin-bottom:10px}.f-sidebar-filter-main .f-sidebar-filter-btns .btn{height:32px;margin-right:12px}.f-sidebar-filter-main .f-sidebar-filter-btns .f-sidebar-filter-btn-confirm{padding-left:66px;padding-right:66px;margin-right:0}.f-filter-inputs-extend-list .form-group,.f-sidebar-filter-list .form-group{display:block}.f-filter-inputs-extend-list.farris-form-controls-inline .form-group,.f-sidebar-filter-list.farris-form-controls-inline .form-group{display:flex}.f-filter-panel-flexible-icon{flex-shrink:0;margin:0 6px;font-size:14px;color:#999}.f-filter-panel-wrapper{position:fixed;z-index:1050;top:0;left:0;height:100%;width:100%;pointer-events:auto}.f-filter-panel{position:absolute;z-index:100;padding-top:14px}.f-filter-panel-header{display:flex;justify-content:space-between;align-items:center}.f-filter-panel-header .panel-header-title{line-height:22px;font-size:15px;color:rgba(0,0,0,.85);font-weight:600}.f-filter-panel-content{padding-top:8px}.f-filter-panel-content .filter-type-checkboxgroup{max-height:216px;padding:6px 8px 6px 0;border-radius:2px;overflow-y:auto}.f-filter-panel-content .filter-type-checkboxgroup .custom-checkbox{padding-left:14px}.f-filter-panel-footer{display:flex;justify-content:space-between;padding-top:16px;align-items:center}.f-filter-panel-footer .filter-panel-submit{padding-left:22px;padding-right:22px;margin-left:8px}.f-filter-panel-footer .btn-link{padding-right:8px}.f-filter-panel-footer .btn-empty{position:relative;padding-left:8px}.f-filter-panel-footer .btn-empty::before{position:absolute;left:0;top:50%;width:1px;height:16px;margin-top:-8px;background-color:var(--f-neutral-08);content:""}.f-filter-panel .f-filter-panel-inner{position:relative;min-width:380px;padding:14px 24px 18px;background:var(--f-neutral-20);box-shadow:0 2px 12px 0 rgba(31,35,41,.1);border-radius:10px}.f-filter-panel .f-filter-panel-inner.f-filter-panel-inner-xs{padding:10px 4px 16px}.f-filter-panel .f-filter-panel-inner.f-filter-panel-inner-auto{min-width:auto;padding:0}.f-filter-panel-arrow{position:absolute;top:-12px;left:26px}.f-filter-panel-arrow::after{position:absolute;top:2px;display:block;content:"";border-color:transparent;border-style:solid;border-width:0 8px 10px;border-bottom-color:var(--f-neutral-20)}.f-filter-panel.f-filter-panel-radio .f-filter-panel-inner{min-width:230px}.f-filter-panel .f-panel-filter-tip{display:flex;align-items:center;margin-bottom:12px}.f-filter-panel .f-panel-filter-tip .panel-filter-tip-text{margin-right:8px}.f-filter-panel .panel-flexible-range-wrapper{align-items:center}.f-filter-panel .panel-flexible-range-wrapper .f-icon{flex-shrink:0;margin:0 8px;font-size:14px;color:#999}.f-filter-panel .panel-flexible-range-wrapper .f-cmp-datepicker,.f-filter-panel .panel-flexible-range-wrapper .f-cmp-number-spinner{width:150px}.f-filter-panel-date-tags{display:flex;flex-direction:row;align-items:center;padding-top:12px}.f-filter-panel-date-tags .panel-date-tag{height:24px;line-height:22px;padding:0 14px;margin-right:8px;font-size:12px;background-color:var(--f-neutral-00);border:1px solid var(--f-neutral-08);border-radius:13px;cursor:pointer}.f-filter-panel-date-tags .panel-date-tag.active{background:rgba(var(--f-theme-03),.09);border:1px solid}.filter-panel-checkbox{width:100%;height:30px;line-height:30px;margin:0;padding-right:0;background:var(--f-neutral-09)}.filter-panel-checkbox .custom-control-label{display:block;cursor:pointer;width:100%}.filter-panel-checkbox .custom-control-label::before{top:50%;transform:translateY(-50%)}.f-filter-panel-radiogroup .panel-radiogroup-item{display:flex;align-items:center;padding:.5rem 1.375rem;border:0;cursor:pointer}.f-filter-panel-radiogroup .panel-radiogroup-item.panel-radiogroup-item-active{color:var(--f-text-02);background:var(--f-neutral-10);border-radius:3px}.f-filter-panel-radiogroup .panel-radiogroup-item-text{font-size:14px;line-height:18px}.f-filter-panel-radiogroup .panel-radiogroup-item:hover{color:var(--f-text-02);background-color:var(--f-neutral-11)}.f-filter-search-result-panel{position:absolute;left:0;top:26px;z-index:100;width:200px;padding:8px;color:rgba(0,0,0,.85);background-color:#fff;box-shadow:0 2px 12px 0 rgba(31,35,41,.1);border-radius:4px}.f-filter-search-result-panel .search-result-title{line-height:22px;font-size:14px;font-weight:600}.f-filter-search-result-panel .search-result-list .search-result-item{line-height:26px;font-size:14px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.f-filter-search-result-panel .search-result-list .search-result-item:hover{background:rgba(42,135,255,.06)}.f-filter-panel-search-tags{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;max-width:320px;padding-top:12px}.f-filter-panel-search-tags .panel-search-tag{display:flex;align-items:center;height:24px;line-height:22px;margin-right:8px;margin-bottom:8px;font-size:12px;color:#333;background-color:#fff;border:1px solid rgba(216,220,230,.6);border-radius:2px;cursor:pointer}.f-filter-panel-search-tags .panel-search-tag:last-child{margin-right:0}.f-filter-panel-search-tags .panel-search-tag .panel-search-tag-text{max-width:72px;padding-left:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.f-filter-panel-search-tags .panel-search-tag .panel-search-tag-remove{height:22px;line-height:22px;margin-left:6px;margin-right:8px;font-size:14px;color:#999;cursor:pointer}.f-filter-panel-search-tags .panel-search-tag:active{background:rgba(42,135,255,.06);border:1px solid rgba(42,135,255,.16)}.f-filter-container{padding-bottom:12px}.f-filter-wrapper .f-filter-list .f-filter-item{padding:0 20px 0 12px!important}.f-filter-wrapper .f-filter-list .f-filter-item-clear{padding:0 2px!important}.container,.container-fluid{padding-right:14px;padding-left:14px;margin-right:auto;margin-left:auto}.container{width:100%}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:888px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%}.row{display:flex;flex-wrap:wrap;margin-right:-14px;margin-left:-14px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-el,.col-el-1,.col-el-10,.col-el-11,.col-el-12,.col-el-2,.col-el-3,.col-el-4,.col-el-5,.col-el-6,.col-el-7,.col-el-8,.col-el-9,.col-el-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:14px;padding-left:14px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}.f-area-response [class*=col-xs]{flex:none;max-width:none}.f-area-response.f-area-response--xs .col-xs-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--xs .col-xs-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--xs .col-xs-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--xs .col-xs-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--xs .col-xs-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--xs .col-xs-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--xs .col-xs-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--xs .col-xs-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--xs .col-xs-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--xs .col-xs-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--xs .col-xs-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--xs .col-xs-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-sm-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-sm-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-sm-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-sm-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}.f-area-response [class*=col-sm]{flex:none;max-width:none}.f-area-response.f-area-response--sm .col-sm-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--sm .col-sm-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--sm .col-sm-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--sm .col-sm-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--sm .col-sm-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--sm .col-sm-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--sm .col-sm-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--sm .col-sm-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--sm .col-sm-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--sm .col-sm-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--sm .col-sm-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--sm .col-sm-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-md-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-md-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-md-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-md-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-md-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-md-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-md-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-md-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-md-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-md-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-md-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-md-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}.f-area-response [class*=col-md]{flex:none;max-width:none}.f-area-response.f-area-response--md .col-md-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--md .col-md-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--md .col-md-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--md .col-md-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--md .col-md-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--md .col-md-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--md .col-md-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--md .col-md-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--md .col-md-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--md .col-md-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--md .col-md-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--md .col-md-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:888px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-lg-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-lg-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-lg-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-lg-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}.f-area-response [class*=col-lg]{flex:none;max-width:none}.f-area-response.f-area-response--lg .col-lg-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--lg .col-lg-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--lg .col-lg-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--lg .col-lg-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--lg .col-lg-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--lg .col-lg-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--lg .col-lg-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--lg .col-lg-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--lg .col-lg-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--lg .col-lg-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--lg .col-lg-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--lg .col-lg-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-xl-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-xl-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-xl-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-xl-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.f-area-response [class*=col-xl]{flex:none;max-width:none}.f-area-response.f-area-response--xl .col-xl-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--xl .col-xl-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--xl .col-xl-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--xl .col-xl-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--xl .col-xl-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--xl .col-xl-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--xl .col-xl-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--xl .col-xl-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--xl .col-xl-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--xl .col-xl-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--xl .col-xl-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--xl .col-xl-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:1690px){.col-el{flex-basis:0;flex-grow:1;max-width:100%}.col-el-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-el-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-el-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-el-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-el-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-el-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-el-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-el-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-el-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-el-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-el-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-el-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-el-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-el-first{order:-1}.order-el-last{order:13}.order-el-0{order:0}.order-el-1{order:1}.order-el-2{order:2}.order-el-3{order:3}.order-el-4{order:4}.order-el-5{order:5}.order-el-6{order:6}.order-el-7{order:7}.order-el-8{order:8}.order-el-9{order:9}.order-el-10{order:10}.order-el-11{order:11}.order-el-12{order:12}.offset-el-0{margin-left:0}.offset-el-1{margin-left:8.3333333333%}.offset-el-2{margin-left:16.6666666667%}.offset-el-3{margin-left:25%}.offset-el-4{margin-left:33.3333333333%}.offset-el-5{margin-left:41.6666666667%}.offset-el-6{margin-left:50%}.offset-el-7{margin-left:58.3333333333%}.offset-el-8{margin-left:66.6666666667%}.offset-el-9{margin-left:75%}.offset-el-10{margin-left:83.3333333333%}.offset-el-11{margin-left:91.6666666667%}}.f-area-response [class*=col-el]{flex:none;max-width:none}.f-area-response.f-area-response--el .col-el-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--el .col-el-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--el .col-el-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--el .col-el-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--el .col-el-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--el .col-el-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--el .col-el-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--el .col-el-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--el .col-el-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--el .col-el-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--el .col-el-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--el .col-el-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@font-face{font-family:FarrisIcons;font-style:normal;font-weight:400;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI2JE+JAAABjAAAAGBjbWFwTohH7gAAC/AAACWUZ2x5ZqfrFDEAADaIAAH0DGhlYWQnvvaKAAAA4AAAADZoaGVhCNUHTgAAALwAAAAkaG10eApz/50AAAHsAAAKBGxvY2GWVxNEAAAxhAAABQRtYXhwA6wBEAAAARgAAAAgbmFtZchH0mwAAiqUAAACi3Bvc3QSpDltAAItIAAAK3cAAQAAA4D/gABcBVX/9v/3BQAAAQAAAAAAAAAAAAAAAAAAAoEAAQAAAAEAAGP+/t1fDzz1AAsEAAAAAADh1NlIAAAAAOHU2Uj/9v9xBQADjAAAAAgAAgAAAAAAAAABAAACgQEEACEAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQEAgGQAAUAAAKJAswAAACPAokCzAAAAesAMgEIAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOAA7LcDgP+AAAAD3ACPAAAAAQAAAAAAAAAAAAAAAAACBAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQA//8EAP//BAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAQAABAD/+QQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/5BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/2BAD/9gQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//kEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAP//BAD//wQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEVQAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABEQAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEkgAABJIAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAASSAAAEAAAABJIAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAP/9BAAAAAQAAAAEAAAABAD//wQA//8EAP/9BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAREAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//8EAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQ8AAAENf/+BAAAAAQA//8EAAAABAD//wQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//4ETgAABAAAAAVVAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE/wAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAAHMAABAAAAAAYqAAMAAQAAACwAAwAKAAAHMAAEBf4AAAA4ACAABAAY4DLhSeIO4wrlKuYr5kPmmua85tfnBegs6SLrGOs/60/rb+t/64nrqeu568nr2evp6/nsqey3//8AAOAA4QDiAOMA5QDmAOYt5kXmvObX5wDoAOkA6wTrGutB61HrceuB65rrsOvA69Dr4evw7KDssP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAOACcAS4BSgFeAbICCAI0At4C3gLeAugDQAOEA6wD9gQSBE4EagR6BJgEqgS8BM4E3gTwBQIAAAGPAGsAZgBhAoACfgJ/An0AZwBlAGIAZAJzAnECcgJwAngAYwBsAnwCegJ7AnkAbQBoAGkAagBeAA8AEQAVABMAEgBYAFMCdgJ3AnUBrwBSAFYAUQBZAF0AXwBgAFoCbwBOAFUCXgAEAE8AWwA5ABQAOgA9AAMBrwA/AFwASwJ0AEYAQgBKADwANwA7ADgAPgAKAAgABwBAACECawJsAEgCagHpAm0AKgHoAm4AIwAkACkAJgAWAA0AJQBBAEUATABJAEQARwAoACcAIAAiADYALgAvADIBsAA1Ak4ATQBDAAkCaQBXADQAFwAMADEALQAsADMAMAArAB0AGgAZAAsAHwAbABwAGAAeAAYABQAQAFAAVAGOAYUBiQGMAmgCZwHnAkkCQAGHAYsCSAJHAY0BiAGGAYoBfAGDAX8BgQGCAYABewGEAX4BfQF1AXMBcQFyAXkBdwF6AXQBeAF2AWoBbQFvAWcBaQFsAW4BcAFoAWsBZgFiAV0BZAFfAWEBYwFeAWUBYAFDAUgBSQFAAUIBRgFHAUUBQQFPAVABTQFLAU4BTAFEAVwBWgFbAVYBVAFXAVgBVQFZAVIBUwFKAVEBAAECAQEA/wD6ASYBPQEsATsBOQEvAPsBKgE0APwBBwEJAREBCgEIAQ0BBgEFAQ4BAwEQATMBIQEgAPUAkAE3ARkBMgD4AI4AigEkAI8AiwEXAP0BOgE+AT8BMQD+ARUBEwESAR8A+QEbARQBGAEaATUBIgDzASMBKwELARwBHgEoAScBJQEtATgBNgEEAQwBFgD3APIBKQD0AS4BMAE8AR0BDwCMAI0AngCXAJ8AkQCTAJ0AqACmAKAApwClAKsAnACWAJIAlACbAJoAlQCYAH4AfACjAKQAqgCtAK4AoQB9AIEAiQCHAIQAiACAAIYAhQB7AKkB5wD2AIIAfwCDAG4AegB5AHgAdwB2AHMAdAB1AHIAcQBvAHAArACiAJkA5gDsAOsA7gDpAOoA7wDnAOMA5ADwAO0A5QDoAPEA2QDbANoA4gDcAN4A3QDfAOAA4QDXANAA0wDRANYA1QDUANIAzwDYAMYAzADIAMkAxQDOAMoAxwDNAMsAwQDAAMMAvADCALsAxAC/AL0AvgCwALkArwC1ALQAtgCyALgAsQC6ALcAswJfAlwCYAJmAmUCZAJjAmICYQJdAlsCWgJZAlMCVgJRAlICVAJVAlcCWAJQAk8CTgJNAkwBsAJLAkoCRQJGAkECQgJDAkQCMQIwAj8CPgI9AjwCOwI4AjkCOgIzAjQCNQI2AjcCMgIvAi4CLQIsAisCKgIpAigCJwImAiUCJAIjAiICIAIhAh8CHgIdAhwCGwIaAhkCGAIXAhYCFQIUAhMCEgIRAhACDwIOAg0CDAILAgoCCQIIAgcCBgIFAgQCAwICAgECAAH/Af4B/QH8AfsB+gH5AfgB9wH2AfUB9AHzAfIB8QHwAe8B7gHtAewBrwHrAeoB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdIB0QHQ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AAAAhAAA5pUAAOaVAAAAiAAA5pYAAOaWAAAAgAAA5pcAAOaXAAAAhgAA5pgAAOaYAAAAhQAA5pkAAOaZAAAAewAA5poAAOaaAAAAqQAA5rwAAOa8AAAB5wAA5tcAAObXAAAA9gAA5wAAAOcAAAAAggAA5wEAAOcBAAAAfwAA5wIAAOcCAAAAgwAA5wMAAOcDAAAAbgAA5wQAAOcEAAAAegAA5wUAAOcFAAAAeQAA6AAAAOgAAAAAeAAA6AEAAOgBAAAAdwAA6AIAAOgCAAAAdgAA6AMAAOgDAAAAcwAA6AQAAOgEAAAAdAAA6AUAAOgFAAAAdQAA6AYAAOgGAAAAcgAA6AcAAOgHAAAAcQAA6AgAAOgIAAAAbwAA6AkAAOgJAAAAcAAA6AoAAOgKAAAArAAA6AsAAOgLAAAAogAA6AwAAOgMAAAAmQAA6A0AAOgNAAAA5gAA6A4AAOgOAAAA7AAA6A8AAOgPAAAA6wAA6BAAAOgQAAAA7gAA6BEAAOgRAAAA6QAA6BIAAOgSAAAA6gAA6BMAAOgTAAAA7wAA6BQAAOgUAAAA5wAA6BUAAOgVAAAA4wAA6BYAAOgWAAAA5AAA6BcAAOgXAAAA8AAA6BgAAOgYAAAA7QAA6BkAAOgZAAAA5QAA6BoAAOgaAAAA6AAA6BsAAOgbAAAA8QAA6BwAAOgcAAAA2QAA6B0AAOgdAAAA2wAA6B4AAOgeAAAA2gAA6B8AAOgfAAAA4gAA6CAAAOggAAAA3AAA6CEAAOghAAAA3gAA6CIAAOgiAAAA3QAA6CMAAOgjAAAA3wAA6CQAAOgkAAAA4AAA6CUAAOglAAAA4QAA6CYAAOgmAAAA1wAA6CcAAOgnAAAA0AAA6CgAAOgoAAAA0wAA6CkAAOgpAAAA0QAA6CoAAOgqAAAA1gAA6CsAAOgrAAAA1QAA6CwAAOgsAAAA1AAA6QAAAOkAAAAA0gAA6QEAAOkBAAAAzwAA6QIAAOkCAAAA2AAA6QMAAOkDAAAAxgAA6QQAAOkEAAAAzAAA6QUAAOkFAAAAyAAA6QYAAOkGAAAAyQAA6QcAAOkHAAAAxQAA6QgAAOkIAAAAzgAA6QkAAOkJAAAAygAA6QoAAOkKAAAAxwAA6QsAAOkLAAAAzQAA6QwAAOkMAAAAywAA6Q0AAOkNAAAAwQAA6Q4AAOkOAAAAwAAA6Q8AAOkPAAAAwwAA6RAAAOkQAAAAvAAA6REAAOkRAAAAwgAA6RIAAOkSAAAAuwAA6RMAAOkTAAAAxAAA6RQAAOkUAAAAvwAA6RUAAOkVAAAAvQAA6RYAAOkWAAAAvgAA6RcAAOkXAAAAsAAA6RgAAOkYAAAAuQAA6RkAAOkZAAAArwAA6RoAAOkaAAAAtQAA6RsAAOkbAAAAtAAA6RwAAOkcAAAAtgAA6R0AAOkdAAAAsgAA6R4AAOkeAAAAuAAA6R8AAOkfAAAAsQAA6SAAAOkgAAAAugAA6SEAAOkhAAAAtwAA6SIAAOkiAAAAswAA6wQAAOsEAAACXwAA6wUAAOsFAAACXAAA6wYAAOsGAAACYAAA6wcAAOsHAAACZgAA6wgAAOsIAAACZQAA6wkAAOsJAAACZAAA6woAAOsKAAACYwAA6wsAAOsLAAACYgAA6wwAAOsMAAACYQAA6w0AAOsNAAACXQAA6w4AAOsOAAACWwAA6w8AAOsPAAACWgAA6xAAAOsQAAACWQAA6xEAAOsRAAACUwAA6xIAAOsSAAACVgAA6xMAAOsTAAACUQAA6xQAAOsUAAACUgAA6xUAAOsVAAACVAAA6xYAAOsWAAACVQAA6xcAAOsXAAACVwAA6xgAAOsYAAACWAAA6xoAAOsaAAACUAAA6xsAAOsbAAACTwAA6xwAAOscAAACTgAA6x0AAOsdAAACTQAA6x4AAOseAAACTAAA6x8AAOsfAAABsAAA6yAAAOsgAAACSwAA6yEAAOshAAACSgAA6yIAAOsiAAACRQAA6yMAAOsjAAACRgAA6yQAAOskAAACQQAA6yUAAOslAAACQgAA6yYAAOsmAAACQwAA6ycAAOsnAAACRAAA6ygAAOsoAAACMQAA6ykAAOspAAACMAAA6yoAAOsqAAACPwAA6ysAAOsrAAACPgAA6ywAAOssAAACPQAA6y0AAOstAAACPAAA6y4AAOsuAAACOwAA6y8AAOsvAAACOAAA6zAAAOswAAACOQAA6zEAAOsxAAACOgAA6zIAAOsyAAACMwAA6zMAAOszAAACNAAA6zQAAOs0AAACNQAA6zUAAOs1AAACNgAA6zYAAOs2AAACNwAA6zcAAOs3AAACMgAA6zgAAOs4AAACLwAA6zkAAOs5AAACLgAA6zoAAOs6AAACLQAA6zsAAOs7AAACLAAA6zwAAOs8AAACKwAA6z0AAOs9AAACKgAA6z4AAOs+AAACKQAA6z8AAOs/AAACKAAA60EAAOtBAAACJwAA60IAAOtCAAACJgAA60MAAOtDAAACJQAA60QAAOtEAAACJAAA60UAAOtFAAACIwAA60YAAOtGAAACIgAA60cAAOtHAAACIAAA60gAAOtIAAACIQAA60kAAOtJAAACHwAA60oAAOtKAAACHgAA60sAAOtLAAACHQAA60wAAOtMAAACHAAA600AAOtNAAACGwAA604AAOtOAAACGgAA608AAOtPAAACGQAA61EAAOtRAAACGAAA61IAAOtSAAACFwAA61MAAOtTAAACFgAA61QAAOtUAAACFQAA61UAAOtVAAACFAAA61YAAOtWAAACEwAA61cAAOtXAAACEgAA61gAAOtYAAACEQAA61kAAOtZAAACEAAA61oAAOtaAAACDwAA61sAAOtbAAACDgAA61wAAOtcAAACDQAA610AAOtdAAACDAAA614AAOteAAACCwAA618AAOtfAAACCgAA62AAAOtgAAACCQAA62EAAOthAAACCAAA62IAAOtiAAACBwAA62MAAOtjAAACBgAA62QAAOtkAAACBQAA62UAAOtlAAACBAAA62YAAOtmAAACAwAA62cAAOtnAAACAgAA62gAAOtoAAACAQAA62kAAOtpAAACAAAA62oAAOtqAAAB/wAA62sAAOtrAAAB/gAA62wAAOtsAAAB/QAA620AAOttAAAB/AAA624AAOtuAAAB+wAA628AAOtvAAAB+gAA63EAAOtxAAAB+QAA63IAAOtyAAAB+AAA63MAAOtzAAAB9wAA63QAAOt0AAAB9gAA63UAAOt1AAAB9QAA63YAAOt2AAAB9AAA63cAAOt3AAAB8wAA63gAAOt4AAAB8gAA63kAAOt5AAAB8QAA63oAAOt6AAAB8AAA63sAAOt7AAAB7wAA63wAAOt8AAAB7gAA630AAOt9AAAB7QAA634AAOt+AAAB7AAA638AAOt/AAABrwAA64EAAOuBAAAB6wAA64IAAOuCAAAB6gAA64MAAOuDAAAB5gAA64QAAOuEAAAB5QAA64UAAOuFAAAB5AAA64YAAOuGAAAB4wAA64cAAOuHAAAB4gAA64gAAOuIAAAB4QAA64kAAOuJAAAB4AAA65oAAOuaAAAB3wAA65sAAOubAAAB3gAA65wAAOucAAAB3QAA650AAOudAAAB3AAA654AAOueAAAB2wAA658AAOufAAAB2gAA66AAAOugAAAB2QAA66EAAOuhAAAB2AAA66IAAOuiAAAB1wAA66MAAOujAAAB1gAA66QAAOukAAAB1QAA66UAAOulAAAB1AAA66YAAOumAAAB0wAA66cAAOunAAAB0gAA66gAAOuoAAAB0QAA66kAAOupAAAB0AAA67AAAOuwAAABzwAA67EAAOuxAAABzgAA67IAAOuyAAABzQAA67MAAOuzAAABzAAA67QAAOu0AAABywAA67UAAOu1AAABygAA67YAAOu2AAAByQAA67cAAOu3AAAByAAA67gAAOu4AAABxwAA67kAAOu5AAABxgAA68AAAOvAAAABxQAA68EAAOvBAAABxAAA68IAAOvCAAABwwAA68MAAOvDAAABwgAA68QAAOvEAAABwQAA68UAAOvFAAABwAAA68YAAOvGAAABvwAA68cAAOvHAAABvgAA68gAAOvIAAABvQAA68kAAOvJAAABvAAA69AAAOvQAAABuwAA69EAAOvRAAABugAA69IAAOvSAAABuQAA69MAAOvTAAABuAAA69QAAOvUAAABtwAA69UAAOvVAAABtgAA69YAAOvWAAABtQAA69cAAOvXAAABtAAA69gAAOvYAAABswAA69kAAOvZAAABsgAA6+EAAOvhAAABsQAA6+IAAOviAAABsAAA6+MAAOvjAAABrwAA6+QAAOvkAAABrgAA6+UAAOvlAAABrQAA6+YAAOvmAAABrAAA6+cAAOvnAAABqwAA6+gAAOvoAAABqgAA6+kAAOvpAAABqQAA6/AAAOvwAAABqAAA6/EAAOvxAAABpwAA6/IAAOvyAAABpgAA6/MAAOvzAAABpQAA6/QAAOv0AAABpAAA6/UAAOv1AAABowAA6/YAAOv2AAABogAA6/cAAOv3AAABoQAA6/gAAOv4AAABoAAA6/kAAOv5AAABnwAA7KAAAOygAAABngAA7KEAAOyhAAABnQAA7KIAAOyiAAABnAAA7KMAAOyjAAABmwAA7KQAAOykAAABlgAA7KUAAOylAAABlQAA7KYAAOymAAABlAAA7KcAAOynAAABkwAA7KgAAOyoAAABkgAA7KkAAOypAAABkQAA7LAAAOywAAABkAAA7LEAAOyx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Ad8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCAAphLWNodWxpcmVuCmNsb2NrLWVjYjUKY2xvY2stZTEwNwllMTAwLXVuZG8OZTIwOS1zdWJ0aXRsZXMHZTIwOC1oZBJlMTE3LWNhbmNlbC1jaXJjbGUTZTExNi1jYW5jZWwtb3V0bGluZQxlMTNkLXByZXZpZXcLZTExNS1jYW5jZWwEc3RvcApjYWxjdWxhdG9yDHNvcnQtZGVzYy1zbQ5lbmNsb3N1cmVfZWRpdBJlMDFjLWFycm93LXBhcmVudDENZTIwYS1wbGF5bGlzdBBlMDFkLWFycm93LXJvb3QxEWUwMjAtYXJyb3dzLXN3YXAxF2UwMWYtYXJyb3dzLWRpbWVuc2lvbnMxE2UxMDQtbm9uLXJlY3VycmVuY2UVZTAxZS1hcnJvd3MtcmVzaXppbmcxEGUxMjctc29ydC1hc2Mtc20IZTE0MS1wYW4OZTIwNi12b2x1bWUtdXAKZTIwMS1wYXVzZQllMjAwLXBsYXkMZTIwNC1mb3J3YXJkEGUyMDUtdm9sdW1lLWRvd24UZTE0OS1rcGktc3RhdHVzLW9wZW4PZTIwNy12b2x1bWUtb2ZmC2UyMDMtcmV3aW5kDWUxMzItZG93bmxvYWQSZTExOS1jaGVjay1vdXRsaW5lC2UxMzMtdXBsb2FkEmUxMjMtbWludXMtY2lyY2xlMQ1lMTI0LXNvcnQtYXNjC2UxMjktZmlsdGVyC2UxMjYtdW5zb3J0C2UxMzEtbG9nb3V0CmUxMzAtbG9naW4OZTEyNS1zb3J0LWRlc2MQZTEyMC1wbHVzLWNpcmNsZRRlMTQ4LWtwaS1zdGF0dXMtaG9sZAxlMTQ1LXBsdXMtc20OZTE0NC1jb25uZWN0b3IWZTEzNS1oeXBlcmxpbmstb3Blbi1zbQtlMTM2LWxhdW5jaBRlMTQ3LWtwaS1zdGF0dXMtZGVueQllMTQzLWNhcnQLZTEzNy13aW5kb3cNZTE0Ni1taW51cy1zbQ1lMTQwLXpvb20tb3V0FGUxMzktd2luZG93LW1pbmltaXplE2UxMzQtaHlwZXJsaW5rLW9wZW4SZTExMS1saW5rLXZlcnRpY2FsCWUxMTMtbG9jawtlMTAzLXJlbG9hZA1lMTA1LXJlc2V0LXNtFGUxMTItdW5saW5rLXZlcnRpY2FsFmUxMTAtdW5saW5rLWhvcml6b250YWwOZTEwNi1yZWxvYWQtc20LZTExNC11bmxvY2sLZTEwOS1mbG9wcHkKZTExOC1jaGVjaxFlMTJhLWZpbHRlci1jbGVhchJlMTBlLWF0dGFjaG1lbnQtNDULZTEzYy13cmVuY2gaZTEyZS1maWx0ZXItYWRkLWV4cHJlc3Npb24OZTEyYi1maWx0ZXItc20PZTEwZC1hdHRhY2htZW50FWUxMmYtZmlsdGVyLWFkZC1ncm91cBJlMTFjLWNsb3NlLW91dGxpbmUYZTEyZC1maWx0ZXItc29ydC1kZXNjLXNtFGUxMGYtbGluay1ob3Jpem9udGFsCGUxMGItZGl0F2UxMmMtZmlsdGVyLXNvcnQtYXNjLXNtCmUxM2ItZ2VhcnMJZTAzMC1tZW51CWUxMDEtcmVkbwplMjBiLWF1ZGlvEmUwMjktbGF5b3V0LTEtYnktNBFlMDI3LWhhbmRsZXItZHJhZw9lMDIyLWNhdGVnb3JpemUMZTIwYy1wbGF5LXNtEmUwMzEtbW9yZS12ZXJ0aWNhbAtlMDI4LWxheW91dAxlMTNmLXpvb20taW4SZTAyMS1kcmFnLWFuZC1kcm9wEmUwMmEtbGF5b3V0LTItYnktMgllMDJlLXJvd3MKZTEwMi1yZXNldAplMTBhLXByaW50GGUwMmItbGF5b3V0LXNpZGUtYnktc2lkZRBlMDFiLWFycm93LWRyaWxsE2UwMmMtbGF5b3V0LXN0YWNrZWQMZTAyZC1jb2x1bW5zFWUwMDMtYXJyb3ctNDUtdXAtbGVmdBNlMDBhLWFycm93LWVuZC1kb3duFWUwMTEtYXJyb3dzLW5vLWNoYW5nZQtlMDBiLXNlZWstdxRlMDA5LWFycm93LWVuZC1yaWdodBdlMDAyLWFycm93LTQ1LWRvd24tbGVmdBFlMDA4LWFycm93LWVuZC11cBBlMDE4LWFycm93LXJpZ2h0D2UwMTktYXJyb3ctZG93bg9lMDFhLWFycm93LWxlZnQYZTAwMS1hcnJvdy00NS1kb3duLXJpZ2h0GGUwMTItYXJyb3ctb3ZlcmZsb3ctZG93bg1lMDE3LWFycm93LXVwFmU3MDMtbWFya2VyLXBpbi10YXJnZXQNZTgwOC1kaWdnLWJveAplODA5LWVtYWlsCWU4MDctZGlnZxJlODA2LWRlbGljaW91cy1ib3gMZTgwMy1ibG9nZ2VyEGU4MDQtYmxvZ2dlci1ib3gOZTgwNS1kZWxpY2lvdXMKZTgwMi1pbmJveAllODAxLXVzZXIKZTgwMC1zaGFyZQplNzA1LXVucGluCGU3MDQtcGluDmU2OTktZm9udC1zaXplEGU2ODktcGFuZS1mcmVlemUcZTY5MC10b2dnbGUtZnVsbC1zY3JlZW4tbW9kZRJlNjg4LXRhYmxlLXVubWVyZ2UKZTcwMS1nbG9iZRJlNjk2LWN1c3RvbS1mb3JtYXQPZTY5MS1mb3JtdWxhLWZ4EmU3MDAtZ2xvYmUtb3V0bGluZQ9lNzAyLW1hcmtlci1waW4LZTY5NC1kb2xsYXIVZTY5OC1kZWNpbWFsLWRlY3JlYXNlFWU2OTctZGVjaW1hbC1pbmNyZWFzZQtlNjkzLXN5bWJvbAxlNjk1LXBlcmNlbnQIZTY5Mi1zdW0TZTY0My10ZXh0Ym94LWhpZGRlbhVlNjQ3LXRlbXBsYXRlLW1hbmFnZXIUZTY3Mi1oeXBlcmxpbmstZ2xvYmUbZTY3My1oeXBlcmxpbmstZ2xvYmUtcmVtb3ZlDGU2NDItdGV4dGJveA9lNjQ2LWVkaXQtdG9vbHMLZTYzZC1idXR0b24KZTY3Ny10YWJsZRFlNjgyLXRhYmxlLWRlbGV0ZRVlNjc4LXRhYmxlLXByb3BlcnRpZXMQZTY4My1jZWxscy1tZXJnZRxlNjg2LWNlbGwtc3BsaXQtaG9yaXpvbnRhbGx5FmU2ODEtdGFibGUtY2VsbC1kZWxldGULZTY3NS1hbmNob3IbZTY4Ny1jY2VsbC1zcGxpdC12ZXJ0aWNhbGx5EWU4MGMtZmFjZWJvb2stYm94G2U2ODUtY2VsbHMtbWVyZ2UtdmVydGljYWxseR1lNjg0LWNlbGxzLW1lcmdlLWhvcml6b250YWxseRVlNjgwLXRhYmxlLXJvdy1kZWxldGUPZTY3OS10YWJsZS1jZWxsFGU2NzQtaHlwZXJsaW5rLWVtYWlsF2U2NzYtdGFibGUtbGlnaHQtZGlhbG9nHmU2N2MtdGFibGUtY29sdW1uLWluc2VydC1yaWdodBRlNjhmLXZhbGlkYXRpb24tZGF0YQ1lODBiLWZjYWVib29rD2U2OGEtcm93LWZyZWV6ZRJlNjhiLWNvbHVtbi1mcmVlemUbZTY3ZS10YWJsZS1yb3ctaW5zZXJ0LWJlbG93HWU2N2ItdGFibGUtY29sdW1uLWluc2VydC1sZWZ0G2U2N2QtdGFibGUtcm93LWluc2VydC1hYm92ZRplNjdhLXRhYmxlLWNlbGwtcHJvcGVydGllcxxlNjlhLWltYWdlLWFic29sdXRlLXBvc2l0aW9uEmU2OGMtdG9vbGJhci1mbG9hdBhlNjdmLXRhYmxlLWNvbHVtbi1kZWxldGUOZTgwYS1lbWFpbC1ib3gSZTY4ZC1zcGVsbC1jaGVja2VyFWU2OGUtdmFsaWRhdGlvbi14aHRtbAhlOTE5LWNzcwplOTE3LWh0bWw1B2U5MWYtdmILZTkxZC12YnByb2oUZTkyMi1maWxlLWhvcml6b250YWwIZTkxYi1leGUHZTkxYS1qcwtlOTFjLWNzcHJvagplOTIxLWNsb3VkB2U5MWUtY3MJZTkxOC1odG1sCGU5MjAtc2xuDmU5MTItZmlsZS1hc2N4D2U5MTAtZmlsZS1mbGFzaAllOTE1LWZpbG0JZTkxNi1jc3MzDWU5MTQtZmlsZS16aXANZTkwZS1maWxlLXBkZg1lOTBkLWZpbGUtcHB0EGU5MTEtZmlsZS1jb25maWcNZTkwZi1maWxlLXBzZA1lOTEzLWZpbGUtYmFjDWU5MDctZmlsZS1hZGQOZTkwMy1mb2xkZXItdXAPZTkwYS1maWxlLWV4Y2VsFWU5MDUtYWdncmVnYXRlLWZpZWxkcwllOTA2LWZpbGUIZTkwOS1jc3YIZTkwYy1tZGIQZTkwNC1mb2xkZXItbW9yZQ5lOTBiLWZpbGUtd29yZA1lOTA4LWZpbGUtdHh0EGU5MDEtZm9sZGVyLW9wZW4IZTgyNy1yc3MKZTgyOS12aW1lbwtlOTAwLWZvbGRlcgxlODI4LXJzcy1ib3gQZTgyYy15b3V0dWJlLWJveAxlODJiLXlvdXR1YmUOZTgyYS12aW1lby1ib3gRZTgyNi1kcmliYmJsZS1ib3gPZTkwMi1mb2xkZXItYWRkFmU4MWMtdGVsbC1hLWZyaWVuZC1ib3gPZTgxZS10dW1ibHItYm94C2U4MWQtdHVtYmxyEGU4MjAtdHdpdHRlci1ib3gPZTgyMi15YW1tZXItYm94C2U4MjEteWFtbWVyDGU4MjMtYmVoYW5jZRBlODI0LWJlaGFuY2UtYm94DWU4MjUtZHJpYmJibGUMZTgxZi10d2l0dGVyDmU4MTUtcGludGVyZXN0EmU4MTYtcGludGVyZXN0LWJveBFlODE5LXN0dW1ibGUtdXBvbgtlODBkLWdvb2dsZRBlODE0LW15c3BhY2UtYm94FWU4MWEtc3R1bWJsZS11cG9uLWJveA1lODExLWxpbmtlZGluEWU4MTItbGlua2VkaW4tYm94EGU4MGYtZ29vZ2xlLXBsdXMPZTgwZS1nb29nbGUtYm94D2U4MTgtcmVkZGl0LWJveBRlODEwLWdvb2dsZS1wbHVzLWJveAxlODEzLW15c3BhY2ULZTgxNy1yZWRkaXQSZTgxYi10ZWxsLWEtZnJpZW5kEHN0cmlwLWNzcy1mb3JtYXQOdmlkZW8tZXh0ZXJuYWwTc3RyaXAtc3Bhbi1lbGVtZW50cwpzZWxlY3QtYWxsGHRhYmxlLWFsaWduLWJvdHRvbS1yaWdodBNzdHJpcC1hbGwtZm9ybWF0aW5nCHRleHRhcmVhCmltYWdlLWVkaXQJdGV4dC13cmFwGHRhYmxlLWFsaWduLW1pZGRsZS1yaWdodBJ0YWJsZS1hbGlnbi1yZW1vdmUNdHJhY2stY2hhbmdlcxh0cmFjay1jaGFuZ2VzLXJlamVjdC1hbGwMYWxpZ24tcmVtb3ZlDGFsaWduLWNlbnRlcg1hbGlnbi1qdXN0aWZ5C2FsaWduLXJpZ2h0CWJvcmRlci1ubwxhcHBseS1mb3JtYXQLYm9yZGVyLWxlZnQNYm9yZGVyLWJvdHRvbQtib3JkZXJzLWFsbBdib3JkZXJzLWluc2lkZS12ZXJ0aWNhbA9ib3JkZXJzLW91dHNpZGUZYm9yZGVycy1pbnNpZGUtaG9yaXpvbnRhbARjb3B5CWNsZWFyLWNzcwpib3JkZXItdG9wDGJvcmRlci1yaWdodBtlNjcxLWh5cGVybGluay1saWdodC1kaWFsb2cRYm9yZGVycy1zaG93LWhpZGUOYm9yZGVycy1pbnNpZGUOZGljdGlvbmFyeS1hZGQLY3VzdG9tLWljb24HY29tbWVudBBkb2N1bWVudC1tYW5hZ2VyC2NvcHktZm9ybWF0D2NoYW5nZS1tYW51YWxseQ5jb21tZW50LXJlbW92ZQ1jYWxlbmRhci1kYXRlE2NvbW1lbnRzLXJlbW92ZS1hbGwQaW1hZ2UtbWFwLWVkaXRvcgNjdXQObW9kdWxlLW1hbmFnZXIFcGFzdGUSaW1hZ2UtbGlnaHQtZGlhbG9nDGNvZGUtc25pcHBldAxmb3JtLWVsZW1lbnQNbWVkaWEtbWFuYWdlcg1mbGFzaC1tYW5hZ2VyDXBhcmFncmFwaC1hZGQacGFzdGUtZnJvbS13b3JkLXN0cmlwLWZpbGUPcnVsZS1ob3Jpem9udGFsD3Bhc3RlLWZyb20td29yZA1wYXN0ZS1hcy1odG1sE3N0cmlwLWZvbnQtZWxlbWVudHMXdGFibGUtYWxpZ24tYm90dG9tLWxlZnQQZmluZC1hbmQtcmVwbGFjZRZ0YWJsZS1hbGlnbi10b3AtY2VudGVyCnBhc3RlLWh0bWwVc3RyaXAtd29yZC1mb3JtYXR0aW5nGXRhYmxlLWFsaWduLW1pZGRsZS1jZW50ZXIRZm9ybWF0LWNvZGUtYmxvY2sUdHJhY2stY2hhbmdlcy1yZWplY3QJZ3JvdXAtYm94BGZvcm0ZdGFibGUtYWxpZ24tYm90dG9tLWNlbnRlcgtzaWx2ZXJsaWdodBBwYXN0ZS1wbGFpbi10ZXh0CnNlbGVjdC1ib3gOcGFzdGUtbWFya2Rvd24XdGFibGUtYWxpZ24tbWlkZGxlLWxlZnQUdHJhY2stY2hhbmdlcy1lbmFibGUVdGFibGUtYWxpZ24tdG9wLXJpZ2h0DXN0eWxlLWJ1aWxkZXIUdGFibGUtYWxpZ24tdG9wLWxlZnQUdHJhY2stY2hhbmdlcy1hY2NlcHQYdHJhY2stY2hhbmdlcy1hY2NlcHQtYWxsEWEtZTYwNGZvbnQtZmFtaWx5EGEtZTYwOXN1Yi1zY3JpcHQWYS1lNjA1Zm9yZWdyb3VuZC1jb2xvcgphLWU2MDFib2xkCGEtZTYxMGg0E2EtZTYwOHN0cmlrZXRocm91Z2gXYS1lNjA2Y29udmVydC1sb3dlcmNhc2UXYS1lNjA3Y29udmVydC11cHBlcmNhc2UMYS1lNjAyaXRhbGljD2EtZTYwM3VuZGVybGluZRJhLWU2MWNhbGlnbi1ib3R0b20IYS1lNjBkaDEIYS1lNjBmaDMJYS1lNjBjYWxsCGEtZTYwZWgyEGEtZTYwYXN1cC1zY3JpcHQJYS1lNjBiZGl2EGEtZTYxZGFsaWduLWxlZnQPYS1lNjFhYWxpZ24tdG9wEmEtZTYxYmFsaWduLW1pZGRsZRVhLWU2MTVpbmRlbnQtaW5jcmVhc2UTYS1lNjE4aW5zZXJ0LW1pZGRsZRRhLWU2MTRsaXN0LXVub3JkZXJlZBVhLWU2MTZpbmRlbnQtZGVjcmVhc2UPYS1lNjE3aW5zZXJ0LXVwEWEtZTYxOWluc2VydC1kb3duCGEtZTYxMmg2EmEtZTYxM2xpc3Qtb3JkZXJlZAhhLWU2MTFoNRNhLWU1MjR0aHVtYm5haWxzLXVwFmEtZTUyOWZ1bGwtc2NyZWVuLWV4aXQVYS1lNTI2dGh1bWJuYWlscy1kb3duFWEtZTYwMHBhZ2UtcHJvcGVydGllcxVhLWU1Mjd0aHVtYm5haWxzLWxlZnQaYS1lNTIzYWxpZ24tYm90dG9tLWVsZW1lbnQRYS1lNTI4ZnVsbC1zY3JlZW4WYS1lNTI1dGh1bWJuYWlscy1yaWdodBFhLWU1MmFyZXNldC1jb2xvchphLWU1MjJhbGlnbi1taWRkbGUtZWxlbWVudBJhLWU1MWJiYWNrLWVsZW1lbnQZYS1lNTIwYWxpZ24tcmlnaHQtZWxlbWVudBVhLWU1MWNmb3J3YXJkLWVsZW1lbnQLYS1lNTE4c2hhcGUXYS1lNTIxYWxpZ24tdG9wLWVsZW1lbnQWYS1lNTFkYmFja3dhcmQtZWxlbWVudBNhLWU1MTlyb3VuZC1jb3JuZXJzGGEtZTUxZWFsaWduLWxlZnQtZWxlbWVudBNhLWU1MWFmcm9udC1lbGVtZW50GmEtZTUxZmFsaWduLWNlbnRlci1lbGVtZW50CmEtZTUxMGxpbmUZYS1lNTExYnJpZ2h0bmVzcy1jb250cmFzdAthLWU1MGZwYWludA9hLWU1MTVncmV5c2NhbGUNYS1lNTBlcGFsZXR0ZQ1hLWU1MTdzaGFycGVuE2EtZTUxM2ludmVydC1jb2xvcnMKYS1lNTE2Ymx1chBhLWU1MTJzYXR1cmF0aW9uEmEtZTUxNHRyYW5zcGVyYW5jeQxhLWU1MGFyb3RhdGUTYS1lNTA0em9vbS1iZXN0LWZpdAthLWU1MGRicnVzaBFhLWU1MGNyb3RhdGUtbGVmdAphLWU1MDZjcm9wE2EtZTUwOWZsaXAtdmVydGljYWwMYS1lNTA3bWlycm9yFWEtZTUwOGZsaXAtaG9yaXpvbnRhbBJhLWU1MDVpbWFnZS1yZXNpemUSYS1lNTBicm90YXRlLXJpZ2h0DWEtZTIwZXN0b3Atc20SYS1lNTAyaW1hZ2UtZXhwb3J0FGEtZTMwN3RyaS1zdGF0ZS1udWxsC2EtZTUwMWltYWdlE2EtZTMwMGhlYXJ0LW91dGxpbmUWYS1lNTAzem9vbS1hY3R1YWwtc2l6ZQxhLWUzMDhjaXJjbGULYS1lMzAxaGVhcnQSYS1lNTAwcGhvdG8tY2FtZXJhDmEtZTIwZHBhdXNlLXNtC2NvbGxhcHNlLW5lCXRodW1idGFjawtzLXRodW1idGFjawZtb3ZldG8NZmlsdGVyX2RlbGV0ZQ9maWx0ZXJfZ3JvdXBpbmcKZmlsdGVyX2FkZBNmaWx0ZXJfY2FuY2VsbGF0aW9uBnZlcm5hdgpjdy1hcnJvd2RlCGN3LWhvdGVsB2N3LXRyaXAFemhhZ2UHZGVuZ2hhbw10aXNoaXNodW9taW5nBERyYWcGYmlhbmppBmNoYWthbgJiZwRsaGp0CGR1bGltaW1hEXFpYW5taW5ncWlhbnpoYW5nBmZhbmt1aRRhLUNGX0Rlc2NlbmRpbmdPcmRlchNhLUNGX0FzY2VuZGluZ09yZGVyBWFib3V0CXl1bnhpYW94aRBlbmNsb3N1cmVfZGVsZXRlEmVuY2xvc3VyZV9kb3dubG9hZBBlbmNsb3N1cmVfdXBsb2FkEGVuY2xvc3VyZV9icm93c2UKdXBsb2FkX2JpZw9jYWxlbmRhcnNfbGluZTEJbW9yZV9saW5lDmRyb3AtZG93bl9saW5lEHBlcnNwZWN0aXZlX3ZpZXcKY2hhcnRfdmlldwlmb3JtX3ZpZXcJbGlzdF92aWV3CWNhcmRfdmlldwtyZW1vdmVfZmFjZQtkdWl6aGFuZ2Rhbg1kaXpoaXNoZW5xaW5nDWppbmd4aWFvcmVud3UHYmFpZmFuZwprZWh1Z3VhbnhpCGZheXVuZGFuCWxpYW54aXJlbg1mdWt1YW50b25nemhpD2thaXBpYW9zaGVucWluZw94aWFvc2hvdWRhY2hlbmcOeGlhb3Nob3VxaWFubGkOeGlhb3Nob3VtdWJpYW8Nc2h1anVzaGFuZ2Jhbwx4dWtlc2hhbmdwaW4Jemhlbmd6aGFvDHhpYW9zaG91eXVjZQ94aWFvc2hvdXR1YW5kdWkFaGVscDELaW5mby1jaXJjbGUKZGVwYXJ0bWVudARjb2RlBHBhdGgPZmxvd2xpbmUtbWFudWFsDWZsb3dsaW5lLW1vcmUSZmxvd2xpbmUtc2NoZWR1bGVkEWZsb3dsaW5lLWNhbmNlbGVkEGZsb3dsaW5lLXBlbmRpbmcMZmxvd2xpbmUtcnVuEGZsb3dsaW5lLWNyZWF0ZWQQZmxvd2xpbmUtcnVubmluZxBmbG93bGluZS13YWl0aW5nEGZsb3dsaW5lLXNraXBwZWQNZmxvd2xpbmUtdmlldxBmbG93bGluZS13YXJuaW5nC29yaWVudGF0aW9uBGxhc3QFZmlyc3QOeXVuaGFuZ3NoaWljb24aQ29sdW1uLWZpbHRlcmFuZGRlc2NlbmRpbmcZQ29sdW1uLWZpbHRlcmFuZGFzY2VuZGluZxxDb2x1bW5zLURlZmF1bHRmaWx0ZXJhbmRzb3J0DUNvbHVtbi1maWx0ZXISQ29sdW1ucy1kZXNjZW5kaW5nEUNvbHVtbnMtYXNjZW5kaW5nE0NvbHVtbnMtRGVmYXVsdHNvcnQPbGF1bmNocGFkLWZhY2UyCmxhdW5jaHBhZDIPZi1pY29uLWNoZWNrYm94DGYtaWNvbi1taW51cwpmLWljb24tYWRkCGRyb3Bkb3duCm5hdmlnYXRpb24Ray1pLW1lc3NhZ2VfZXJyb3ITay1pLW1lc3NhZ2Vfc3VjY2VzcwpzdWRva3UtbmV3CGxpc3QtbmV3CXRpbGVkLW5ldwxxaWVodWFuenV6aGkHcmFkaW8tMgZ0ZW5hbnQGc3Vkb2t1BXRpbGVkBWxpc3QxC3Nob3VjYW5namlhCmNvbGxlY3Rpb24DaWRlDG9jY2x1ZGUtZmFjZQdvY2NsdWRlDmxhdW5jaHBhZC1mYWNlCWxhdW5jaHBhZAtpbmZvcm1hdGlvbgdiYWNrbG9nB21lc3NhZ2UJbWF4aW1pemUxBnNlYXJjaAppbmRleC1mYWNlBWluZGV4CHl4c190ZXh0DXl4c19jb250YWluZXILeXhzX2NvbHVtbnMIeXhzX21vdmUIeXhzX2NvcHkKeXhzX2RlbGV0ZQl5eHNfbGV2ZWwJeXhzX2VhcnRoDXl4c19jdXN0b21pemUIc2lnbl9vdXQLdXNlcl9jZW50ZXIGcmVtb3ZlBnBhY2t1cAZjYW1lcmEGbmFycm93DWFtcGxpZmljYXRpb24JY2xvY2t3aXNlEGNvdW50ZXJjbG9ja3dpc2UGZWRpdG9yBHNraW4EYXJlYQhwYXNzd29yZAhsYW5ndWFnZQViYXNpYwhtaW5pbWl6ZQxtYXhpbWl6YXRpb24NbmV3LWRpbWVuc2lvbhFmaWxlLWZvbGRlci1jbG9zZRBmaWxlLWZvbGRlci1vcGVuCG5ldy1lZGl0CG5ldy1mb3JtBXdvbWFuA21hbgZyZWNvcmQEbW9yZQRsaXN0CXRlbGVwaG9uZQhmdW5jdGlvbgtwcm9kdWN0bGlzdA5hdHRhY2htZW50bGlzdBNkb2N1bWVudGluZm9ybWF0aW9uDG5ldy1maWx0cmF0ZQ5uZXctZnVsbHNjcmVlbgdyb29maW5nDUJvdHRvbXNldHRpbmcPcGFnZS10aXRsZS10YXNrEXBhZ2UtdGl0bGUtcmV2aWV3EHBhZ2UtdGl0bGUtc3RhcnQPcGFnZS10aXRsZS10eXBlEXBhZ2UtdGl0bGUtcmVjb3JkEnBhZ2UtdGl0bGUtdm91Y2hlchBwYWdlLXRpdGxlLXF1ZXJ5EXBhZ2UtdGl0bGUtbnVtYmVyEXBhZ2UtdGl0bGUtbWFuYWdlFnBhZ2UtdGl0bGUtbWFpbnRlbmFuY2UVcGFnZS10aXRsZS1kaWN0aW9uYXJ5GHBhZ2UtdGl0bGUtY29uZmlndXJhdGlvbhVwYWdlLXRpdGxlLWFkbWluaXN0ZXIRcGFnZS10aXRsZS1kZWZpbmUXdHJpLXN0YXRlLWluZGV0ZXJtaW5hdGUQcGFuZWwtcmV0cmFjdGlvbgtlZGl0LWJ1dHRvbg5pbnB1dC1sYW5ndWFnZRdhdHRyaWJ1dGUtY29uZmlndXJhdGlvbgtFbmdpbmVlcmluZwNnaXQTcmFkaW9idXR0b24tY2hlY2tlZAxzaGFwZS1jaXJjbGUQY2hlY2tib3gtY2hlY2tlZBVrLWktaG9tZS13ZWF0aGVyLWxlYWYNay1pLWhvbWUtbW9yZQ1rLWktaG9tZS1yaW5nDGstaS1ob21lLWFkZA5rLWktaG9tZS1zZXR1cA5rLWktaG9tZS13b21hbgxrLWktaG9tZS1tYW4Oay1pLXRvcF9hZ2VuY3kMay1pLXRvcF9uZXdzDGstaS10b3BfaG9tZRJrLWktdG9wX2ltX2RlZmF1bHQXay1pLXRvcF9kZXZlbG9wbWVudHRvb2wMay1pLXRvcF9tZW51DmstaS10b3Bfc2VhcmNoCmstaS10b3BfbXkPay1pLWZsYWdfdXJnZW50DGstaS1uZXh0cGFnZRBrLWktcHJldmlvdXNwYWdlE2staS1tZXNzYWdlX3JvdXRpbmUTay1pLUV4aGFsZS1EaXNjb3VudBNrLWktbW9yZS1ob3Jpem9udGFsEGstaS1tZXNzYWdlX2hlbHATay1pLW1lc3NhZ2Vfd2FybmluZxZrLWktc3RlcHMtZGVsaXZlcmdvb2RzFWstaS1zdGVwcy1yZWNlaXZhYmxlcxFrLWktc3RlcHMtaW52b2ljZRRrLWktc3RlcHMtb3V0b2ZzdG9jaxRrLWktc3RlcHMtc2V0dGxlbWVudBNrLWktc3RlcHMtdHJhbnNwb3J0DGstaS1ib29rbWFyaxBrLWktc3Rhci1vdXRsaW5lCGstaS16b29tEGstaS1jbG9zZS1jaXJjbGUQay1pLWNoZWNrLWNpcmNsZQlrLWktY2xvc2UQay1pLXBsdXMtb3V0bGluZRFrLWktbWludXMtb3V0bGluZQtrLWktcmVvcmRlcg1rLWktcmV3aW5kLXNtDmstaS1mb3J3YXJkLXNtE2staS1hcnJvdy1zZWVrLWRvd24Ray1pLWFycm93LXNlZWstdXAKay1pLWRlbGV0ZQlrLWktZ3JvdXAIay1pLWdyaWQPay1pLWdyaWQtbGF5b3V0DmstaS1hcnJvd3Mta3BpFmstaS1hcnJvdy1jaGV2cm9uLWxlZnQXay1pLWFycm93LWNoZXZyb24tcmlnaHQWay1pLWFycm93LWNoZXZyb24tZG93bhRrLWktYXJyb3ctY2hldnJvbi11cBFrLWktYXJyb3ctNjAtbGVmdAtrLWktYXJyb3ctZRFrLWktYXJyb3ctNjAtZG93bg9rLWktYXJyb3ctNjAtdXAAAAA=) format("truetype")}.f-icon{width:1em;height:1em;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1rem;font-family:FarrisIcons;font-style:normal;font-variant:normal;font-weight:400;line-height:1;speak:none;text-transform:none;text-decoration:none;display:inline-block}.f-icon:focus,.f-icon:hover{text-decoration:none}.f-icon-sm{font-size:.75rem}.f-icon-lg{font-size:1.5rem}.f-icon-none::before{content:"";display:none}.f-icon-arrow-45-up-right::before,.f-icon-collapse-ne::before,.f-icon-resize-ne::before{content:"\e000"}.f-icon-arrow-45-down-right::before,.f-icon-collapse-se::before,.f-icon-resize-se::before{content:"\e001"}.f-icon-arrow-45-down-left::before,.f-icon-collapse-sw::before,.f-icon-resize-sw::before{content:"\e002"}.f-icon-arrow-45-up-left::before,.f-icon-collapse-nw::before,.f-icon-resize-new::before,.f-icon-resize-nw::before{content:"\e003"}.f-icon-arrow-60-up::before,.f-icon-arrow-n::before,.f-icon-expand-n::before,.f-icon-kpi-trend-increase::before,.f-icon-sarrow-n::before{content:"\e004"}.f-icon-arrow-60-right::before,.f-icon-arrow-e::before,.f-icon-expand-e::before,.f-icon-expand::before,.f-icon-sarrow-e::before{content:"\e005"}.f-icon-arrow-60-down::before,.f-icon-arrow-s::before,.f-icon-collapse::before,.f-icon-expand-s::before,.f-icon-kpi-trend-decrease::before,.f-icon-sarrow-s::before{content:"\e006"}.f-icon-arrow-60-left::before,.f-icon-arrow-w::before,.f-icon-expand-w::before,.f-icon-sarrow-w::before{content:"\e007"}.f-icon-arrow-end-up::before{content:"\e008"}.f-icon-arrow-end-right::before,.f-icon-seek-e::before{content:"\e009"}.f-icon-arrow-end-down::before{content:"\e00a"}.f-icon-arrow-end-left::before,.f-icon-seek-w::before{content:"\e00b"}.f-icon-arrow-double-60-up::before,.f-icon-arrow-seek-up::before,.f-icon-seek-n::before{content:"\e00c"}.f-icon-arrow-double-60-right::before,.f-icon-arrow-seek-right::before,.f-icon-forward-sm::before{content:"\e00d"}.f-icon-arrow-double-60-down::before,.f-icon-arrow-seek-down::before,.f-icon-seek-s::before{content:"\e00e"}.f-icon-arrow-double-60-left::before{content:"\e00f"}.f-icon-arrow-chevron-up::before,.f-icon-arrowhead-n::before{content:"\e013"}.f-icon-arrow-chevron-right::before,.f-icon-arrowhead-e::before{content:"\e014"}.f-icon-arrow-chevron-down::before,.f-icon-arrowhead-s::before{content:"\e015"}.f-icon-arrow-chevron-left::before,.f-icon-arrowhead-w::before{content:"\e016"}.f-icon-grid::before{content:"\e023"}.f-icon-grid-layout::before{content:"\e024"}.f-icon-group::before{content:"\e025"}.f-icon-ungroup::before{content:"\e026"}.f-icon-undo-large::before,.f-icon-undo::before{content:"\e100"}.f-icon-redo-large::before,.f-icon-redo::before{content:"\e101"}.f-icon-reset::before{content:"\e102"}.f-icon-refresh::before,.f-icon-reload::before{content:"\e103"}.f-icon-clock::before{content:"\ecb5"}.f-icon-calendar::before{content:"\e108"}.f-icon-save::before{content:"\e109"}.f-icon-edit::before,.f-icon-pencil::before{content:"\e10b"}.f-icon-delete::before,.f-icon-trash::before{content:"\e10c"}.f-icon-attachment::before,.f-icon-clip::before{content:"\e10d"}.f-icon-attachment-45::before,.f-icon-clip-45::before{content:"\e10e"}.f-icon-lock::before{content:"\e113"}.f-icon-unlock::before{content:"\e114"}.f-icon-cancel::before{content:"\e115"}.f-icon-cancel-outline::before,.f-icon-deny::before{content:"\e116"}.f-icon-cancel-circle::before{content:"\e117"}.f-icon-check::before,.f-icon-checkmark::before,.f-icon-tick::before{content:"\e118"}.f-icon-check-outline::before,.f-icon-checkmark-outline::before{content:"\e119"}.f-icon-success::before{content:"\eb7d"}.f-icon-check-circle::before,.f-icon-checkmark-circle::before{content:"\e11a"}.f-icon-x::before{content:"\e11b"}.f-icon-close-outline::before,.f-icon-x-outline::before{content:"\e11c"}.f-icon-error::before{content:"\eb7e"}.f-icon-close-circle::before,.f-icon-x-circle::before,.input-group .input-group-append>.input-group-clear .modal_close::before,.input-group .input-group-prepend>.input-group-clear .modal_close::before{content:"\e11d"}.f-icon-add::before,.f-icon-plus::before{content:"\e11e"}.f-icon-plus-outline::before{content:"\e11f"}.f-icon-plus-circle::before{content:"\e120"}.f-icon-kpi-trend-equal::before,.f-icon-minus::before,.k-minus::before{content:"\e121"}.f-icon-minus-outline::before{content:"\e122"}.f-icon-minus-circle::before{content:"\e123"}.f-icon-filter::before{content:"\e129"}.f-icon-filter-clear::before{content:"\e12a"}.f-icon-filter-sort-asc-sm::before{content:"\e12c"}.f-icon-filter-sort-desc-sm::before{content:"\e12d"}.f-icon-download::before{content:"\e132"}.f-icon-upload::before{content:"\e133"}.f-icon-window-minimize::before{content:"\e139"}.f-icon-cog::before,.f-icon-gear::before{content:"\e13a"}.f-icon-cogs::before,.f-icon-gears::before{content:"\e13b"}.f-icon-eye::before,.f-icon-preview::before{content:"\e13d"}.f-icon-search::before,.f-icon-zoom::before{content:"\e13e"}.f-icon-fav-outline::before,.f-icon-favorite-outline::before{content:"\e300"}.f-icon-fav::before,.f-icon-favorite::before,.f-icon-heart::before{content:"\e301"}.f-icon-bookmark-outline::before,.f-icon-star-outline::before{content:"\e302"}.f-icon-bookmark::before,.f-icon-star::before{content:"\e303"}.f-icon-checkbox::before,.f-icon-shape-rect::before{content:"\e304"}.f-icon-checkbox-checked::before{content:"\e305"}.f-icon-radiobutton::before,.f-icon-shape-circle::before{content:"\e309"}.f-icon-radiobutton-checked::before{content:"\e30a"}.f-icon-folder::before{content:"\e900"}.f-icon-folder-open::before{content:"\e901"}.f-icon-file::before{content:"\e906"}.f-icon-message_help::before{content:"\eb04"}.f-icon-message_routine::before{content:"\eb05"}.f-icon-message_warning::before{content:"\eb06"}.f-icon-previouspage::before{content:"\eb0e"}.f-icon-nextpage::before{content:"\eb0f"}.f-icon-top_menu::before{content:"\eb12"}.f-icon-edit-button::before{content:"\eb25"}.f-icon-file-folder-close::before{content:"\eb47"}.f-icon-file-folder-open::before{content:"\eb48"}.f-icon-maximization::before{content:"\eb4a"}.f-icon-minimize::before{content:"\eb4b"}.f-icon-editor::before{content:"\eb52"}.f-icon-occlude::before{content:"\eb6e"}.f-icon-occlude-face::before{content:"\eb6f"}.f-icon-camera::before{content:"\eb57"}.f-icon-date::before{content:"\eb7f"}.f-icon-dropdown::before{content:"\eb82"}.f-icon-timepicker::before{content:"\e107"}.f-icon-info::before,.f-icon-note::before{content:"\eb05"}.f-icon-question::before{content:"\eb04"}.f-icon-help::before{content:"\e402"}.f-icon-warning::before{content:"\eb06"}.f-icon-drag-vertical::before{content:"\eca0"}.f-icon-page-title-define::before{content:"\eb2a"}.f-icon-page-title-administer::before{content:"\eb2b"}.f-icon-page-title-configuration::before{content:"\eb2c"}.f-icon-page-title-dictionary::before{content:"\eb2d"}.f-icon-page-title-maintenance::before{content:"\eb2e"}.f-icon-page-title-query::before{content:"\eb2f"}.f-icon-page-title-number::before{content:"\eb30"}.f-icon-page-title-manage::before{content:"\eb31"}.f-icon-page-title-review::before{content:"\eb32"}.f-icon-page-title-start::before{content:"\eb33"}.f-icon-page-title-type::before{content:"\eb34"}.f-icon-page-title-record::before{content:"\eb35"}.f-icon-page-title-voucher::before{content:"\eb36"}.f-icon-page-title-task::before{content:"\eb37"}.f-icon-maximize::before{content:"\eb68"}.f-icon-remove_face::before{content:"\ebd4"}.f-icon-enclosure_delete::before{content:"\ebe8"}.f-icon-enclosure_download::before{content:"\ebe7"}.f-icon-enclosure_upload::before{content:"\ebe6"}.f-icon-enclosure_browse::before{content:"\ebe5"}.f-icon-upload_big::before{content:"\ebe4"}.f-icon-arrow-seek-left::before,.f-icon-rewind-sm::before,.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar .triangle::before{content:"\e00f"}.f-icon-spin{animation:spinicon 2s infinite linear}@keyframes spinicon{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.f-icon-with-modifier{position:relative;margin:.25em}.f-icon-modifier{position:absolute;font-size:.5em;bottom:0;right:0;margin:0 -.5em -.5em 0}.f-icon-xs{font-size:.5rem}.f-icon-md,.f-legend-icon::after,.modal_close{font-size:1.25rem}.f-icon-xl{font-size:2rem}.f-btn-icon,.input-group-text{font-size:.8125rem;line-height:1.4286}.f-icon-arrows-kpi::before,.f-icon-kpi::before{content:"\e010"}.f-icon-arrows-no-change::before{content:"\e011"}.f-icon-arrow-overflow-down::before{content:"\e012"}.f-icon-arrow-up::before{content:"\e017"}.f-icon-arrow-right::before{content:"\e018"}.f-icon-arrow-down::before{content:"\e019"}.f-icon-arrow-left::before{content:"\e01a"}.f-icon-arrow-drill::before{content:"\e01b"}.f-icon-arrow-parent::before{content:"\e01c"}.f-icon-arrow-root::before{content:"\e01d"}.f-icon-arrows-resizing::before{content:"\e01e"}.f-icon-arrows-dimensions::before,.f-icon-dimension::before{content:"\e01f"}.f-icon-arrows-swap::before{content:"\e020"}.f-icon-drag-and-drop::before{content:"\e021"}.f-icon-categorize::before{content:"\e022"}.f-icon-handler-drag::before{content:"\e027"}.f-icon-layout::before{content:"\e028"}.f-icon-layout-1-by-4::before{content:"\e029"}.f-icon-layout-2-by-2::before,.f-icon-page-layout::before{content:"\e02a"}.f-icon-layout-side-by-side::before{content:"\e02b"}.f-icon-layout-stacked::before{content:"\e02c"}.f-icon-columns::before{content:"\e02d"}.f-icon-rows::before{content:"\e02e"}.f-icon-reorder::before{content:"\e02f"}.f-icon-hamburger::before,.f-icon-menu::before{content:"\e030"}.f-icon-more-vertical::before,.f-icon-vbars::before{content:"\e031"}.f-icon-hbars::before,.f-icon-more-horizontal::before{content:"\e032"}.f-icon-recurrence::before{content:"\e103"}.f-icon-non-recurrence::before,.f-icon-refresh-clear::before{content:"\e104"}.f-icon-reset-sm::before{content:"\e105"}.f-icon-recurrence-sm::before,.f-icon-refresh-sm::before,.f-icon-reload-sm::before{content:"\e106"}.f-icon-floppy::before{content:"\e109"}.f-icon-print::before,.f-icon-printer::before{content:"\e10a"}.f-icon-hyperlink::before,.f-icon-link-horizontal::before{content:"\e10f"}.f-icon-hyperlink-remove::before,.f-icon-unlink-horizontal::before{content:"\e110"}.f-icon-link-vertical::before{content:"\e111"}.f-icon-unlink-vertical::before{content:"\e112"}.f-icon-sort-asc::before{content:"\e124"}.f-icon-sort-desc::before{content:"\e125"}.f-icon-sort-clear::before,.f-icon-unsort::before{content:"\e126"}.f-icon-sort-asc-sm::before{content:"\e127"}.f-icon-sort-desc-sm::before{content:"\e128"}.f-icon-filter-sm::before{content:"\e12b"}.f-icon-filter-add-expression::before{content:"\e12e"}.f-icon-filter-add-group::before{content:"\e12f"}.f-icon-login::before{content:"\e130"}.f-icon-logout::before{content:"\e131"}.f-icon-hyperlink-open::before{content:"\e134"}.f-icon-hyperlink-open-sm::before{content:"\e135"}.f-icon-launch::before{content:"\e136"}.f-icon-window-maximize::before,.f-icon-window::before{content:"\e137"}.f-icon-restore::before,.f-icon-tiles::before,.f-icon-window-restore::before,.f-icon-windows::before{content:"\e138"}.f-icon-custom::before{content:"\e13a"}.f-icon-settings::before,.f-icon-wrench::before{content:"\e13c"}.f-icon-zoom-in::before{content:"\e13f"}.f-icon-zoom-out::before{content:"\e140"}.f-icon-move::before,.f-icon-pan::before{content:"\e141"}.f-icon-calculator::before{content:"\e142"}.f-icon-cart::before,.f-icon-shopping-cart::before{content:"\e143"}.f-icon-connector::before{content:"\e144"}.f-icon-plus-sm::before,.f-icon-splus::before{content:"\e145"}.f-icon-minus-sm::before,.f-icon-sminus::before{content:"\e146"}.f-icon-kpi-status-deny::before{content:"\e147"}.f-icon-kpi-status-hold::before{content:"\e148"}.f-icon-kpi-status-open::before{content:"\e149"}.f-icon-play::before{content:"\e200"}.f-icon-pause::before{content:"\e201"}.f-icon-stop::before{content:"\e202"}.f-icon-rewind::before{content:"\e203"}.f-icon-forward::before{content:"\e204"}.f-icon-volume-down::before,.f-icon-volume-low::before{content:"\e205"}.f-icon-volume-high::before,.f-icon-volume-up::before{content:"\e206"}.f-icon-volume-mute::before,.f-icon-volume-off::before{content:"\e207"}.f-icon-hd::before{content:"\e208"}.f-icon-subtitles::before{content:"\e209"}.f-icon-playlist::before{content:"\e20a"}.f-icon-audio::before{content:"\e20b"}.f-icon-play-sm::before{content:"\e20c"}.f-icon-pause-sm::before{content:"\e20d"}.f-icon-stop-sm::before{content:"\e20e"}.f-icon-heart-outline::before{content:"\e300"}.f-icon-tri-state-indeterminate::before{content:"\e306"}.f-icon-tri-state-null::before{content:"\e307"}.f-icon-circle::before{content:"\e308"}.f-icon-bell::before,.f-icon-notification::before{content:"\e400"}.f-icon-exception::before{content:"\e403"}.f-icon-photo-camera::before{content:"\e500"}.f-icon-image::before,.f-icon-photo::before{content:"\e501"}.f-icon-image-export::before,.f-icon-photo-export::before{content:"\e502"}.f-icon-zoom-actual-size::before{content:"\e503"}.f-icon-zoom-best-fit::before{content:"\e504"}.f-icon-image-resize::before{content:"\e505"}.f-icon-crop::before{content:"\e506"}.f-icon-mirror::before{content:"\e507"}.f-icon-flip-horizontal::before{content:"\e508"}.f-icon-flip-vertical::before{content:"\e509"}.f-icon-rotate::before{content:"\e50a"}.f-icon-rotate-cw::before,.f-icon-rotate-right::before{content:"\e50b"}.f-icon-rotate-ccw::before,.f-icon-rotate-left::before{content:"\e50c"}.f-icon-brush::before{content:"\e50d"}.f-icon-palette::before{content:"\e50e"}.f-icon-background::before,.f-icon-droplet::before,.f-icon-paint::before{content:"\e50f"}.f-icon-line::before,.f-icon-shape-line::before{content:"\e510"}.f-icon-brightness-contrast::before{content:"\e511"}.f-icon-saturation::before{content:"\e512"}.f-icon-invert-colors::before{content:"\e513"}.f-icon-opacity::before,.f-icon-transperancy::before{content:"\e514"}.f-icon-greyscale::before{content:"\e515"}.f-icon-blur::before{content:"\e516"}.f-icon-sharpen::before{content:"\e517"}.f-icon-shape::before{content:"\e518"}.f-icon-round-corners::before{content:"\e519"}.f-icon-front-element::before{content:"\e51a"}.f-icon-back-element::before{content:"\e51b"}.f-icon-forward-element::before{content:"\e51c"}.f-icon-backward-element::before{content:"\e51d"}.f-icon-align-left-element::before{content:"\e51e"}.f-icon-align-center-element::before{content:"\e51f"}.f-icon-align-right-element::before{content:"\e520"}.f-icon-align-top-element::before{content:"\e521"}.f-icon-align-middle-element::before{content:"\e522"}.f-icon-align-bottom-element::before{content:"\e523"}.f-icon-thumbnails-up::before{content:"\e524"}.f-icon-thumbnails-right::before{content:"\e525"}.f-icon-thumbnails-down::before{content:"\e526"}.f-icon-thumbnails-left::before{content:"\e527"}.f-icon-full-screen::before,.f-icon-fullscreen-enter::before,.f-icon-fullscreen::before{content:"\e528"}.f-icon-full-screen-exit::before,.f-icon-fullscreen-exit::before{content:"\e529"}.f-icon-background-remove::before,.f-icon-paint-remove::before,.f-icon-reset-color::before{content:"\e52a"}.f-icon-page-properties::before{content:"\e600"}.f-icon-bold::before{content:"\e601"}.f-icon-italic::before{content:"\e602"}.f-icon-underline::before{content:"\e603"}.f-icon-font-family::before{content:"\e604"}.f-icon-foreground-color::before,.f-icon-text::before{content:"\e605"}.f-icon-convert-lowercase::before{content:"\e606"}.f-icon-convert-uppercase::before{content:"\e607"}.f-icon-strike-through::before,.f-icon-strikethrough::before{content:"\e608"}.f-icon-sub-script::before,.f-icon-subscript::before{content:"\e609"}.f-icon-sup-script::before,.f-icon-superscript::before{content:"\e60a"}.f-icon-div::before{content:"\e60b"}.f-icon-all::before{content:"\e60c"}.f-icon-h1::before{content:"\e60d"}.f-icon-h2::before{content:"\e60e"}.f-icon-h3::before{content:"\e60f"}.f-icon-h4::before{content:"\e610"}.f-icon-h5::before{content:"\e611"}.f-icon-h6::before{content:"\e612"}.f-icon-insert-ordered-list::before,.f-icon-list-numbered::before,.f-icon-list-ordered::before{content:"\e613"}.f-icon-insert-unordered-list::before,.f-icon-list-bulleted::before,.f-icon-list-unordered::before{content:"\e614"}.f-icon-indent-increase::before,.f-icon-indent::before{content:"\e615"}.f-icon-indent-decrease::before,.f-icon-outdent::before{content:"\e616"}.f-icon-insert-n::before,.f-icon-insert-top::before,.f-icon-insert-up::before{content:"\e617"}.f-icon-insert-m::before,.f-icon-insert-middle::before{content:"\e618"}.f-icon-insert-bottom::before,.f-icon-insert-down::before,.f-icon-insert-s::before{content:"\e619"}.f-icon-align-top::before{content:"\e61a"}.f-icon-align-middle::before{content:"\e61b"}.f-icon-align-bottom::before{content:"\e61c"}.f-icon-align-left::before,.f-icon-justify-left::before{content:"\e61d"}.f-icon-align-center::before,.f-icon-justify-center::before{content:"\e61e"}.f-icon-align-right::before,.f-icon-justify-right::before{content:"\e61f"}.f-icon-align-justify::before,.f-icon-justify-full::before{content:"\e620"}.f-icon-align-remove::before,.f-icon-justify-clear::before{content:"\e621"}.f-icon-text-wrap::before{content:"\e622"}.f-icon-rule-horizontal::before{content:"\e623"}.f-icon-table-align-top-left::before{content:"\e624"}.f-icon-table-align-top-center::before{content:"\e625"}.f-icon-table-align-top-right::before{content:"\e626"}.f-icon-table-align-middle-left::before{content:"\e627"}.f-icon-table-align-middle-center::before{content:"\e628"}.f-icon-table-align-middle-right::before{content:"\e629"}.f-icon-table-align-bottom-left::before{content:"\e62a"}.f-icon-table-align-bottom-center::before{content:"\e62b"}.f-icon-table-align-bottom-right::before{content:"\e6d7"}.f-icon-table-align-remove::before{content:"\e62d"}.f-icon-all-borders::before,.f-icon-borders-all::before{content:"\e62e"}.f-icon-borders-outside::before,.f-icon-outside-borders::before{content:"\e62f"}.f-icon-borders-inside::before,.f-icon-inside-borders::before{content:"\e630"}.f-icon-borders-inside-horizontal::before,.f-icon-inside-horizontal-borders::before{content:"\e631"}.f-icon-borders-inside-vertical::before,.f-icon-inside-vertical-borders::before{content:"\e632"}.f-icon-border-top::before,.f-icon-top-border::before{content:"\e633"}.f-icon-border-bottom::before,.f-icon-bottom-border::before{content:"\e634"}.f-icon-border-left::before,.f-icon-left-border::before{content:"\e635"}.f-icon-border-right::before,.f-icon-right-border::before{content:"\e636"}.f-icon-border-no::before,.f-icon-no-borders::before{content:"\e637"}.f-icon-borders-show-hide::before{content:"\e638"}.f-icon-border::before,.f-icon-form::before{content:"\e639"}.f-icon-form-element::before{content:"\e63a"}.f-icon-code-snippet::before{content:"\e63b"}.f-icon-select-all::before{content:"\e63c"}.f-icon-button::before{content:"\e63d"}.f-icon-select-box::before{content:"\e63e"}.f-icon-calendar-date::before{content:"\e63f"}.f-icon-group-box::before{content:"\e640"}.f-icon-textarea::before{content:"\e641"}.f-icon-textbox::before{content:"\e642"}.f-icon-textbox-hidden::before{content:"\e643"}.f-icon-paragraph-add::before{content:"\e645"}.f-icon-edit-tools::before{content:"\e646"}.f-icon-template-manager::before{content:"\e647"}.f-icon-change-manually::before{content:"\e648"}.f-icon-track-changes::before{content:"\e649"}.f-icon-track-changes-enable::before{content:"\e64a"}.f-icon-track-changes-accept::before{content:"\e64b"}.f-icon-track-changes-accept-all::before{content:"\e64c"}.f-icon-track-changes-reject::before{content:"\e64d"}.f-icon-track-changes-reject-all::before{content:"\e64e"}.f-icon-document-manager::before{content:"\e64f"}.f-icon-custom-icon::before{content:"\e650"}.f-icon-dictionary-add::before{content:"\e651"}.f-icon-image-insert::before,.f-icon-image-light-dialog::before,.f-icon-insert-image::before{content:"\e652"}.f-icon-image-edit::before{content:"\e653"}.f-icon-image-map-editor::before{content:"\e654"}.f-icon-comment::before{content:"\e655"}.f-icon-comment-remove::before{content:"\e656"}.f-icon-comments-remove-all::before{content:"\e657"}.f-icon-silverlight::before{content:"\e658"}.f-icon-media-manager::before{content:"\e659"}.f-icon-video-external::before{content:"\e65a"}.f-icon-flash-manager::before{content:"\e65b"}.f-icon-find-and-replace::before,.f-icon-find::before{content:"\e65c"}.f-icon-copy::before,.f-icon-files::before{content:"\e65d"}.f-icon-cut::before{content:"\e65e"}.f-icon-paste::before{content:"\e65f"}.f-icon-paste-as-html::before{content:"\e660"}.f-icon-paste-from-word::before{content:"\e661"}.f-icon-paste-from-word-strip-file::before{content:"\e662"}.f-icon-paste-html::before{content:"\e663"}.f-icon-paste-markdown::before{content:"\e664"}.f-icon-paste-plain-text::before{content:"\e665"}.f-icon-apply-format::before{content:"\e666"}.f-icon-clear-css::before,.f-icon-clearformat::before{content:"\e667"}.f-icon-copy-format::before{content:"\e668"}.f-icon-strip-all-formating::before{content:"\e669"}.f-icon-strip-css-format::before{content:"\e66a"}.f-icon-strip-font-elements::before{content:"\e66b"}.f-icon-strip-span-elements::before{content:"\e66c"}.f-icon-strip-word-formatting::before{content:"\e66d"}.f-icon-format-code-block::before{content:"\e66e"}.f-icon-style-builder::before{content:"\e66f"}.f-icon-module-manager::before{content:"\e670"}.f-icon-hyperlink-insert::before,.f-icon-hyperlink-light-dialog::before{content:"\e671"}.f-icon-hyperlink-globe::before{content:"\e672"}.f-icon-hyperlink-globe-remove::before{content:"\e673"}.f-icon-hyperlink-email::before{content:"\e674"}.f-icon-anchor::before{content:"\e675"}.f-icon-create-table::before,.f-icon-table-insert::before,.f-icon-table-light-dialog::before{content:"\e676"}.f-icon-table::before{content:"\e677"}.f-icon-table-properties::before,.f-icon-table-wizard::before{content:"\e678"}.f-icon-table-cell::before{content:"\e679"}.f-icon-table-cell-properties::before{content:"\e67a"}.f-icon-add-column-left::before,.f-icon-table-column-insert-left::before{content:"\e67b"}.f-icon-add-column-right::before,.f-icon-table-column-insert-right::before{content:"\e67c"}.f-icon-add-row-above::before,.f-icon-table-row-insert-above::before{content:"\e67d"}.f-icon-add-row-below::before,.f-icon-table-row-insert-below::before{content:"\e67e"}.f-icon-delete-column::before,.f-icon-table-column-delete::before{content:"\e67f"}.f-icon-delete-row::before,.f-icon-table-row-delete::before{content:"\e680"}.f-icon-table-cell-delete::before{content:"\e681"}.f-icon-table-delete::before{content:"\e682"}.f-icon-cells-merge::before,.f-icon-merge-cells::before{content:"\e683"}.f-icon-cells-merge-horizontally::before,.f-icon-merge-horizontally::before{content:"\e684"}.f-icon-cells-merge-vertically::before,.f-icon-merge-vertically::before{content:"\e685"}.f-icon-cell-split-horizontally::before{content:"\e686"}.f-icon-cell-split-vertically::before{content:"\e687"}.f-icon-normal-layout::before,.f-icon-table-unmerge::before{content:"\e688"}.f-icon-freeze-panes::before,.f-icon-pane-freeze::before{content:"\e689"}.f-icon-freeze-row::before,.f-icon-row-freeze::before{content:"\e68a"}.f-icon-column-freeze::before,.f-icon-freeze-col::before{content:"\e68b"}.f-icon-toolbar-float::before{content:"\e68c"}.f-icon-spell-checker::before{content:"\e68d"}.f-icon-validation-xhtml::before{content:"\e68e"}.f-icon-validation-data::before{content:"\e68f"}.f-icon-toggle-full-screen-mode::before{content:"\e690"}.f-icon-formula-fx::before,.f-icon-fx::before{content:"\e691"}.f-icon-sum::before{content:"\e692"}.f-icon-symbol::before{content:"\e693"}.f-icon-currency::before,.f-icon-dollar::before{content:"\e694"}.f-icon-percent::before{content:"\e695"}.f-icon-custom-format::before,.f-icon-format-number::before{content:"\e696"}.f-icon-decimal-increase::before,.f-icon-increase-decimal::before{content:"\e697"}.f-icon-decimal-decrease::before,.f-icon-decrease-decimal::before{content:"\e698"}.f-icon-font-size::before{content:"\e699"}.f-icon-image-absolute-position::before{content:"\e69a"}.f-icon-globe-outline::before{content:"\e700"}.f-icon-globe::before{content:"\e701"}.f-icon-marker-pin::before{content:"\e702"}.f-icon-marker-pin-target::before{content:"\e703"}.f-icon-pin::before{content:"\e704"}.f-icon-unpin::before{content:"\e705"}.f-icon-share::before{content:"\e800"}.f-icon-user::before{content:"\e801"}.f-icon-inbox::before{content:"\e802"}.f-icon-blogger::before{content:"\e803"}.f-icon-blogger-box::before{content:"\e804"}.f-icon-delicious::before{content:"\e805"}.f-icon-delicious-box::before{content:"\e806"}.f-icon-digg::before{content:"\e807"}.f-icon-digg-box::before{content:"\e808"}.f-icon-email::before,.f-icon-envelop::before,.f-icon-letter::before{content:"\e809"}.f-icon-email-box::before,.f-icon-envelop-box::before,.f-icon-letter-box::before{content:"\e80a"}.f-icon-facebook::before{content:"\e80b"}.f-icon-facebook-box::before{content:"\e80c"}.f-icon-google::before{content:"\e80d"}.f-icon-google-box::before{content:"\e80e"}.f-icon-google-plus::before{content:"\e80f"}.f-icon-google-plus-box::before{content:"\e810"}.f-icon-linkedin::before{content:"\e811"}.f-icon-linkedin-box::before{content:"\e812"}.f-icon-myspace::before{content:"\e813"}.f-icon-myspace-box::before{content:"\e814"}.f-icon-pinterest::before{content:"\e815"}.f-icon-pinterest-box::before{content:"\e816"}.f-icon-reddit::before{content:"\e817"}.f-icon-reddit-box::before{content:"\e818"}.f-icon-stumble-upon::before{content:"\e819"}.f-icon-stumble-upon-box::before{content:"\e81a"}.f-icon-tell-a-friend::before{content:"\e81b"}.f-icon-tell-a-friend-box::before{content:"\e81c"}.f-icon-tumblr::before{content:"\e81d"}.f-icon-tumblr-box::before{content:"\e81e"}.f-icon-twitter::before{content:"\e81f"}.f-icon-twitter-box::before{content:"\e820"}.f-icon-yammer::before{content:"\e821"}.f-icon-yammer-box::before{content:"\e822"}.f-icon-behance::before{content:"\e823"}.f-icon-behance-box::before{content:"\e824"}.f-icon-dribbble::before{content:"\e825"}.f-icon-dribbble-box::before{content:"\e826"}.f-icon-rss::before{content:"\e827"}.f-icon-rss-box::before{content:"\e828"}.f-icon-vimeo::before{content:"\e829"}.f-icon-vimeo-box::before{content:"\e82a"}.f-icon-youtube::before{content:"\e82b"}.f-icon-youtube-box::before{content:"\e82c"}.f-icon-folder-add::before{content:"\e902"}.f-icon-folder-up::before{content:"\e903"}.f-icon-fields-more::before,.f-icon-folder-more::before{content:"\e904"}.f-icon-aggregate-fields::before{content:"\e905"}.f-icon-file-vertical::before,.f-icon-page-portrait::before{content:"\e906"}.f-icon-file-add::before,.f-icon-insert-file::before{content:"\e907"}.f-icon-file-txt::before,.f-icon-txt::before{content:"\e908"}.f-icon-csv::before,.f-icon-file-csv::before{content:"\e909"}.f-icon-excel::before,.f-icon-file-excel::before,.f-icon-file-xls::before,.f-icon-xls::before,.f-icon-xlsa::before{content:"\e90a"}.f-icon-doc::before,.f-icon-file-doc::before,.f-icon-file-word::before,.f-icon-word::before{content:"\e90b"}.f-icon-file-mdb::before,.f-icon-mdb::before{content:"\e90c"}.f-icon-file-ppt::before,.f-icon-ppt::before{content:"\e90d"}.f-icon-file-pdf::before,.f-icon-pdf::before,.f-icon-pdfa::before{content:"\e90e"}.f-icon-file-psd::before,.f-icon-psd::before{content:"\e90f"}.f-icon-file-flash::before,.f-icon-flash::before{content:"\e910"}.f-icon-config::before,.f-icon-file-config::before{content:"\e911"}.f-icon-ascx::before,.f-icon-file-ascx::before{content:"\e912"}.f-icon-bac::before,.f-icon-file-bac::before{content:"\e913"}.f-icon-file-zip::before,.f-icon-zip::before{content:"\e914"}.f-icon-film::before{content:"\e915"}.f-icon-css3::before{content:"\e916"}.f-icon-html5::before{content:"\e917"}.f-icon-html::before,.f-icon-source-code::before,.f-icon-view-source::before{content:"\e918"}.f-icon-css::before{content:"\e919"}.f-icon-js::before{content:"\e91a"}.f-icon-exe::before{content:"\e91b"}.f-icon-csproj::before{content:"\e91c"}.f-icon-vbproj::before{content:"\e91d"}.f-icon-cs::before{content:"\e91e"}.f-icon-vb::before{content:"\e91f"}.f-icon-sln::before{content:"\e920"}.f-icon-cloud::before{content:"\e921"}.f-icon-file-horizontal::before,.f-icon-page-landscape::before{content:"\e922"}.f-icon-steps-transport::before{content:"\eb07"}.f-icon-steps-settlement::before{content:"\eb08"}.f-icon-steps-outofstock::before{content:"\eb09"}.f-icon-steps-invoice::before{content:"\eb0a"}.f-icon-steps-receivables::before{content:"\eb0b"}.f-icon-steps-delivergoods::before{content:"\eb0c"}.f-icon-exhale-discount::before{content:"\eb0d"}.f-icon-flag_urgent::before{content:"\eb10"}.f-icon-top_home::before{content:"\eb11"}.f-icon-top_agency::before{content:"\eb13"}.f-icon-top_news::before{content:"\eb14"}.f-icon-top_im_default::before{content:"\eb15"}.f-icon-top_developmenttool::before{content:"\eb16"}.f-icon-top_search::before{content:"\eb17"}.f-icon-top_my::before{content:"\eb18"}.f-icon-home-man::before{content:"\eb1a"}.f-icon-home-woman::before{content:"\eb1b"}.f-icon-home-setup::before{content:"\eb1c"}.f-icon-home-add::before{content:"\eb1d"}.f-icon-home-ring::before{content:"\eb1e"}.f-icon-home-operation::before{content:"\eb1f"}.f-icon-home-more::before{content:"\eb20"}.f-icon-home-weather-leaf::before{content:"\eb21"}.f-icon-engineering::before{content:"\eb22"}.f-icon-git::before{content:"\eb23"}.f-icon-panel-retraction::before{content:"\eb24"}.f-icon-input-language::before{content:"\eb26"}.f-icon-attribute-configuration::before{content:"\eb27"}.f-icon-bottomsetting::before{content:"\eb28"}.f-icon-roofing::before{content:"\eb29"}.f-icon-new-fullscreen::before{content:"\eb38"}.f-icon-filtrate::before{content:"\eb39"}.f-icon-document-information::before{content:"\eb3a"}.f-icon-attachment-list::before{content:"\eb3b"}.f-icon-product-list::before{content:"\eb3c"}.f-icon-new-function::before{content:"\eb3d"}.f-icon-telephone::before{content:"\eb3e"}.f-icon-list::before{content:"\eb3f"}.f-icon-more::before{content:"\eb41"}.f-icon-record::before{content:"\eb42"}.f-icon-man::before{content:"\eb43"}.f-icon-woman::before{content:"\eb44"}.f-icon-new-form::before{content:"\eb45"}.f-icon-new-edit::before{content:"\eb46"}.f-icon-new-dimension::before{content:"\eb49"}.f-icon-basic::before{content:"\eb4c"}.f-icon-language::before{content:"\eb4d"}.f-icon-password::before{content:"\eb4e"}.f-icon-area::before{content:"\eb4f"}.f-icon-skin::before{content:"\eb51"}.f-icon-counterclockwise::before{content:"\eb53"}.f-icon-clockwise::before{content:"\eb54"}.f-icon-amplification::before{content:"\eb55"}.f-icon-narrow::before{content:"\eb56"}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse-icon::before,.f-icon-packup::before{content:"\eb58"}.f-icon-remove::before{content:"\eb59"}.f-icon-user_center::before{content:"\eb5a"}.f-icon-sign_out::before{content:"\eb5b"}.f-icon-yxs_customize::before{content:"\eb5c"}.f-icon-yxs_earth::before{content:"\eb5d"}.f-icon-yxs_level::before{content:"\eb5e"}.f-icon-yxs_delete::before{content:"\eb5f"}.f-icon-yxs_copy::before{content:"\eb60"}.f-icon-yxs_move::before{content:"\eb61"}.f-icon-index::before{content:"\eb65"}.f-icon-index-face::before{content:"\eb66"}.f-icon-search::before{content:"\eb67"}.f-icon-message::before{content:"\eb69"}.f-icon-backlog::before{content:"\eb6a"}.f-icon-information::before{content:"\eb6b"}.f-icon-launchpad::before{content:"\eb6c"}.f-icon-launchpad-face::before{content:"\eb6d"}.f-icon-ide::before{content:"\eb71"}.f-icon-collection::before{content:"\eb72"}.f-icon-shoucangjia::before{content:"\eb73"}.f-icon-list1::before{content:"\eb74"}.f-icon-tiled::before{content:"\eb75"}.f-icon-sudoku::before{content:"\eb76"}.f-icon-tenant::before{content:"\eb77"}.f-icon-radio-2::before{content:"\eb78"}.f-icon-qiehuanzuzhi::before{content:"\eb79"}.f-icon-tiled-new::before{content:"\eb7a"}.f-icon-list-new::before{content:"\eb7b"}.f-icon-sudoku-new::before{content:"\eb7c"}.f-icon-danger::before{content:"\eb7e"}.f-icon-default::before{content:"\eb14"}.f-icon-navigation::before{content:"\eb81"}.f-icon-launchpad-face2::before{content:"\eb84"}.f-icon-launchpad2::before{content:"\eb83"}.f-icon-col-filteranddescending::before{content:"\eb9b"}.f-icon-col-filterandascending::before{content:"\eb9a"}.f-icon-col-defaultfilterandsort::before{content:"\eb89"}.f-icon-col-filter::before{content:"\eb88"}.f-icon-col-descending::before{content:"\eb87"}.f-icon-col-ascending::before{content:"\eb86"}.f-icon-col-defaultsort::before{content:"\eb85"}.f-icon-runtime::before{content:"\eb9c"}.f-icon-page-last::before{content:"\eb9e"}.f-icon-page-first::before{content:"\eb9d"}.f-icon-orientation-arrow::before{content:"\eb9f"}.f-icon-flowline-scheduled:before{content:"\eba9"}.f-icon-flowline-canceled::before{content:"\eba8"}.f-icon-flowline-pending::before{content:"\eba7"}.f-icon-flowline-run::before{content:"\eba6"}.f-icon-flowline-created::before{content:"\eba5"}.f-icon-flowline-running::before{content:"\eba4"}.f-icon-flowline-waiting::before{content:"\eba3"}.f-icon-flowline-skipped::before{content:"\eba2"}.f-icon-flowline-view::before{content:"\eba1"}.f-icon-flowline-warning::before{content:"\eba0"}.f-icon-flowline-more::before{content:"\ebb0"}.f-icon-flowline-manual::before{content:"\ebb1"}.f-icon-path::before{content:"\ebb2"}.f-icon-code::before{content:"\ebb3"}.f-icon-department::before{content:"\ebb4"}.f-icon-info-circle::before{content:"\ebb5"}.f-icon-help-01::before{content:"\ebb6"}.f-icon-statement::before{content:"\ebd3"}.f-icon-address-location::before{content:"\ebd2"}.f-icon-task-record::before{content:"\ebd1"}.f-icon-visit:before{content:"\ebd0"}.f-icon-relationship::before{content:"\ebc9"}.f-icon-truck-delivery::before{content:"\ebc8"}.f-icon-concat-list::before{content:"\ebc7"}.f-icon-payment-notice::before{content:"\ebc6"}.f-icon-application-for-invoicing::before{content:"\ebc5"}.f-icon-accomplishment:before{content:"\ebc4"}.f-icon-potential:before{content:"\ebc3"}.f-icon-aim::before{content:"\ebc2"}.f-icon-declaration-form::before{content:"\ebc1"}.f-icon-licensed::before{content:"\ebc0"}.f-icon-profile-picture::before{content:"\ebb9"}.f-icon-forecast-of-completion::before{content:"\ebb8"}.f-icon-team::before{content:"\ebb7"}.f-icon-table_view::before{content:"\ebf7"}.f-icon-card_view::before{content:"\ebd5"}.f-icon-list_view::before{content:"\ebd6"}.f-icon-form_view::before{content:"\ebd7"}.f-icon-chart_view::before{content:"\ebd8"}.f-icon-perspective_view::before{content:"\ebd9"}.f-icon-drop-down_line::before{content:"\ebe1"}.f-icon-more_line::before{content:"\ebe2"}.f-icon-calendars_line1::before{content:"\ebe3"}.f-icon-message_round::before{content:"\ebe9"}.f-icon-col-descendingorder::before{content:"\ebf2"}.f-icon-col-ascendingorder::before{content:"\ebf1"}.f-icon-feedback::before{content:"\ebf3"}.f-icon-signature::before{content:"\ebf4"}.f-icon-indep-password::before{content:"\ebf5"}.f-icon-honor::before{content:"\ebf6"}.f-icon-view-cardview::before{content:"\ebf8"}.f-icon-edit-cardview::before{content:"\ebf9"}.f-icon-description-tips::before{content:"\eca1"}.f-icon-equalsign::before{content:"\eca2"}.f-icon-column-rectangle::before{content:"\eca3"}.f-icon-position::before{content:"\ecb4"}.f-icon-hotel::before{content:"\ecb3"}.f-icon-arrowwide::before{content:"\ecb2"}.f-icon-foldin::before{content:"\ecb1"}.f-icon-filter-cancel::before{content:"\eca4"}.f-icon-filter-add::before{content:"\eca5"}.f-icon-filter-grouping::before{content:"\eca6"}.f-icon-filter-delete::before{content:"\eca7"}.f-icon-moverto::before{content:"\eca8"}.f-icon-thumbtack-fill::before{content:"\eca9"}.f-icon-thumbtack::before{content:"\ecb0"}.f-icon-enclosure-edit::before{content:"\ecb6"}.f-icon-notifier::before{content:"\ecb7"}.f-iconmage{display:inline-block}.f-btn-icon{cursor:pointer;padding:.1875rem;border:1px solid var(--f-neutral-08);border-radius:6px;position:relative;display:flex;align-items:center;justify-content:center;width:1.6607375rem;height:1.6607375rem}.f-btn-icon.f-bare{border-color:transparent!important;background:0 0!important;transition:color .2s ease-in-out}.f-btn-icon::before,.f-cmp-inputgroup .input-append-button,.f-cmp-text-input-append .input-append-button,.f-component-text .input-append-button,.input-append-button{background:var(--f-neutral-00)}.f-btn-icon::after,.f-btn-icon::before{border-radius:6px;position:absolute;left:-1px;right:-1px;top:-1px;bottom:-1px;z-index:0;transition:opacity .2s ease-in-out;opacity:0}.f-btn-icon.f-bare::before{display:block}.f-btn-icon::before{content:"";display:none;pointer-events:none}.f-btn-icon.f-state-hover::before,.f-btn-icon:hover::before{opacity:.08}.f-btn-icon::after{content:"";display:none;pointer-events:none}.farris-image-cropper-frame,.farris-image-cropper-frame .farris-image-cropper{position:relative;width:100%}.btn-icontext{display:inline-flex;align-items:center}.btn-icontext .f-icon{margin:0 .4375rem 0 0}.f-icon-danger,.f-icon-error{color:var(--f-semantic-danger-01)}.f-icon-info,.f-icon-note::before{color:var(--f-semantic-info-01)}.f-icon-question,.f-icon-warning{color:var(--f-semantic-warning-01)}.f-icon-success{color:var(--f-semantic-success-01)}.f-icon-default{color:var(--f-semantic-info-01)}.f-icon-lookup::before{content:"\e032"}.f-page-pre::before{content:"\e016"}.f-page-first::before{content:"\eb9d"}.f-page-last::before{content:"\eb9e"}.f-page-next::before{content:"\e014"}.modal_minimize{font-family:FarrisIcons}.modal_minimize::before{content:"\eb4b"}.modal_maximize{font-family:FarrisIcons}.modal_maximize::before{content:"\eb68"}.f-icon-close::before,.f-icon-group-delete::before,.modal_close::before{content:"\e11b"}.f-icon-close,.f-icon-group-delete::before{font-family:FarrisIcons}.modal_close{font-family:FarrisIcons}.modalrevert::before{content:"\eb4b"}.f-legend-icon::after{content:"";width:1.125rem;height:.875rem;overflow:hidden;display:inline-block;line-height:1.125rem;margin:0 .25rem 0 0;color:var(--f-neutral-01)}.f-legend-collapse::after,.f-legend-show::after{font-size:.875rem;font-family:FarrisIcons}.f-legend-collapse::after{content:"\e013"}.f-legend-show::after{content:"\e015"}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field:hover.search-field-remove>.f-icon::before,.f-search-box .search-tag-item.search-field:hover.search-field-remove>.f-icon::before,.f-sidebar-close::before{content:"\e11b"}.f-sidebar-entry::before{content:"\e014"}.farris-image-cropper-frame{display:flex;max-width:100%;max-height:100%;overflow:hidden;text-align:center}.farris-image-cropper-frame .farris-image-cropper .farris-source-image{max-width:100%;max-height:100%;transform-origin:center}.farris-image-cropper-frame .farris-image-overlay{position:absolute;pointer-events:none;touch-action:none;outline:#fff solid 100vw;top:0;left:0}.farris-image-cropper-frame .farris-image-cropper-wrapper{position:absolute;display:flex;color:#53535C;background:0 0;outline:rgba(0,0,0,.3) solid 100vw;outline:solid var(--cropper-outline-color,rgba(0,0,0,.3));touch-action:none}.farris-image-cropper-frame .farris-image-cropper-wrapper:after{position:absolute;content:"";top:0;bottom:0;left:0;right:0;pointer-events:none;border:1px dashed;opacity:.75;color:inherit;z-index:1}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-move{width:100%;cursor:move;border-radius:100%;border:1px solid #388fff}.farris-image-cropper-frame .farris-image-cropper-wrapper:focus .farris-image-cropper-move{border-color:#1e90ff;border-width:2px}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize{position:absolute;display:inline-block;line-height:6px;padding:8px;opacity:.85;z-index:1}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize .farris-image-cropper-square{display:inline-block;background:#388fff;width:6px;height:6px;border:1px solid #59a1ff;box-sizing:content-box}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.topleft{top:-12px;left:-12px;cursor:nwse-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.top{top:-12px;left:calc(50% - 12px);cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.topright{top:-12px;right:-12px;cursor:nesw-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.right{top:calc(50% - 12px);right:-12px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.bottomright{bottom:-12px;right:-12px;cursor:nwse-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.bottom{bottom:-12px;left:calc(50% - 12px);cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.bottomleft{bottom:-12px;left:-12px;cursor:nesw-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.left{top:calc(50% - 12px);left:-12px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar{position:absolute;z-index:1}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.top{top:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.right{top:11px;right:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.bottom{bottom:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.left{top:11px;left:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded{outline-color:transparent;width:161px;height:161px}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded:after{border-radius:100%;box-shadow:0 0 0 100vw rgba(0,0,0,.3);box-shadow:0 0 0 100vw var(--cropper-outline-color,rgba(0,0,0,.3))}@media (orientation:portrait){.farris-image-cropper-frame .farris-image-cropper-wrapper{outline-width:100vh}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded:after{box-shadow:0 0 0 100vh rgba(0,0,0,.3);box-shadow:0 0 0 100vh var(--cropper-outline-color,rgba(0,0,0,.3))}}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded .farris-image-cropper-move{border-radius:100%}.farris-image-cropper-frame.farris-image-cropper-disabled .farris-image-cropper-wrapper .farris-image-cropper-move,.farris-image-cropper-frame.farris-image-cropper-disabled .farris-image-cropper-wrapper .farris-image-cropper-resize,.farris-image-cropper-frame.farris-image-cropper-disabled .farris-image-cropper-wrapper .farris-image-cropper-resize-bar{display:none}.farris-image-cropper-frame .farris-image-cropper-error{width:100%;text-align:center;font-size:14px}.farris-image-cropper-frame .farris-image-cropper-loading{position:absolute;top:0;left:0;width:100%;height:100%}.farris-image-cropper-frame .farris-image-cropper-loading .farris-image-cropper-loading-spinner{width:31px;height:31px;margin:0 auto;border:2px solid #388fff;border-radius:50%;border-left-color:transparent;border-right-color:transparent;-webkit-animation:cssload-spin 425ms infinite linear;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px);animation:cssload-spin 425ms infinite linear}.input-group-append,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text,.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}@keyframes cssload-spin{to{transform:rotate(360deg)}}.f-cmp-static-text-input-append,.f-cmp-text-input-append,.f-cmp-textarea-input-append{display:flex;height:100%}.f-cmp-static-text-input-append,.f-cmp-textarea-input-append{align-items:flex-start}.f-cmp-static-text-input-append .f-form-control-text,.f-cmp-static-text-input-append .f-form-control-textarea{flex:1 1 0}.f-cmp-static-text-input-append .input-append-wrapper,.f-cmp-text-input-append .input-append-wrapper,.f-cmp-textarea-input-append .input-append-wrapper{flex-shrink:0;height:100%}.input-append-text .input-group-text{color:var(--f-text-02);cursor:default}.input-append-button .input-group-text{color:var(--f-theme-03)}.f-cmp-inputgroup .input-append-text .input-group-text,.f-cmp-text-input-append .input-append-text .input-group-text,.f-component-text .input-append-text .input-group-text{color:var(--f-text-02)}.f-cmp-inputgroup .input-append-button .input-group-text,.f-cmp-text-input-append .input-append-button .input-group-text,.f-component-text .input-append-button .input-group-text{color:var(--f-theme-03)}.f-cmp-text-input-append .input-append-wrapper,.f-cmp-textarea-input-append .input-append-wrapper,.f-component-text .input-append-wrapper,.input-group .input-append-wrapper{background:var(--f-neutral-12)}.f-cmp-text-input-append .input-append-wrapper>.input-group-text,.f-cmp-textarea-input-append .input-append-wrapper>.input-group-text,.f-component-text .input-append-wrapper>.input-group-text,.input-group .input-append-wrapper>.input-group-text{border:0;background:0 0}.f-cmp-input-append-form .input-append-wrapper{position:absolute;right:1px;height:auto;top:1px;bottom:1px;border-radius:0 6px 6px 0;display:block}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after,.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-append-wrapper.f-state-disabled{display:none!important}.was-validated .farris-input-wrap .form-check-input:invalid~.invalid-feedback,.was-validated .farris-input-wrap .form-check-input:invalid~.invalid-tooltip,.was-validated .farris-input-wrap .form-check-input:valid~.valid-feedback,.was-validated .farris-input-wrap .form-check-input:valid~.valid-tooltip{display:block}.f-cmp-text-is-textarea.f-cmp-input-append-form .input-append-wrapper,.f-cmp-textarea-input-append.f-cmp-input-append-form .input-append-wrapper{bottom:auto}.form-control:disabled,.form-control:disabled:hover,.form-control[readonly],.form-control[readonly]:hover{border-color:var(--f-neutral-04);color:var(--f-text-02);background:var(--f-neutral-12);cursor:default}.form-control:hover{background-color:var(--f-neutral-12);color:var(--f-text-02);border-color:var(--f-theme-08);box-shadow:none}.was-validated .farris-input-wrap .custom-control-input:invalid~.custom-control-label,.was-validated .farris-input-wrap .custom-control-input:valid~.custom-control-label,.was-validated .farris-input-wrap .form-check-input:invalid~.form-check-label,.was-validated .farris-input-wrap .form-check-input:valid~.form-check-label{color:var(--f-neutral-04)}.form-control[readonly]:focus{box-shadow:none}.farris-input-wrap .custom-select.is-valid,.farris-input-wrap .form-control.is-valid,.was-validated .farris-input-wrap .custom-select:valid,.was-validated .farris-input-wrap .form-control:valid{border-color:var(--f-neutral-04)}.farris-input-wrap .custom-select.is-valid:focus,.farris-input-wrap .form-control.is-valid:focus,.was-validated .farris-input-wrap .custom-select:valid:focus,.was-validated .farris-input-wrap .form-control:valid:focus{border-color:var(--f-neutral-04);box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-control-input:valid~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.75)}.was-validated .farris-input-wrap .custom-control-input:valid:checked~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.9)}.was-validated .farris-input-wrap .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-file-input:valid~.custom-file-label{border-color:var(--f-neutral-04)}.was-validated .farris-input-wrap .custom-file-input:valid~.custom-file-label::after{border-color:inherit}.was-validated .farris-input-wrap .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.farris-input-wrap .custom-select.is-invalid,.farris-input-wrap .form-control.is-invalid,.was-validated .farris-input-wrap .custom-select:invalid,.was-validated .farris-input-wrap .form-control:invalid{border-color:var(--f-neutral-04)}.farris-input-wrap .custom-select.is-invalid:focus,.farris-input-wrap .form-control.is-invalid:focus,.was-validated .farris-input-wrap .custom-select:invalid:focus,.was-validated .farris-input-wrap .form-control:invalid:focus{border-color:var(--f-neutral-04);box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-control-input:invalid~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.75)}.was-validated .farris-input-wrap .custom-control-input:invalid:checked~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.9)}.was-validated .farris-input-wrap .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-file-input:invalid~.custom-file-label{border-color:var(--f-neutral-04)}.was-validated .farris-input-wrap .custom-file-input:invalid~.custom-file-label::after{border-color:inherit}.was-validated .farris-input-wrap .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}input:-internal-autofill-selected{background:var(--f-neutral-12)}.f-empty-input-placeholder{padding-top:1.1607375rem;margin-top:.375rem;height:calc(1.5rem + .125rem);margin-bottom:.375rem;box-sizing:content-box}textarea::-webkit-input-placeholder{color:var(--f-text-09)!important}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;flex-grow:1;flex-shrink:1;flex-basis:0;width:1%;margin-bottom:0}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-file{display:flex;align-items:center}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-prepend{margin-right:-1px}.input-group-text{display:flex;align-items:center;padding:.1875rem .5rem;margin-bottom:0;font-weight:400;color:var(--f-text-02);text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid var(--f-neutral-04);border-radius:6px}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(1.750025rem + 2px);padding:.25rem .3125rem;font-size:.875rem;line-height:1.4286;border-radius:6px}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.32145rem + 2px);padding:.125rem .4375rem;font-size:.75rem;line-height:1.4286;border-radius:6px}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.input-group.f-state-focus{outline:0;border-color:var(--f-theme-08);box-shadow:0 0 0,0 0 4px 2px rgba(99,136,255,.12)}.input-group{border:1px solid var(--f-neutral-04);border-radius:6px}.input-group .form-control{border:0;height:1.5rem;box-shadow:none}.input-group .form-control:focus{box-shadow:none}.input-group .input-group-prepend{border-radius:6px 0 0 6px}.input-group .input-group-append{border-radius:0 6px 6px 0}.input-group .input-group-append,.input-group .input-group-prepend{background:#e4e7eb}.input-group .input-group-append>.btn,.input-group .input-group-append>.dropdown,.input-group .input-group-append>.input-group-text,.input-group .input-group-prepend>.btn,.input-group .input-group-prepend>.dropdown,.input-group .input-group-prepend>.input-group-text{border:0}.input-group .input-group-append>.input-group-text,.input-group .input-group-prepend>.input-group-text{background:0 0}.input-group .input-group-append>.input-group-clear,.input-group .input-group-prepend>.input-group-clear{padding:0 8px;border-radius:6px!important;background:var(--f-neutral-12)}.input-group .input-group-append>.input-group-clear .modal_close,.input-group .input-group-prepend>.input-group-clear .modal_close{color:var(--f-text-10);font-size:.75rem}.input-group .input-group-append>.input-group-clear:hover .modal_close,.input-group .input-group-prepend>.input-group-clear:hover .modal_close{color:var(--f-text-08)}.input-group:not(.farris-input-group-readonly):not(.farris-input-group-disable):not(.f-state-readonly):not(.f-state-disabled):not(.f-state-focus):hover{border-color:var(--f-theme-08)}.f-cmp-inputgroup .input-group-before-tips{background:var(--f-neutral-04);border:none;border-right:1px solid var(--f-neutral-04);position:relative;border-radius:6px 0 0 6px;padding:0 8px;display:flex;align-items:center}.f-cmp-inputgroup .input-group-before-tips .f-icon{font-size:14px}.f-cmp-inputgroup .input-group-before-tips .tips-arrow{width:4px;height:4px;margin:-4px 0 0;position:absolute;top:50%;right:0}.f-cmp-inputgroup .input-group-before-tips .tips-arrow::after,.f-cmp-inputgroup .input-group-before-tips .tips-arrow::before{content:"";border-color:transparent;border-style:solid;border-width:4px 4px 4px 0;position:absolute}.f-cmp-inputgroup .input-group-before-tips .tips-arrow::before{left:0;border-right-color:var(--f-neutral-04)}.f-cmp-inputgroup .input-group-before-tips .tips-arrow::after{left:1px;border-right-color:var(--f-neutral-12)}.f-cmp-inputgroup .f-state-disabled,.f-cmp-inputgroup .f-state-editable{border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-cmp-inputgroup.input-group{flex-wrap:nowrap}.f-cmp-inputgroup .input-group-append{margin-left:0;background:var(--f-neutral-12)}.f-cmp-inputgroup.input-group>.form-control:not(:last-child){border-radius:6px}.f-cmp-inputgroup.input-group--has-clear>.form-control:last-of-type{border-top-right-radius:0;border-bottom-right-radius:0}.f-cmp-inputgroup .input-group-text{justify-content:center;color:rgba(0,0,0,.25);padding-left:.26786875rem;padding-right:.26786875rem;cursor:pointer}.f-cmp-inputgroup .input-group-text:hover{color:var(--f-theme-05)}.f-cmp-inputgroup .f-state-disabled .input-group-append,.f-cmp-inputgroup .f-state-readonly .input-group-append,.f-cmp-inputgroup .farris-input-group-disable .input-group-append,.f-cmp-inputgroup .farris-input-group-readonly .input-group-append{background:var(--f-neutral-12)}.f-cmp-inputgroup .f-state-disabled .input-group-append:not(.input-append-wrapper),.f-cmp-inputgroup .f-state-readonly .input-group-append:not(.input-append-wrapper),.f-cmp-inputgroup .farris-input-group-disable .input-group-append:not(.input-append-wrapper),.f-cmp-inputgroup .farris-input-group-readonly .input-group-append:not(.input-append-wrapper){display:none}.f-cmp-inputgroup .f-state-disabled .input-append-wrapper,.f-cmp-inputgroup .f-state-readonly .input-append-wrapper,.f-cmp-inputgroup .farris-input-group-disable .input-append-wrapper,.f-cmp-inputgroup .farris-input-group-readonly .input-append-wrapper{color:var(--f-text-02)}.f-cmp-inputgroup .f-state-disabled .input-append-wrapper .input-append-text:hover,.f-cmp-inputgroup .f-state-readonly .input-append-wrapper .input-append-text:hover,.f-cmp-inputgroup .farris-input-group-disable .input-append-wrapper .input-append-text:hover,.f-cmp-inputgroup .farris-input-group-readonly .input-append-wrapper .input-append-text:hover{color:inherit}.f-cmp-inputgroup .f-state-disabled .append-force-show,.f-cmp-inputgroup .f-state-readonly .append-force-show,.f-cmp-inputgroup .farris-input-group-disable .append-force-show,.f-cmp-inputgroup .farris-input-group-readonly .append-force-show{display:flex}.f-cmp-inputgroup .f-state-disabled .input-group-text,.f-cmp-inputgroup .f-state-readonly .input-group-text,.f-cmp-inputgroup .farris-input-group-disable .input-group-text,.f-cmp-inputgroup .farris-input-group-readonly .input-group-text{cursor:default}.f-cmp-inputgroup .f-state-disabled .form-control{color:var(--f-text-02)}.f-cmp-inputgroup .f-state-editable .form-control{color:var(--f-text-02)!important}.f-cmp-inputgroup .f-state-focus{outline:0;border-color:var(--f-theme-08);box-shadow:0 0 0,0 0 4px 2px rgba(99,136,255,.12)}.f-cmp-inputgroup .f-state-readonly{box-shadow:none;background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-cmp-inputgroup .f-state-readonly .form-control{color:var(--f-text-02)}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper{display:flex;flex-direction:row;align-items:center}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--content{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden;height:100%;word-break:break-all}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--content .multi--close{color:var(--f-text-10);font-size:14px;cursor:pointer;margin-left:4px}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--content .multi--close::before{content:"\e11d"}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--item{display:inline-flex;align-items:center;border-radius:4px;margin:0 4px 0 0;padding:0 6px;background:var(--f-neutral-09)}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--item:last-child{margin:0}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--more{flex-shrink:0;font-size:13px;color:var(--f-theme-03);display:flex;align-items:center}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--more .multi--more-icon{font-size:13px}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--more .multi--more-icon::before{content:"\e11e"}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi-date-display .multi--item{padding:0 14px 0 6px}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi-date-display .multi-date-display-readonly{padding:0 6px}.language-textbox-panel{background:var(--f-neutral-20)!important;margin:.25rem 0 0;border-radius:10px;box-shadow:0 2px 20px 0 rgba(3,18,51,.12)!important}.f-layout-pane.f-page-content-main,.f-splitter-pane.f-splitter-pane-bottom,.f-splitter-pane.f-splitter-pane-left,.f-splitter-pane.f-splitter-pane-right,.f-splitter-pane.f-splitter-pane-top{box-shadow:0 0 8px 0 rgba(0,28,64,.08)}.language-textbox-panel .list-group-item{background:0 0}.f-layout{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:row;flex-wrap:nowrap;overflow:hidden;position:relative}.f-layout-pane.f-page-content-main{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto;display:flex}.f-layout-pane.f-page-content-nav{display:flex;flex-direction:column;box-shadow:none!important;padding:0;position:relative;z-index:100}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-e{cursor:e-resize;width:.4375rem;right:-.3125rem;height:100%;top:0}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-w{cursor:w-resize;width:.4375rem;left:-.3125rem;height:100%;top:0}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-s{cursor:s-resize;height:.4375rem;bottom:-.3125rem;width:100%;left:0}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-n{cursor:n-resize;height:.4375rem;top:-.3125rem;width:100%;left:0}.f-layout-pane>.f-layout-resize-bar{position:absolute;font-size:.1px;display:block;touch-action:none}.f-layout-pane>.f-layout-resize-bar:hover{background:rgba(42,135,255,.07)}.f-layout-resize-overlay{z-index:98;width:100%;height:100%;cursor:e-resize;background:0 0;position:absolute}.f-layout-horizontal-resize-proxy,.f-layout-vertical-resize-proxy{background:rgba(42,135,255,.07);display:none;z-index:100;position:absolute}.f-layout-horizontal-resize-proxy{width:.4375rem;left:0;height:100%}.f-layout-vertical-resize-proxy{height:.4375rem;top:0;width:100%}.f-list-nav{height:100%;min-height:200px}.f-list-nav .f-list-nav-in{position:relative;height:100%;background-color:#fff;box-shadow:1px 1px 8px 0 rgba(0,28,64,.08);z-index:100}.f-list-nav .f-list-nav-main{display:flex;flex-direction:column;height:100%;overflow-x:hidden}.f-list-nav .f-list-nav-main .f-list-nav-footer,.f-list-nav .f-list-nav-main .f-list-nav-header{flex-shrink:0}.f-list-nav .f-list-nav-main .f-list-nav-content{flex-grow:1;flex-shrink:1;flex-basis:0;overflow-y:auto;padding:.625rem 0}.f-list-nav .f-list-nav-main .f-list-nav-header .f-list-nav-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.625rem .875rem .375rem!important;border:none!important;font-size:17px;color:var(--f-text-02);line-height:24px}.f-list-nav.f-list-nav-left{padding-right:0}.f-list-nav.f-list-nav-right{padding-left:0}.f-list-nav.f-list-nav-bottom,.f-list-nav.f-list-nav-top{width:100%;height:auto;min-height:auto}.f-list-nav .f-list-nav-in>.ng-resizable-handle{z-index:105}.splitter-pane-collapse-animate{transition:width .5s ease 0s}.f-template-listnav-row .list-nav-link{margin:4px 8px;border-radius:8px;color:var(--f-text-02);display:flex;align-items:center;padding:.5625rem 1.25rem}.f-template-listnav-row .list-nav-link.link-disable{background-color:#F9F9F9}.f-template-listnav-row .list-nav-link .nav-item-name{flex:1;font-size:.875rem;line-height:1.25rem;color:var(--f-text-02);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-template-listnav-row .list-nav-link .nav-item-counter{display:inline-block;padding:0 .3125rem;height:.875rem;line-height:.875rem;border-radius:.5rem;font-size:.625rem;color:var(--f-theme-03)}.f-template-listnav-row .list-nav-link:hover{background:var(--f-aid-02)}.f-listview-active .f-template-listnav-row .list-nav-link{border:none;background:var(--f-theme-04);box-shadow:0 4px 10px 0 rgba(var(--f-theme-03),.2)}.f-listview-active .f-template-listnav-row .list-nav-link .nav-item-name{color:#fff}.f-listview-active .f-template-listnav-row .list-nav-link .nav-item-counter{color:#fff;font-size:13px;background:0 0}.f-list-nav .f-list-nav-toggle-sidebar{width:22px;height:22px;background:#fff;border:1px solid var(--f-neutral-07);display:flex;align-items:center;position:absolute;z-index:120;margin:0;cursor:pointer}.f-list-nav .f-list-nav-toggle-sidebar .triangle{color:var(--f-text-02);border:none;font-family:FarrisIcons;width:14px;height:14px;-webkit-font-smoothing:antialiased;font-size:14px;font-weight:400;text-transform:none;display:block;line-height:14px;margin:0 auto}.f-list-nav .f-list-nav-toggle-sidebar .triangle::before{line-height:1}.f-list-nav .f-list-nav-toggle-sidebar .active,.f-list-nav .f-list-nav-toggle-sidebar:hover{border-color:var(--f-theme-03);color:#fff;background-image:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);box-shadow:0 3px 8px 0 rgba(var(--f-semantic-info-01),.4)}.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar{border-radius:12px;top:14px;right:-12px;left:auto}.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar.active{right:-12px;transform:rotateY(180deg)}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar{border-radius:12px;top:14px;left:-12px;right:auto}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar .triangle::before{content:"\e00d"}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar.active{left:-12px;transform:rotateY(180deg)}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar{border-radius:12px;top:auto;bottom:-12px;right:14px;width:22px;height:22px;left:auto}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar .triangle::before{content:"\e00c"}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar.active{top:auto;left:auto;right:14px;bottom:-12px;transform:rotateX(180deg)}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar{border-radius:12px;top:-12px;bottom:auto;right:14px;width:22px;height:22px;left:auto}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar .triangle::before{content:"\e00e"}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar.active{right:14px;left:auto;top:-12px;bottom:auto;transform:rotateX(180deg)}.f-template-timeline-new-row .f-timeline{padding-right:26px}.f-template-timeline-new-row .f-timeline .timeline-date{position:relative;padding-bottom:16px;padding-left:18px;color:rgba(0,0,0,.45);font-size:14px;line-height:20px}.f-template-timeline-new-row .f-timeline .timeline-date::before{position:absolute;left:0;top:0;width:1px;height:35px;border-left:1px dotted #dcdcdc;content:"";z-index:9}.f-template-timeline-new-row .f-timeline .timeline-date::after{position:absolute;left:-3px;top:6.5px;display:block;width:7px;height:7px;background:#66B869;border-radius:100%;content:"";z-index:10}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper{padding-left:18px;padding-bottom:13px;border-left:1px dotted #dcdcdc}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content{padding:15px 14px;background:#F9F9F9;border:1px solid #F2F2F2}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-title{padding-bottom:12px;font-size:14px;line-height:20px;color:rgba(0,0,0,.65);border-bottom:1px solid rgba(220,220,220,.6)}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-title .title-sum{line-height:22px;font-size:16px;color:#F49730}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-main .content-data{font-size:0;margin-top:16px}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-main .content-data li{display:inline-block;padding-right:30px;margin-bottom:18px;font-size:14px;line-height:20px;color:rgba(0,0,0,.65)}.f-template-timeline-new-row .f-timeline.f-timeline-first .timeline-date::before{height:28px;top:7px}.f-template-timeline-new-row .f-timeline.f-timeline-success .timeline-date::after{background:var(--f-semantic-success-01)}.f-template-timeline-new-row .f-timeline.f-timeline-info .timeline-date::after{background-color:var(--f-semantic-info-01)}.f-template-timeline-new-row .f-timeline.f-timeline-error .timeline-date::after{background-color:var(--f-semantic-danger-01)}.f-template-timeline-new-row .f-timeline.f-timeline-warn .timeline-date::after{background-color:var(--f-semantic-warning-01)}.f-list-view .f-list-view-hover,.f-tmpl-subgrid-by-card .subgrid-by-card-item.f-state-edit{background:linear-gradient(270deg,rgba(235,244,255,.6) 0,#EBF4FF 100%)}.f-listview-fill{flex-grow:1;flex-shrink:1;flex-basis:0;overflow:hidden}.f-listview-fill .f-list-view{height:100%}.f-listview-fill .f-list-view .f-list-view-footer,.f-listview-fill .f-list-view .f-list-view-header{flex-shrink:0}.f-listview-fill .f-list-view .f-list-view-content{overflow-y:auto;flex-grow:1;flex-shrink:1;flex-basis:0}.f-list-view{display:flex;flex-direction:column;overflow:hidden}.f-list-view .f-list-view-content{flex:1;overflow:auto}.f-list-view .f-list-view-group{padding:0}.f-list-view .f-paging-wrapper{padding:14px 0}.f-list-view .f-list-view-group-item{display:flex;align-items:center;float:none;text-align:initial}.f-list-view .f-list-view-group-item.f-none-border{border-bottom:0}.f-list-view .f-list-view-group-item.f-listview-active,.f-list-view .f-list-view-group-item.f-listview-hover{cursor:pointer;color:#424347}.f-list-view .f-list-view-group-item.f-listview-active{border-color:#529dff}.f-list-view .f-list-view-group-item.f-un-select{color:#848c9a}.f-list-view .f-list-view-group-item .f-list-content{flex:1 1 auto;width:100%}.f-list-view .f-list-view-draggable-item{border:1px solid #e2e3e5;background-color:#fafbfd;border-radius:10px;margin:4px 2px}.f-list-view .f-list-view-draggable-item.f-listview-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.f-list-view .f-list-view-draggable-item.f-listview-hover .f-list-remove-icon{display:initial}.f-list-view .f-list-view-draggable-item.f-listview-active{border-color:#529dff}.f-list-view .f-list-view-draggable-item.moving{opacity:0}.f-list-view .f-list-view-draggable-item.draggable-item--text-truncate .f-list-content{overflow:hidden}.f-list-view .f-list-view-draggable-item.draggable-item--text-truncate .f-list-content div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-list-view .f-list-select{padding:0 0 0 14px}.f-list-view .f-list-select .listview-checkbox{margin:.25rem 0}.f-list-view .f-list-pin{color:#2986ff;padding:0 14px 0 0}.f-list-view .f-list-remove{width:30px;color:#f4625f;padding:0 14px 0 0}.f-list-view .f-list-remove-icon{display:none}.f-list-view .f-list-handle{padding:0 14px 0 0}.f-list-view .f-list-view-emptydata .f-empty-title{font-size:14px;line-height:22px;color:#999;padding:20px 0;text-align:center}.f-list-view.small-item .f-list-select{padding:initial}::highlight(search-result){background-color:#F7B500;color:#fff}.f-list-view-group-item .custom-control.listview-checkbox{margin-right:0;padding-right:4px}.f-listview-card-content-fill .f-list-content{height:100%;display:flex;flex-direction:column}.f-listview-card-content-fill .f-list-content>*{height:100%}.f-tmpl-card-listview--header-multicontent02 .f-list-view{margin:0}.f-tmpl-card-listview--header-multicontent02 .f-list-view-group{margin:0 -10px}.f-tmpl-card-listview--header-multicontent02 .f-list-view-content{overflow-x:hidden}.f-tmpl-card--header-multicontent02{position:relative;margin:0 10px 20px}.f-tmpl-card--header-multicontent02 .f-list-select{position:absolute;padding:0!important;top:10px;left:14px}.f-component-loading,.farris-loading-backdrop{top:0;left:0;position:absolute;right:0;bottom:0}.f-tmpl-card--header-multicontent02 .f-list-select .custom-checkbox{margin:0;padding:0}.f-tmpl-card--header-multicontent02 .f-list-select .custom-control-label::before{font-size:1rem}.f-tmpl-card--header-multicontent02 .header-multicontent02{background:#FEFEFF;border:1px solid #E9ECF3;border-radius:6px;width:310px;margin:0}.f-tmpl-card--header-multicontent02 .header-multicontent02 .text-label{color:#5A5E66}.f-tmpl-card--header-multicontent02 .header-multicontent02 .f-emphasize{font-size:16px;color:var(--f-semantic-warning-01)}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header{padding:0 0 0 38px;height:40px;display:flex;align-items:center;border-bottom:1px solid #E9ECF3}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header .f-title{margin:0;flex-shrink:1;flex-grow:1;flex-basis:0;font-size:16px;font-weight:600;color:#2D2F33;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header .f-state{margin:0 0 0 8px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header .f-state .badge{border-radius:20px 0 0 20px;height:28px;line-height:28px;padding:0 13px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--content{padding:14px 0 0 14px;color:#2D2F33;font-size:13px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--content p{margin:0 0 10px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer{padding:8px 14px 18px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer p{margin:0}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .footer--auxiliary{width:32px;border-radius:16px;margin:0 8px 0 0}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .footer--auxiliary img{display:block;width:32px;height:32px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .text--name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:#5A5E66}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn{padding:2px;margin:0 8px;cursor:pointer}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn.disabled{color:var(--f-text-07)}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn:hover{color:var(--f-theme-03)}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn .f-icon{font-size:14px}.f-tmpl-list01-container{border-top:1px solid rgba(0,0,0,.07);border-bottom:1px solid rgba(0,0,0,.07);margin-top:-1px}.f-tmpl-list01-container .f-list-select{padding-right:0!important}.f-tmpl-list01-container .gutter{margin:0 30px 0 0}.f-tmpl-list01-container .list01--header{font-size:13px;margin:0 0 3px}.f-tmpl-list01-container .list01--header .f-title{font-weight:600;margin:0 8px 0 0;vertical-align:top}.f-tmpl-list01-container .list01--header li{display:inline-block;margin:0 30px 3px 0}.f-tmpl-list01-container .list01--des span:last-child,.f-tmpl-list01-container .list01--header li:last-child{margin-right:0}.f-tmpl-list01-container .list01--header .badge{border-radius:10px;line-height:20px;padding:0 8px}.f-tmpl-list01-container .list01--des{font-size:12px;color:rgba(0,0,0,.5)}.modal-header,.modal-header .close,.modal-header .close:not(:disabled):not(.disabled):focus,.modal-header .close:not(:disabled):not(.disabled):hover,.ng-busy-default-sign,.ng-busy-default-text{color:var(--f-text-02)}.f-tmpl-list01-container .list01--des span{display:inline-block;margin-bottom:3px}.f-tmpl-list01-container .list01--content{padding:16px 12px 16px 8px}.f-tmpl-list01-container .list01--toolbar{width:150px;padding:0 14px;text-align:right}.f-list-view-footer .f-paging-wrapper{padding:0!important}.f-list-view-footer .f-paging-wrapper .pagination-container{height:2.5rem}.f-list-view-footer .f-paging-wrapper .pagination{padding:.875rem 0 0}.f-component-loading{z-index:1060}.farris-loading-backdrop{z-index:1061;opacity:0;background-color:transparent}.farris-loading{position:absolute;top:50%;left:50%}.ng-busy-default-wrapper{text-align:center}.ng-busy-default-sign{position:relative;display:flex;align-items:center;z-index:1063;padding:8px 16px 8px 8px;border:0 solid #E5E9EF;border-radius:8px;box-shadow:0 6px 16px -8px rgba(0,0,0,.06),0 0 30px 12px rgba(0,0,0,.04);background:#fff}.ng-busy-default-text{display:inline-block;margin-left:.375rem;max-width:25rem;text-align:left;padding:0 4px;font-size:15px}.ng-busy-default-spinner{position:relative;display:inline-block;width:1.5625rem;height:1.5625rem;vertical-align:middle}.ng-busy-default-spinner div{position:absolute;left:44.5%;top:37%;width:10%;height:26%;background:#666;border-radius:3.125rem;box-shadow:0 0 3px rgba(0,0,0,.2);opacity:0;animation:busy-spinner-anim 1s linear infinite}.f-loading-round{font-size:10px;margin:0;width:100%;height:100%;border-radius:50%;position:relative;animation:loadingRountAnimation 1s infinite linear;transform:translateZ(0)}.f-loading-round::before{width:50%;height:50%;background:var(--f-theme-03);border-radius:100% 0 0;position:absolute;top:0;left:0;content:""}.f-loading-round::after{background:#fff;width:90%;height:90%;border-radius:50%;content:"";margin:auto;position:absolute;top:0;left:0;bottom:0;right:0}.f-loading-dot,.f-loading-dot-wrapper{height:100%;width:100%;overflow:hidden}@keyframes loadingRountAnimation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.f-loading-dot-wrapper .dot1{background:var(--f-semantic-danger-01)}.f-loading-dot-wrapper .dot2{background:var(--f-semantic-warning-01)}.f-loading-dot-wrapper .dot3{background:var(--f-semantic-success-01)}.f-loading-dot{position:absolute;margin:auto;top:0;bottom:0;left:0;right:0;animation:fLoadingDotRotate 1.8s linear infinite}.f-loading-dot-wrapper{position:relative}.f-loading-dot-wrapper .dot{position:absolute;margin:auto;width:25%;height:25%;border-radius:100%;transition:all 1s ease}.f-loading-dot-wrapper .dot1{top:0;bottom:0;left:0;animation:dotsY 1.8s linear infinite}.f-loading-dot-wrapper .dot2{left:0;right:0;top:0;animation:dotsX 1.8s linear infinite}.f-loading-dot-wrapper .dot3{top:0;bottom:0;right:0;animation:dotsY 1.8s linear infinite}.f-loading-dot-wrapper .dot4{background:var(--f-semantic-info-01);left:0;right:0;bottom:0;animation:dotsX 1.8s linear infinite}@keyframes fLoadingDotRotate{0%{transform:rotate(0)}10%{width:100%;height:100%}66%{width:25%;height:25%}100%{transform:rotate(360deg);width:100%;height:100%}}@keyframes dotsY{66%{opacity:.3;width:25%}77%{opacity:1;width:0}}@keyframes dotsX{66%{opacity:.3;height:25%}77%{opacity:1;height:0}}.modal-tips{padding:.5625rem .625rem .5625rem 1.25rem}.modal-tips .modal-tips-content{margin-top:0;margin-left:2.25rem;margin-right:1.75rem}.modal-tips .modal-tips-title{color:var(--f-text-04);font-size:.875rem;line-height:1.25rem;font-weight:400;margin:0;word-break:break-all}.modal-tips .toast-msg{margin:0;font-size:1rem;line-height:1.375rem;word-break:break-all}.modal-tips .only-toast-msg{color:var(--f-text-04);font-size:1rem;line-height:1.375rem}.modal-tips .toast-msg-title{margin:1px 0 0;word-break:break-all;font-size:1rem;line-height:1.375rem;color:var(--f-text-01)}.modal-tips .toast-msg-detail{word-break:break-all;color:var(--f-text-06);font-size:.875rem;margin:.625rem 0 0}.modal-tips .modal-tips-iconwrap .f-icon{font-size:1.625rem;margin-right:.75rem}.modal-footer .btn,.modal-footer .k-button{font-size:.8125rem;padding:.375rem 1.3125rem}.message-container{height:8.75rem;display:flex;flex-direction:column}.message-container .btn{min-width:3.75rem;margin:auto .3125rem}.farris-messager{display:flex}.farris-messager .icon{background-position:center .1875rem;background-size:4.375rem;background-repeat:no-repeat;width:4.375rem;height:4.375rem}.farris-messager .msg{flex:1 1 auto}.modal-message .modal-tips,.modal-message .modal-tips.messager-type-error{padding:1.875rem 1.5rem 1.75rem 1.875rem}.modal-message .modal-tips .modal-tips-content{padding:0}.modal-message .modal-tips .modal-tips-iconwrap{margin:0}.modal-message .modal-tips .modal-tips-iconwrap .f-icon{font-size:1.625rem}.modal-message .modal-footer{background:#fff!important;box-shadow:none;border:none;padding:0 1.5rem 1.25rem 1.875rem}.modal-message .modal-cotnent--has-header .modal-tips{padding:1.875rem 1.5rem 1.75rem 1.875rem}.modal.farris-modal .modal-message.model-dialog-maximize{width:60%!important;max-width:50rem!important;height:auto!important;max-height:60%!important;top:0!important;left:0!important;margin:0!important}.modal,.modal-backdrop{top:0;left:0;bottom:0;right:0}.modal.farris-modal .modal-message .modal-body{padding:0}.modal-open{overflow:hidden}.modal-open .modal{overflow-y:auto}.modal{position:fixed;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:translate(0,0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - .5rem * 2)}.modal-dialog-centered::before{display:block;height:calc(100vh - .5rem * 2);content:""}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:0 solid #E5E9EF;border-radius:16px;box-shadow:0 2px 12px 0 rgba(0,0,0,.06);outline:0}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.15}.modal-title{margin-bottom:0;line-height:1.375rem}.modal-body{position:relative;flex-grow:1;flex-shrink:1;flex-basis:auto;padding:.625rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:3.125rem;height:3.125rem;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:31.25rem;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - 1.75rem * 2)}.modal-dialog-centered::before{height:calc(100vh - 1.75rem * 2)}.modal-content{box-shadow:0 2px 12px 0 rgba(0,0,0,.06)}.modal-sm{max-width:18.75rem}}@media (min-width:888px){.modal-lg{max-width:50rem}}.modal-header{display:flex;justify-content:space-between;flex-shrink:0;padding:.75rem .5rem .75rem 1.125rem;background:#fff;align-items:center;border-top-left-radius:16px;border-top-right-radius:16px;border-bottom:none}.modal-header .close{opacity:1;padding:.1875rem;margin:-.25rem 0;border:1px solid transparent;font-size:1rem;width:1.6607375rem;height:1.6607375rem}.modal-title{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-footer,.showtype-modal .fe-modal-footer-base{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;background:var(--f-neutral-00);padding:.875rem 1.5rem;box-shadow:none}.modal-footer>:not(:first-child),.showtype-modal .fe-modal-footer-base>:not(:first-child){margin-left:.3125rem}.modal-footer>:not(:last-child),.showtype-modal .fe-modal-footer-base>:not(:last-child){margin-right:.3125rem}.modal-open .modal{overflow-x:auto}.modal.farris-modal .actions{flex:1;margin:-.25rem 0}.modal.farris-modal .actions ul{list-style:none;margin:0;padding:0;display:flex;justify-content:flex-end}.modal.farris-modal .actions .f-btn-icon{cursor:pointer;color:var(--f-text-07);text-align:center}.modal.farris-modal .actions .f-btn-icon:hover{color:var(--f-theme-05)}.modal.farris-modal .actions .f-btn-icon:active{color:var(--f-theme-01)}.modal.farris-modal .actions .modal-tips-iconwrap .f-icon{font-size:2rem}.fe-cmp-page-modal .action-list .f-icon,.fe-cmp-page-modal .close-icon .f-icon{font-size:14px}.modal.farris-modal .actions .modal-tips-iconwrap .modal-tips-content{padding-top:.25rem}.modal.farris-modal .ng-draggable{cursor:move}.modal.farris-modal .modal-dialog{max-width:none;margin:0;top:50%;left:50%;position:absolute;pointer-events:all}.modal.farris-modal.fade .modal-dialog{transform:none;transition:none}.modal.farris-modal .modal-content{height:100%;overflow:hidden}.modal.farris-modal .modal-body{padding:0}.farris-messager{flex-direction:column;position:absolute;top:0;bottom:0;left:0;right:0}.farris-messager .modal-tips{margin-bottom:0;flex-shrink:1;flex-grow:1;flex-basis:auto;overflow-y:auto;display:flex;flex-direction:row}.farris-messager .modal-tips .modal-tips-iconwrap{margin:.5625rem 0;padding:0}.farris-messager .modal-tips .modal-tips-content{margin:0;padding:.5625rem .9375rem .5625rem 0}.farris-messager .fixdiv{overflow:auto}.f-modal-fitContent{display:flex!important;align-items:center;justify-content:center}.f-modal-fitContent-scroll{align-items:flex-start}.f-modal-fitContent .modal-dialog{position:relative!important;top:0!important;left:0!important;margin:1.875rem 0!important;min-height:7.5rem}.f-modal-fitContent .farris-messager{position:relative!important}.overlay-container{position:fixed;z-index:9999;pointer-events:none;top:0;left:0;height:100%;width:100%}.fe-cmp-page-modal .action-wrapper{position:absolute;right:-12px;top:-12px;z-index:400}.fe-cmp-page-modal .action-wrapper .close-icon{background:rgba(0,0,0,.4);width:22px;height:22px;border-radius:12px;color:#fff;text-align:center;line-height:22px;display:block;cursor:pointer}.fe-cmp-page-modal .action-wrapper .close-icon:hover{background:rgba(0,0,0,.6)}.fe-cmp-page-modal .action-list{position:absolute;right:-32px;top:20px;color:rgba(255,255,255,.85)}.fe-cmp-page-modal .action-list .action-list--item{display:block;width:32px;height:32px;text-align:center}.fe-cmp-page-modal .action-list .action-list--icon{display:block;cursor:pointer;margin:0 auto;line-height:32px;border-radius:0 3px 3px 0}.fe-cmp-page-modal .action-list .action-list--icon:hover{color:#fff}.fe-cmp-page-modal .action-list .max-icon{background:linear-gradient(-63deg,#517BFF 0,#74A1FF 95%)}.fe-cmp-page-modal .action-list .close-icon{background:linear-gradient(-51deg,#FE6568 0,#FA6568 0,#F67574 100%)}.fe-cmp-page-modal .modal-body{border-radius:16px}.fe-cmp-page-modal.modal .modal-content{overflow:visible}.farris-modal{background-color:rgba(0,0,0,.45)}.farris-nav{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #e9e9e9;overflow:hidden;border-color:var(--f-neutral-06)!important}.farris-nav-item{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.farris-nav-item-link{padding:.75rem 1rem;cursor:pointer;border-bottom:2px solid transparent}.farris-nav-item-link-text{position:relative;font-size:1rem;font-weight:400}.farris-nav-item-tag{position:absolute;right:-.75rem;top:calc(10px - 100%);padding:0 .375rem;color:#fff;font-size:.75rem;line-height:1.125rem;border-radius:1.125rem;background-color:var(--f-semantic-danger-01)}.nav,.pagination{padding-left:0;list-style:none}.farris-nav.farris-nav-vertical{flex-direction:column;align-items:flex-start}.farris-nav.farris-nav-vertical .farris-nav-item{width:100%}.farris-nav-item-link-text{color:var(--f-text-03)}.farris-nav-item.active .farris-nav-item-link{border-color:var(--f-theme-03)}.farris-nav-item.active .farris-nav-item-link-text{color:var(--f-theme-03)}.farris-nav-item.disabled .farris-nav-item-link-text{color:var(--f-text-07)}.farris-nav-item:hover:not(.disabled):not(.active) .farris-nav-item-link-text{color:var(--f-theme-05)}.nav{display:flex;flex-wrap:wrap;margin-bottom:0}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:6px;border-top-right-radius:6px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:6px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--f-text-00);background:var(--f-theme-04)}.nav-fill .nav-item{flex-grow:1;flex-shrink:1;flex-basis:auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.farris-notify{position:fixed;z-index:999999}.farris-notify.toasty-position-top-left{top:.75rem;left:.75rem}.farris-notify.toasty-position-top-right{top:.75rem;right:.75rem}.farris-notify.toasty-position-bottom-right{bottom:.75rem;right:.75rem}.farris-notify.toasty-position-bottom-left{bottom:.75rem;left:.75rem}.farris-notify.toasty-position-top-center{top:.75rem;left:50%;transform:translate(-50%,0)}.farris-notify.toasty-position-bottom-center{bottom:.75rem;left:50%;transform:translate(-50%,0)}.farris-notify.toasty-position-center-center{top:50%;left:50%;transform:translate(-50%,0)}.f-message-strip .toast,.farris-notify .toast{margin:0 0 .625rem;padding:0;width:24rem;border:1px solid var(--f-neutral-08);background:#fff;display:table;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:8px;position:relative}.f-message-strip .toast .toast-close,.farris-notify .toast .toast-close{position:absolute;border:0;top:.625rem;right:.625rem;color:rgba(0,0,0,.25)}.f-message-strip .toast.toasty-type-danger,.f-message-strip .toast.toasty-type-info,.f-message-strip .toast.toasty-type-success,.f-message-strip .toast.toasty-type-warning,.farris-notify .toast.toasty-type-danger,.farris-notify .toast.toasty-type-info,.farris-notify .toast.toasty-type-success,.farris-notify .toast.toasty-type-warning{border-color:var(--f-neutral-08)}.f-message-strip .toast .toast-close .modal_close,.farris-notify .toast .toast-close .modal_close{font-size:1rem}.f-message-strip .toast .toast-close.f-btn-icon.f-bare,.farris-notify .toast .toast-close.f-btn-icon.f-bare{outline:unset}.f-message-strip .toast .modal-tips,.farris-notify .toast .modal-tips{padding:.625rem .75rem .625rem 1.25rem}.f-message-strip .toast .modal-tips-content,.farris-notify .toast .modal-tips-content{margin:0 1.75rem}.f-message-strip .toast .modal-tips-iconwrap .f-icon,.farris-notify .toast .modal-tips-iconwrap .f-icon{font-size:1rem;border-radius:100%;vertical-align:middle}.f-message-strip .toast.toasty-type-info .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-info .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-info-01),.3)}.f-message-strip .toast.toasty-type-success .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-success .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-success-01),.3)}.f-message-strip .toast.toasty-type-danger .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-danger .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-danger-01),.3)}.f-message-strip .toast.toasty-type-warning .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-warning .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-warning-01),.3)}.farris-notify .toast.toasty-type-danger,.farris-notify .toast.toasty-type-info,.farris-notify .toast.toasty-type-success,.farris-notify .toast.toasty-type-warning{background:#fff}.f-message-strip .toast{width:100%;box-shadow:none}.f-message-strip .toast.toasty-type-info{background:var(--f-semantic-info-03)}.f-message-strip .toast.toasty-type-success{background:var(--f-semantic-success-03)}.f-message-strip .toast.toasty-type-danger{background:var(--f-semantic-danger-03)}.f-message-strip .toast.toasty-type-warning{background:var(--f-semantic-warning-03)}.f-message-strip .toast .modal-tips{display:flex;padding:.5rem 1rem}.f-message-strip .toast .modal-tips-content{margin:0}.f-catch-attention-debounce{position:relative;z-index:1;outline:var(--f-theme-03) solid 1px;animation:debounceAttention .2s ease 0s infinite normal}@keyframes debounceAttention{0%{outline:solid var(--f-theme-03)}100%{outline:solid 18px}}.farris-notify .toast-title-beforeshow{opacity:0}@keyframes farrisMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}100%{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes farrisMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}100%{transform:translateY(-100%);transform-origin:0 0;opacity:0}}.f-cmp-footer-accordion.f-state-collapse .f-toolbar .toolbar--collapse-icon,.f-cmp-number-spinner .btn-number-flag-up .number-arrow-chevron,.pagination .pg-pagelist.show .pg-pagelist-info .f-icon{transform:rotate(180deg)}.toast.fadeIn{animation:farrisMoveUpIn .2s linear}.toast.fadeOut{animation:farrisMoveUpOut .2s linear}.f-cmp-number-spinner .sub-btn-group{border-right:1px solid var(--f-neutral-04)}.f-cmp-number-spinner .number-arrow-chevron{font-size:12px;min-width:12px}.f-cmp-number-spinner .input-group .btn-group-number,.input-group .btn-group-number{background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron{color:var(--f-text-07);border-left:1px solid var(--f-neutral-04)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron:nth-child(2),.input-group .btn-group-number.btn-number-flag .number-arrow-chevron:nth-child(2){border-top:1px solid var(--f-neutral-04)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron:active,.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron:hover,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron:active,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron:hover{color:var(--f-theme-05);background:var(--f-neutral-12)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron.not-allowed,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron.not-allowed{background:var(--f-neutral-12)}.input-group .btn-group-number{height:1.5rem;flex-direction:column;background-color:var(--f-neutral-12);border-left:1px solid var(--f-neutral-04);width:1.5rem;overflow:hidden;margin:0;flex-shrink:0}.input-group .btn-group-number .btn-number-flag{height:50%;display:flex;box-shadow:none;padding:0 5px;margin-left:1px;overflow:hidden;transition:all .1s linear}.input-group .btn-group-number .btn-number-flag .number-arrow-chevron{flex:1;line-height:1}.input-group .btn-group-number .btn-number-flag:hover{height:60%!important}.input-group .btn-group-number .btn-number-flag:nth-child(2){border-top:1px solid var(--f-neutral-04);border-top-right-radius:0}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0}.input-group.number-range{position:relative}.input-group.number-range .input-container{display:flex;padding:0}.input-group.number-range .input-container .sub-input-group{flex:1;position:relative;display:flex;transition:all .3s ease-out}.input-group.number-range .input-container .sub-input-group .sub-input{width:100%;border:none;outline:0;background-color:rgba(0,0,0,0);min-width:2px;padding:.125rem 4px .125rem .5rem}.input-group.number-range .input-container .sub-input-group .btn-group-number .btn-number-flag,.input-group.number-range .input-container .sub-input-group:first-child .sub-btn-group{border-radius:0}.input-group.number-range .input-container .spliter{width:15px;text-align:center}.number-range .input-container .sub-input-group .sub-input{background-color:transparent}.number-range .input-container .sub-input-group .sub-input::-moz-placeholder{color:var(--f-text-09)}.number-range .input-container .sub-input-group .sub-input::placeholder{color:var(--f-text-09)}.number-range .input-container .sub-input-group .sub-input:disabled::-moz-placeholder,.number-range .input-container .sub-input-group .sub-input[readonly]::-moz-placeholder{color:var(--f-text-09)}.number-range .input-container .sub-input-group .sub-input:disabled::placeholder,.number-range .input-container .sub-input-group .sub-input[readonly]::placeholder{color:var(--f-text-09)}.number-range .sub-input-group:last-of-type .sub-btn-group{border-right:none}.f-order .f-list-view-emptydata .f-empty-title{padding:10px 0;margin-bottom:0}.f-order .f-order-item{border:none;background-color:initial}.f-order .f-order-item.f-listview-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.f-order .f-order-item.f-listview-hover .f-list-remove-icon{display:initial}.f-order .f-order-item.f-listview-active{border-color:none}.f-order .f-order-item.moving{opacity:0}.f-order .f-order-add-button{display:flex!important;align-items:center!important}.f-order .f-order-add-icon{width:1.2rem;height:1.2rem;background-color:#f0f8ff;border-radius:1.2rem;display:inline-block;margin-right:4px}.f-order .f-order-add-icon .f-icon{line-height:1.2!important}.f-order .f-order-header{display:flex;margin:4px 60px 0 0}.f-order .f-order-header .f-order-header-order-field,.f-order .f-order-header .f-order-header-order-type{flex:1}.f-order .f-order-header .f-order-header-order-field{margin:0 4px 0 10px}.f-order .f-order-header .f-order-header-order-type{margin:0 10px 0 4px}.f-order-item-content{display:flex;margin:4px 0}.f-order-item-content .f-order-item-content-order-field,.f-order-item-content .f-order-item-content-order-type{flex:1}.f-order-item-content .f-order-item-content-order-field{margin:0 4px 0 10px}.f-order-item-content .f-order-item-content-order-type{margin:0 10px 0 4px}.f-cmp-footer{display:flex;flex-direction:column;padding:.875rem;margin:0;background:var(--f-neutral-19);border-radius:4px;box-shadow:0 4px 10px 0 rgba(31,35,41,.1)}.f-cmp-footer .f-cmp-footer-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;margin:0 0 .5rem;border-bottom:1px dashed rgba(0,0,0,.1);padding:0 0 .75rem}.f-cmp-footer .f-cmp-footer-header .f-content{display:inline-flex;align-items:center;white-space:nowrap;flex-shrink:1;flex-grow:1;flex-basis:0}.f-cmp-footer .f-cmp-footer-header .f-toolbar{min-width:10rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end;color:var(--f-text-04);margin-left:auto}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse{cursor:pointer}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse-icon{font-family:FarrisIcons;margin:0 .375rem;font-size:.875rem;transition:transform .1s linear}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse-icon:hover{color:var(--f-theme-01)}.f-cmp-footer-accordion.f-state-collapse .f-cmp-footer-header{border-bottom:none;margin-bottom:0;padding-bottom:0}.f-cmp-footer-accordion.f-state-collapse .f-cmp-footer-content{display:none}.f-tmpl-footer-same-gutter{margin:0 10rem 0 0}.f-page-header-el-mt,.f-page-header-el-my{margin-top:.8125rem}.f-page-header-el-mb,.f-page-header-el-my{margin-bottom:.8125rem}.f-cmp-footer-hasgap{position:relative}.f-cmp-footer-nogap::before{display:none!important}#page-header,.f-page-header,.f-pt-header{z-index:unset}.f-page-card #page-header,.f-page-card .f-page-header,.f-page-card .f-pt-header{z-index:105!important}.f-page-header{flex-shrink:0;background:var(--f-neutral-00);box-shadow:none}.f-page-header-el-mx{margin-left:.875rem;margin-right:.875rem}.f-page-header-base{padding:.75rem .875rem;min-height:2.875rem;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between}.f-page-header-base .f-title{display:inline-flex;align-items:center}.f-page-header-base .f-title .f-title-text{font-size:1.0625rem;line-height:1.625rem;color:var(--f-text-01);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 .875rem 0 0}.f-page-header-base .f-title .f-title-icon{display:inline-flex;width:1.625rem;height:1.625rem;line-height:1.625rem;text-align:center;background:var(--f-ornament-02);border-radius:.25rem;color:var(--f-text-00);justify-content:center;align-items:center;flex-shrink:0;overflow:hidden;margin:0 .625rem 0 0}.f-page-header-base .f-title .f-title-icon img{display:block;width:1.625rem;height:1.625rem}.f-page-header-base .f-title .f-title-icon .f-icon::before{vertical-align:bottom}.f-page-header-base .f-title .f-title-subtitle{padding:0 0 0 .875rem;font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid var(--f-neutral-08);margin:0 .875rem 0 0}.fv-grid-hierarchy-cell,.fv-tree{border-width:1px;border-style:solid}.f-page-header-base .f-title .f-title-pagination,.f-page-header-base .f-title .f-title-status{margin:0 .875rem 0 0}.f-page-header-base .f-title .f-title-pagination span{width:1.25rem;height:1.25rem;margin:0 .375rem 0 0;color:var(--f-text-02);line-height:1.125rem;border-width:1px;border-style:solid;border-color:var(--f-neutral-08);border-radius:6px;background:var(--f-neutral-12);cursor:pointer}.f-page-header-base .f-title .f-title-pagination span.f-state-disabled{cursor:default;color:var(--f-text-07);border-color:var(--f-neutral-05);background:var(--f-neutral-09)}.f-page-header-base .f-title .f-title-pagination span:not(.f-state-disabled):hover{color:var(--f-theme-05);border-color:var(--f-theme-05);background:var(--f-neutral-12)}.f-page-header-base .f-title .f-title-pagination span:last-child{margin:0}.f-page-header-base .f-content{display:inline-flex;align-items:center;white-space:nowrap;flex-shrink:1;flex-grow:1;flex-basis:0}.f-page-header-base .f-toolbar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end;color:var(--f-text-04);margin-left:auto}.f-text-orna-bill,.f-text-orna-dict,.f-text-orna-manage,.f-text-orna-param,.f-text-orna-query{color:var(--f-text-00)!important}.f-page-header-base .f-toolbar-viewchange{margin-left:.375rem}.page-item:first-child .page-link,.page-link{margin-left:0}.f-text-orna-manage{background:linear-gradient(135deg,#4190FF 0,#657CFF 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-03-start),.3)}.f-text-orna-dict{background:linear-gradient(135deg,#4EC87A 0,#52D389 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-05-start),.3)}.f-text-orna-bill{background:linear-gradient(135deg,#1FC8DC 0,#41D2BD 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-02-start),.3)}.f-text-orna-query{background:linear-gradient(135deg,#FC8249 0,#FE9539 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-01-start),.3)}.f-text-orna-param{background:linear-gradient(135deg,#8B82FF 0,#A082FF 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-04-start),.3)}.page-link,.page-link:hover{background-color:var(--f-neutral-12)}.f-color-orna-manage{color:var(--f-ornament-03-start)!important}.f-color-orna-dict{color:var(--f-ornament-05-start)!important}.f-color-orna-bill{color:var(--f-ornament-02-start)!important}.f-color-orna-query{color:var(--f-ornament-01-start)!important}.f-color-orna-param{color:var(--f-ornament-04-start)!important}.pagination{display:flex;border-radius:6px}.page-link{position:relative;display:block;padding:.1875rem;line-height:1rem;color:var(--f-text-02);border:1px solid var(--f-neutral-08)}.page-item:first-child .page-link,.pagination-lg .page-item:first-child .page-link,.pagination-sm .page-item:first-child .page-link{border-top-left-radius:6px;border-bottom-left-radius:6px}.page-item:last-child .page-link,.pagination-lg .page-item:last-child .page-link,.pagination-sm .page-item:last-child .page-link{border-top-right-radius:6px;border-bottom-right-radius:6px}.page-link:hover{z-index:2;text-decoration:none}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 4px 2px rgba(99,136,255,.12)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item.active .page-link{z-index:1;color:var(--f-text-00);background:var(--f-theme-06)!important;border-color:var(--f-theme-05)}.page-item.disabled .page-link{color:var(--f-text-07);pointer-events:none;cursor:auto;background:var(--f-neutral-09);border-color:var(--f-neutral-05);box-shadow:none}.page-link,.query-solution .solution-action .icon-group .f-icon-remove,.switch small,.switch.checked small{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.pagination-lg .page-link{padding:.75rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-link{padding:.1875rem;font-size:.75rem;line-height:1.5}.ngx-pagination::after,.ngx-pagination::before{content:" ";display:table}.ngx-pagination::after{clear:both}.ngx-pagination li{-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:.0625rem;border-radius:0;display:inline-block}.ngx-pagination a,.ngx-pagination button{color:var(--f-text-02);display:block;cursor:pointer}.ngx-pagination .current{cursor:default}.ngx-pagination .f-icon{vertical-align:baseline}.ngx-pagination .disabled{color:var(--f-neutral-09);cursor:default}.ngx-pagination .disabled:hover{background:0 0}.ngx-pagination .pagination-next a::after,.ngx-pagination .pagination-next.disabled::after,.ngx-pagination .pagination-previous a::before,.ngx-pagination .pagination-previous.disabled::before{display:inline-block;margin-right:.5rem}.ngx-pagination .small-screen,.pagination-container .page-item.ellipsis:hover>.page-link>.page-link-label,.pagination-container .page-item.ellipsis>.page-link>.f-icon{display:none}.ngx-pagination .show-for-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.pagination{font-size:.75rem;padding:.625rem}.page-link{border-radius:6px;min-width:calc(1rem + .375rem + 2px);height:calc(1rem + .375rem + 2px);text-align:center;overflow:hidden}.page-link .f-icon{vertical-align:top}.page-link:focus{color:var(--f-theme-01);border-color:var(--f-theme-03)}.page-link.disabled{color:var(--f-text-07);background:var(--f-neutral-09);border-color:var(--f-neutral-05);box-shadow:none}.page-link:hover{color:var(--f-theme-05);background:var(--f-neutral-12);border-color:var(--f-theme-05)}.page-link:active{color:var(--f-theme-01);background:var(--f-neutral-12);border-color:var(--f-theme-01)}.page-item{margin:auto 3px}.pagination-lg .page-link{height:auto;width:auto}.page-item.current .page-link,.page-item.current:active .page-link,.page-item.current:hover .page-link{z-index:1;color:var(--f-text-00);background:var(--f-theme-06)!important;border-color:var(--f-theme-05);box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.15)}.page-item .page-link .f-icon{vertical-align:baseline}.pagination .pg-pagelist{margin:0 12px;height:100%}.pagination .pg-pagelist .pg-pagelist-info{font-size:13px;color:var(--f-text-02);cursor:pointer;height:100%;display:inline-flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pagination .pg-pagelist .pg-pagelist-info:hover,.pagination .pg-pagelist.show .pg-pagelist-info{color:var(--f-theme-03)}.pagination .pg-pagelist .pg-pagelist-info .cur-pagesize{padding:0 4px;font-size:15px;font-weight:600}.pagination .pg-pagelist .pg-pagelist-info .f-icon{font-size:12px;margin:0 0 0 8px;transition:transform .2s linear}.pagination .pg-pagelist .dropdown-menu{min-width:120px;margin-bottom:.25rem}.pagination .pg-pagelist .dropdown-menu .dropdown-item{padding-left:14px}.pagination .pagination-message{color:var(--f-text-02);font-size:13px;display:inline-flex;align-items:center;height:100%}.pagination .pagination-message .badge{font-size:13px}.pagination .pagination-message .pg-message-total{font-size:15px;font-weight:600;padding:0 4px;line-height:20px}.badge,.popover-tips,.table thead th,.tooltip{font-weight:400}.farris-gotopagenumber{text-align:center;-moz-appearance:textfield;width:40px}.farris-gotopagenumber::-webkit-inner-spin-button,.farris-gotopagenumber::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pagination-container .page-item.ellipsis>.page-link{background:0 0;border:none;box-shadow:none;line-height:8px;font-size:16px}.pagination-container .page-item.ellipsis:hover>.page-link{line-height:20px}.badge-round-success,.pagination-container .page-item.ellipsis:hover>.page-link>.f-icon{display:inline-block!important}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;word-wrap:break-word;background-color:rgba(var(--f-neutral-00-rgb),.95);background-clip:padding-box;border:1px solid var(--f-neutral-00);border-radius:4px;box-shadow:0 2px 8px 0 rgba(0,32,74,.15)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 6px}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.popover-tips{font-style:normal;line-height:1.4286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.75rem}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:rgba(var(--f-neutral-00-rgb),.95)}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:6px 0}.bs-popover-auto[x-placement^=left],.bs-popover-left,.bs3.bs-popover-auto[x-placement^=left],.bs3.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:rgba(var(--f-neutral-00-rgb),.95)}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:rgba(var(--f-neutral-00-rgb),.95)}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid var(--f-neutral-10)}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:6px 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:rgba(var(--f-neutral-00-rgb),.95)}.popover-header{line-height:1.5rem;padding:.5rem .75rem;margin-bottom:0;font-size:.8125rem;color:var(--f-text-01);background-color:var(--f-neutral-10);border-bottom:1px solid var(--f-neutral-10);border-top-left-radius:calc(6px - 1px);border-top-right-radius:calc(6px - 1px)}.bs3.popover-top,.bs3.popover.top{margin-bottom:10px}.popover-header:empty{display:none}.popover-body{max-width:17.25rem;padding:.5rem .75rem;color:var(--f-text-02)}.bs3.popover.top>.arrow{margin-left:-2px}.popover.bottom>.arrow{margin-left:-4px}.bs3.bs-popover-auto[x-placement^=left] .arrow,.bs3.bs-popover-auto[x-placement^=right] .arrow,.bs3.bs-popover-left .arrow,.bs3.bs-popover-right .arrow{margin:.3rem 0}.bs-popover-bottom-left .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-bottom-left .arrow::before{top:0;border-bottom-color:rgba(255,255,255,.4)!important}.bs-popover-bottom-left .arrow::after,.bs-popover-bottom-left .arrow::before{border-width:0 .5rem .5rem}.bs-popover-bottom-left .arrow::after{top:1px;border-bottom-color:#fff!important}.popover.popover-fitcontent .popover-body{max-width:initial;padding:initial}.popover.popover-limitmax{display:flex;flex-direction:column}.popover.popover-limitmax .popover-body{overflow:hidden}.popover .arrow-left .arrow{left:calc(50% - 10px)}.f-progress-step .f-progress-step-list{display:flex;flex-direction:row;align-items:center}.f-progress-step .step{display:inline-block}.f-progress-step .step .f-progressstep-row{display:flex;position:relative;padding-right:.4375rem;padding-bottom:.9375rem}.f-progress-step .step .f-progressstep-row .f-progress-step-content{display:inline-block}.f-progress-step .step .f-progressstep-row .f-progress-step-content .step-icon{display:inline-block;width:1.875rem;height:1.875rem;margin-right:.5rem;margin-left:.5rem;line-height:1.875rem;border-radius:100%;font-size:.75rem;text-align:center;vertical-align:middle}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title{display:inline-block;vertical-align:middle}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-message,.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name{margin-bottom:0}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name{font-size:.875rem;line-height:1.25rem;padding-right:.625rem}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name.step-name-success{opacity:.85}.f-progress-step .step .f-progressstep-row .f-progress-step-line{flex:1 1 auto;position:relative;display:inline-flex;min-width:3.75rem;vertical-align:middle}.f-progress-step .step .f-progressstep-row .f-progress-step-line::after{content:"";left:0;height:.125rem;overflow:hidden;position:absolute;right:.625rem;top:50%;margin-top:-.0625rem}.f-progress-step .step .f-progressstep-row .f-progress-step-line .triangle{position:absolute;right:0;top:50%;display:inline-block;width:.4375rem;height:.4375rem;margin-top:-.21875rem;transform:rotate(45deg)}.f-progress-step .f-progress-step-list-block .step{display:block}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row{padding:0;flex-direction:column}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line{flex:1 1 auto;width:.625rem;min-width:.625rem;min-height:2.5rem;margin:.5rem 0 1.25rem 1.375rem}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line::after{content:"";border-top:0}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line .triangle{top:auto;left:-.3125rem;bottom:-.5rem;border-top:0}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line .f-progress-step-title .step-name{padding-right:.875rem}.f-progress-step .f-progress-step-horizontal-fill{display:flex;justify-content:space-between;flex-wrap:wrap;overflow-x:auto}.f-progress-step .f-progress-step-horizontal-fill .step{flex:1 1 auto}.f-progress-step .f-progress-step-vertical-fill{display:flex;flex-direction:column;align-content:space-between;overflow-y:auto}.f-progress-step .f-progress-step-vertical-fill .step{display:flex;flex:1 1 auto}.f-progress-step .f-progress-step-vertical-fill .step .f-progressstep-row{flex:1 1 auto;display:flex}.f-progress-step li.clickable{cursor:pointer}.f-progress-step li.click-disable{cursor:not-allowed}.f-progress-step .f-progress-step-empty{color:#000;opacity:.65;font-size:.875rem}.f-progress-step .f-progressstep-row-multi{display:flex;flex-direction:column;align-items:left}.f-progress-step .f-progressstep-row-multi .f-progressstep-multi-item-content{display:flex;flex-direction:row;align-items:center;cursor:pointer}.f-progress-step .f-progressstep-row-multi .f-step-multi-item{position:relative;padding-right:.4375rem;padding-bottom:.9375rem}.f-progress-step .f-progressstep-row-multi .f-step-multi-item:last-child{padding-bottom:0}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row.f-progressstep-row-multi{flex-direction:row}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row.f-progressstep-row-multi .f-step-multi-item{padding:0;flex-direction:column}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row.f-progressstep-row-multi .f-step-multi-item .f-progress-step-line{display:block}.f-progress-step .step .f-progressstep-row .f-progress-step-content .step-icon{color:#fff;background:var(--f-neutral-02)}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name{color:#8C8C8C}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name.step-name-success{color:var(--f-text-03)}.f-progress-step .step .f-progressstep-row .f-progress-step-line::after{border-top:2px dotted rgba(0,0,0,.2)}.f-progress-step .step .f-progressstep-row .f-progress-step-line .triangle{border-top:1px solid rgba(0,0,0,.2);border-right:1px solid rgba(0,0,0,.2)}.f-progress-step .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success .triangle,.f-progress-step .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success::after{border-color:var(--f-theme-03)}.f-progress-step .step .f-progressstep-row.step-finish .f-progress-step-content .step-icon{color:#fff;background:linear-gradient(135deg,#529DFF 0,#559FFF 100%)}.f-progress-step .step .f-progressstep-row.step-finish:hover .f-progress-step-content .step-icon{background:var(--f-theme-04)}.f-progress-step .step .f-progressstep-row.step-finish:active .f-progress-step-content .step-icon{background:var(--f-theme-02)}.f-progress-step .step .f-progressstep-row.step-active .f-progress-step-content .step-icon{color:#fff;background:var(--f-theme-04)}.f-progress-step .step .f-progressstep-row.step-active:hover .f-progress-step-content .step-icon{background:linear-gradient(135deg,#529DFF 0,#559FFF 100%)}.f-progress-step .step .f-progressstep-row.step-active:active .f-progress-step-content .step-icon{background:var(--f-theme-02)}.f-progress-step .step .f-progressstep-row.step-error .f-progress-step-content .step-icon{background:#F46160}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line{border-left:2px dotted rgba(0,0,0,.2)}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line .triangle{border-bottom:1px solid rgba(0,0,0,.2)}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success,.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success .triangle{border-color:var(--f-theme-05)}.f-progress-step .f-progress-step-empty{color:var(--f-text-05)}.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-active .f-progress-step-title .step-name,.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-finish .f-progress-step-title .step-name{color:var(--f-text-03)!important}.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-active .step-icon{background:var(--f-theme-04)}.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-finish .step-icon,.f-progress-step .f-progressstep-row-multi .f-step-multi-item:hover.f-step-multi-item-active .step-icon{background:linear-gradient(135deg,#529DFF 0,#559FFF 100%)}.f-progress-step .f-progressstep-row-multi .f-step-multi-item:hover.f-step-multi-item-finish .step-icon{background:var(--f-theme-04)}.f-progress{display:inline-block;font-size:.875rem;color:rgba(0,0,0,.65)}.f-progress.f-progress-line{position:relative;width:100%}.f-progress.f-progress-line .f-progress-text .f-progress-text-icon{font-size:1.25rem}.f-progress .f-progress-outer{display:inline-block;width:100%}.f-progress .f-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#efefef;border-radius:100px}.f-progress .f-progress-bg,.f-progress .f-progress-success-bg{position:relative;border-radius:100px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.f-progress .f-progress-success-bg{position:absolute;top:0;left:0}.f-progress .f-progress-text{display:inline-block;width:1.75rem;margin-left:.5rem;color:rgba(0,0,0,.65);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.f-progress-status-active .f-progress-bg::before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:.625rem;opacity:0;animation:f-progress-active 2.4s ease-in-out infinite;content:""}.condition-with-line.farris-form-controls-inline .input-group,.query-solution .farris-panel{border:none}.f-progress-show-info .f-progress-outer{padding-right:48px;margin-right:-48px}.f-progress.f-progress-circle .f-progress-inner{position:relative;line-height:1;background-color:transparent}.f-progress.f-progress-circle .f-progress-text{position:absolute;top:50%;left:50%;width:100%;margin:0;padding:0;color:rgba(0,0,0,.65);line-height:1;white-space:normal;text-align:center;transform:translate(-50%,-50%)}.f-progress.f-progress-circle .f-progress-text .f-progress-text-icon{font-size:1.3em}@keyframes f-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}100%{width:100%;opacity:0}}.f-progress .f-progress-bg{background:var(--f-theme-04)}.f-progress .f-progress-success-bg,.f-progress-status-success .f-progress-bg{background:var(--f-semantic-success-01)}.f-progress-status-error .f-progress-bg{background:var(--f-semantic-danger-01)}.f-progress.f-progress-circle .f-progress-text .f-progress-text-icon.f-icon-checkmark{color:var(--f-semantic-success-01)}.f-progress.f-progress-circle .f-progress-text .f-progress-text-icon.f-icon-x{color:var(--f-semantic-danger-01)}.f-progress .f-progress-inner:not(.f-progress-circle-gradient) .f-progress-circle-path{stroke:var(--f-semantic-info-01)}.f-progress-status-success .f-progress-inner:not(.f-progress-circle-gradient) .f-progress-circle-path{stroke:var(--f-semantic-success-01)}.f-progress-status-error .f-progress-inner:not(.f-progress-circle-gradient) .f-progress-circle-path{stroke:var(--f-semantic-danger-01)}.farris-star-rating{cursor:pointer;display:flex;position:relative}.farris-star-rating .default-light-color{color:#FBDB10}.farris-star-rating .default-dark-color{color:#E8E8E8}.star-dark-area span,.star-light-area span{box-sizing:content-box;padding-right:4px}.farris-star-rating .f-star-sm{font-size:14px}.farris-star-rating .f-star-md{font-size:16px}.farris-star-rating .f-star-lg{font-size:18px}.farris-star-rating .f-star-exlarge{font-size:24px}.farris-star-rating .star-dark-area{overflow:hidden;display:flex;flex-wrap:nowrap}.farris-star-rating .f-utils-fill{padding-left:2px;font-size:14px}.farris-star-rating .font-small{line-height:14px}.farris-star-rating .font-middle{line-height:16px}.farris-star-rating .font-large{line-height:18px}.farris-star-rating .font-exlarge{line-height:24px}.farris-star-rating .star-light-area{position:absolute;left:0;top:0;z-index:2;width:0%;overflow:hidden;display:flex;flex-wrap:nowrap}.farris-star-rating .star-dark-area span,.farris-star-rating .star-light-area span{flex-shrink:0}.f-toolbar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end}.f-toolbar .f-btn-separator{display:inline-block;width:1px;background-color:#c2cbd1;height:1em;margin:0 .5rem}.f-response-toolbar{display:block}.f-response-toolbar-lg .btn{line-height:1.4286;padding:.25rem 1.125rem}.f-response-toolbar-sm .btn{line-height:1.4286;padding:.125rem .5rem}.query-solution .solution-header{height:auto!important;margin-bottom:10px!important;display:flex;align-items:center;justify-content:space-between}.query-solution .solution-header-title{padding:.25rem 6px .25rem 12px;border-radius:6px;display:flex;flex-direction:row;align-items:center;color:var(--f-theme-03);font-size:.8125rem;vertical-align:middle;background:var(--f-theme-13);cursor:pointer}.query-solution .solution-header-title .header-title--change{margin:0 4px}.query-solution .solution-header-title .solution-header-title-text{margin-right:6px;overflow:hidden;height:22px}.query-solution .solution-header-title .f-accordion-expand{color:var(--f-theme-03)}.query-solution .solution-header-title .f-icon{font-size:16px;margin:0;width:auto;height:auto}.query-solution .solution-header-title>.text-truncate{max-width:288px}.query-solution .solution-action{display:flex;align-items:center;flex-shrink:0}.query-solution .solution-action .dropdown .btn{border:0}.query-solution .solution-action .icon-group{display:flex!important;align-items:center}.query-solution .solution-action .icon-group .f-icon-remove{color:var(--f-text-02);background:var(--f-neutral-12);border:1px solid var(--f-neutral-08);border-radius:6px;width:calc(1.5rem + .125rem);height:calc(1.5rem + .125rem);text-align:center;line-height:20px;display:block}.query-solution .solution-action .icon-group .f-icon-remove:hover{border-color:var(--f-theme-05);color:var(--f-theme-05);background:var(--f-neutral-12)}.query-solution .solution-action .icon-group .f-icon-home-setup,.query-solution .solution-action .icon-group .f-icon-packup{font-size:.875rem}.query-solution .solution-action .icon-group .icon-group-packup{margin-right:0;margin-left:4px}.query-solution .solution-action span{vertical-align:inherit}.query-solution .solution-action .divide{color:var(--f-neutral-13);position:relative;margin:0 .3125rem}.query-solution .solution-action .divide::after{position:absolute;content:"";height:12px;width:1px;background-color:var(--f-neutral-13);left:0;top:50%;margin-top:-6px}.query-solution .solution-header-title-menu{margin-top:8px}.query-solution .solution-header-title-menu-inner{position:relative;width:18.9375rem}.query-solution .solution-header-title-menu-inner .menu-item--change{margin:0 4px 0 0}.query-solution .solution-header-title-menu-inner .solution-header-title-menu-arrow{position:absolute;content:"";display:block;left:1.5rem;top:-.5rem;width:8.49px;height:8.49px;background:0 0;border-style:solid;border-width:4.24px;box-shadow:-2px -2px 5px rgba(0,0,0,.08);transform:translateX(-50%) rotate(45deg);border-color:#fff transparent transparent #fff}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item{cursor:pointer;display:flex;flex-direction:row;align-items:center}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item.solution-header-dropdown-item-active{background:var(--f-neutral-10)}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item .solution-header-dropdown-item-title{flex-shrink:1;flex-grow:1;flex-basis:0;padding-right:.25rem;color:var(--f-text-02);font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item .solution-header-dropdown-item-tip{flex-shrink:0;height:1.125rem;min-width:2.5rem;padding:0 4px;line-height:1.125rem;font-size:.75rem;background:var(--f-semantic-success-01);color:#fff;border-radius:2px;text-align:center}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item .solution-header-dropdown-item-public{flex-shrink:0;height:1.125rem;min-width:2.5rem;padding:0 4px;line-height:1.125rem;font-size:.75rem;background:#2a87ff;color:#fff;border-radius:2px;text-align:center}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item-btns{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;height:2.25rem;padding:0 .875rem;line-height:2.25rem;border-top:1px solid rgba(0,0,0,.07)}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item-btns .dropdown-item-btn{margin-left:.5rem;color:var(--f-theme-03);cursor:pointer}.query-solution .summary-condition{flex-shrink:0;flex-grow:1;flex-basis:0;overflow:hidden;margin:0 12px 0 0;display:flex}.query-solution .summary-condition--item .summary-condition--label,.summary-list--tips .summary-condition--label{margin:0 2px 0 0}.query-solution .summary-list{overflow:hidden}.query-solution .summary-condition-wrapper{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background:var(--f-aid-02);border:1px solid var(--f-aid-01);border-radius:3px;font-size:13px;color:#2D2F33;line-height:24px;height:26px;box-shadow:0 1px 4px 0 rgba(0,28,65,.08)}.query-solution .summary-condition--item{padding:0 12px;vertical-align:top}.query-solution .summary-condition--item .summary-condition--text{margin:0 0 0 8px}.query-solution .summary-condition--spliter{width:1px;height:14px;background:#DDE1EB;display:inline-block;margin:5px 0 0}.query-solution .solution-header .dropdown-item{width:100%}.query-solution .solution-header .dropdown-menu{max-height:unset}.query-solution .solution-header-title-btns{border-top:1px solid rgba(0,0,0,.07);text-align:right;width:100%;color:#2A87FF;padding:8px 0}.solutionmanager-inner{padding:0 14px;flex:1;height:100%}.solutionmanager-inner .solutionmanager-grid-delete{font-size:.875rem;color:var(--f-theme-03)}.summary-list--tips .summary-condition--text{margin:0 0 0 8px}.summary-list--tips .summary-condition--gutter{margin:0 10px 0 4px}.summary-list--tips .tooltip{margin-top:-6px}.summary-list--tips .tooltip-inner{text-align:left;background:rgba(var(--f-neutral-00-rgb),.95);color:var(--f-text-02);font-size:13px;line-height:24px}.summary-list--tips .arrow{left:35px!important}.summary-list--tips .arrow::before{border-width:0 .3rem .3rem;border-bottom-color:rgba(var(--f-neutral-00-rgb),.4)}.farris-form.condition-div{margin-right:-5px;margin-left:-5px}.farris-form.condition-div .qlabel-gutter{display:none}.farris-form.condition-div>[class*=col-]{padding-left:5px!important;padding-right:5px!important}.condition-with-line.farris-form-controls-inline .qlabel-gutter{display:inline;margin-left:2px}.condition-with-line.farris-form-controls-inline .qradio-group .qlabel-gutter{margin-right:8px}.condition-with-line.farris-form-controls-inline .farris-input-wrap{flex-basis:0}.condition-with-line.farris-form-controls-inline .common-group{border:1px solid #D8DCE6;border-radius:3px;padding-left:8px;padding-right:1px}.condition-with-line.farris-form-controls-inline .common-group .col-form-label{font-size:13px;color:#6A6F79;width:auto;margin-right:0;flex-grow:0;flex-shrink:1;flex-basis:auto;max-width:220px}.condition-with-line.farris-form-controls-inline .common-group .f-solution-radio-group{flex-shrink:1;flex-grow:1;flex-basis:0}.condition-with-line.farris-form-controls-inline .common-group .input-group,.condition-with-line.farris-form-controls-inline .common-group .input-group.f-state-focus{outline:0;box-shadow:none;border:none}.condition-with-line.farris-form-controls-inline .common-group:not(.q-state-readonly):hover{border-color:var(--f-theme-08);box-shadow:0 0 0,0 0 4px 2px rgba(99,136,255,.12)}.condition-with-line.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-text{text-align:left}.condition-with-fixed.farris-form-controls-inline .datepicker-range-group .farris-input-wrap,.condition-with-fixed.farris-form-controls-inline .number-range-group .farris-input-wrap{min-width:120px}.condition-with-line.f-form-label-xl .farris-group-wrap .col-form-label{max-width:153px}.query-solution .condition-div{max-height:204px;overflow-y:auto}.querycondition-advanced .add-condition-btn .f-icon{background-color:var(--f-aid-03)}.querycondition-advanced .add-condition-btn{color:var(--f-theme-03)}.query-solution .farris-input-wrap.farris-checkradio-hor{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;width:100%}.query-solution .solution-header .solution-header-item-active{background:#F7F7F7}.f-search-box-panel{height:100%;z-index:9998;position:absolute;overflow:auto;background:var(--f-neutral-20);box-shadow:0 2px 20px 0 rgba(3,18,51,.12);border-radius:3px}.f-search-field-container .switch.switch-small{min-width:1.88rem;height:.85rem}.f-search-field-container .switch.switch-small small{top:0}.multi-date-display:empty:before{color:var(--f-text-09)}.f-cmp-inputgroup .f-transfer-date .search-tag-item,.f-search-box .search-tag-item{cursor:default;padding:0 20px 0 5px!important;background:var(--f-aid-04)!important;border:1px solid var(--f-aid-05);position:relative;margin-right:3px!important;margin-top:1px!important;margin-bottom:0!important;line-height:19px;height:22px;float:left;max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline!important;border-radius:6px}.f-cmp-inputgroup .f-transfer-date .search-tag-item .f-icon,.f-search-box .search-tag-item .f-icon{cursor:pointer;position:absolute;right:2px;font-size:12px;top:7px}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field,.f-search-box .search-tag-item.search-field{background:0 0;border:0;cursor:pointer;height:26px;line-height:24px}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field:hover,.f-search-box .search-tag-item.search-field:hover{color:var(--f-theme-03)}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field.selected,.f-search-box .search-tag-item.search-field.selected{background:rgba(207,237,255,.35);border-color:var(--f-aid-05)}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field.has-filter,.f-search-box .search-tag-item.search-field.has-filter{background-color:#f2f8ff;border:1px solid #e4f0ff}.f-cmp-inputgroup .f-transfer-date .inputbox,.f-search-box .inputbox{flex:1;position:relative;min-width:50px;height:24px;margin:0;padding:0;float:left;overflow:hidden}.f-cmp-inputgroup .f-transfer-date.f-search-fields .multi--item.search-tag-item,.f-cmp-inputgroup .f-transfer-date.f-search-shadow-fields .multi--item.search-tag-item,.f-search-box.f-search-fields .multi--item.search-tag-item,.f-search-box.f-search-shadow-fields .multi--item.search-tag-item{margin-bottom:4px!important}.f-cmp-inputgroup .f-transfer-date .search-input,.f-search-box .search-input{position:absolute;top:0;align-items:center;display:flex;left:-2px;width:100%}.f-cmp-inputgroup .f-transfer-date.f-search-shadow-fields.active,.f-search-box.f-search-shadow-fields.active{border-color:var(--f-theme-05)}.f-cmp-inputgroup .f-transfer-date.f-search-fields .more,.f-search-box.f-search-fields .more{padding-right:20px}.f-cmp-inputgroup .f-transfer-date.f-search-fields .more::after,.f-search-box.f-search-fields .more::after{content:"...";position:absolute;right:10px;top:0;cursor:pointer}.f-cmp-inputgroup .f-transfer-date.f-state-disabled .search-tag-item{background:var(--f-neutral-09);border-color:var(--f-neutral-09);color:var(--f-text-02)}.f-cmp-inputgroup .f-transfer-date.f-state-disabled .multi--more-text{color:var(--f-text-09)}.search-tip-info{height:32px;line-height:32px;border-bottom:1px solid var(--f-neutral-04);font-size:12px;color:#848C9A;margin-bottom:5px;padding:0 7px;align-items:center;justify-content:space-between}.search-tip-info .f-icon-close,.search-tip-info .f-icon-group-delete::before{cursor:pointer;top:2px;position:relative;right:-5px;font-size:12px}.search-tip-info .f-icon-close:hover,.search-tip-info .f-icon-group-delete:hover::before{color:red}.lookup-filter-bar .clear-search-fields{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--f-neutral-04);margin-left:3px;border-radius:3px;cursor:pointer}.lookup-filter-bar .clear-search-fields:hover{color:var(--f-aid-10);border-color:var(--f-theme-05)}.search-box-container{background-color:#fff;background-clip:padding-box}.search-box-container-title{color:#878d99;text-align:left;margin-bottom:10px}.f-section{display:flex;flex-direction:column;position:relative;padding:.625rem .875rem .75rem;margin:0;border-radius:8px;background:#fff}.f-section.f-section-fill{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden}.f-section.f-section-fill>.f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column;min-height:0}.f-section.f-section-content-fill{display:flex;flex-direction:column}.f-section.f-section-content-fill .f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;padding:0 .625rem 0 0;margin:0 0 .5rem}.f-section-header .f-title::before .f-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-section-header .f-toolbar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end;color:var(--f-text-04);margin-left:auto;padding-right:0}.f-section-header .f-btn-collapse-expand span,.f-section.f-state-collapse>.f-section-extend{display:none}.f-section-header .f-btn-collapse-expand{color:var(--f-theme-03)}.f-section-header .f-btn-collapse-expand::after{width:1rem;height:1rem;font-size:.875rem;line-height:1rem;margin-left:0;color:var(--f-text-07);background:var(--f-neutral-07);border-radius:10px}.f-section-header .f-btn-collapse-expand:hover::after{background:var(--f-neutral-05)}.f-section-header .f-max-accordion .f-icon-maximize,.f-section-header .f-max-accordion .f-icon-minimize{color:var(--f-text-03);font-size:14px;cursor:pointer;margin-left:.5rem;vertical-align:middle}.f-section-header .f-max-accordion .f-icon-maximize:hover,.f-section-header .f-max-accordion .f-icon-minimize:hover{color:var(--f-theme-05)}.f-section-header .f-max-accordion .f-icon-maximize:active,.f-section-header .f-max-accordion .f-icon-minimize:active{color:var(--f-theme-01)}.f-section-extend{margin:0 0 .75rem}.f-page-main .f-section-like-query.f-section,.f-page-main .f-section-query.f-section,.switch{margin:0}.f-section-accordion.f-state-collapse>.f-section-header{margin-bottom:0}.f-section-accordion.f-state-collapse>.f-section-content{height:0;overflow:hidden;flex:0 1 0!important}.f-section-maximize{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1031;background:var(--f-neutral-00)}.f-section-maximize>.f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.f-section-maximize>.f-section-content>.f-struct-is-subgrid{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-maximize>.f-section-content>.f-struct-is-subgrid .f-grid-is-sub{flex-shrink:1;flex-grow:1;flex-basis:0;height:auto}.f-section-maximize .f-tabs-content-fill .f-struct-is-subgrid{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-maximize .f-tabs-content-fill .f-grid-is-sub{flex-shrink:1;flex-grow:1;flex-basis:0;height:auto}.f-section-form.f-section-custom-accordion.f-state-collapse .f-form-layout>:not(.f-state-visible),.f-section-form.f-section-custom-accordion.f-state-collapse .f-section-formgroup-inputs>:not(.f-state-visible),.f-section-form.f-section-custom-accordion.f-state-collapse .f-section-formgroup.f-state-visible>:not(.f-state-visible){display:none}.f-section-form.f-section-custom-accordion.f-state-collapse .f-section-formgroup-inputs.f-state-visible-all>*{display:initial}.f-section-nogap::before,.f-section-nogutter::before{display:none!important}.f-section-tabs{padding:0 .875rem 1rem}.f-section-tabs .f-section-header{padding-right:0}.f-section-treegrid.f-section-in-nav{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section-treegrid.f-section-in-nav>.f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-treegrid.f-section-in-nav>.f-section-content .f-componet-treetable{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section--header-manage .f-section-header .f-title::before{background:linear-gradient(135deg,#4190FF 0,#657CFF 100%)!important}.f-section--header-dict .f-section-header .f-title::before{background:linear-gradient(135deg,#4EC87A 0,#52D389 100%)!important}.f-section--header-bill .f-section-header .f-title::before{background:linear-gradient(135deg,#1FC8DC 0,#41D2BD 100%)!important}.f-section--header-query .f-section-header .f-title::before{background:linear-gradient(135deg,#FC8249 0,#FE9539 100%)!important}.f-section--header-param .f-section-header .f-title::before{background:linear-gradient(135deg,#8B82FF 0,#A082FF 100%)!important}.f-title-noline{padding-left:0}.f-title-noline::before{display:none}.f-section .f-section-content--toolbar{padding:0 0 0 .75rem;margin-top:.40625rem;margin-bottom:.40625rem}.f-splitter{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:row;flex-wrap:nowrap;overflow:hidden;position:relative}.f-splitter-pane{position:relative;padding:0}.f-splitter-pane.f-splitter-pane-main{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto;display:flex}.f-splitter-pane>.f-splitter-resize-bar{position:absolute;font-size:.1px;display:block;touch-action:none}.f-splitter-pane>.f-splitter-resize-bar:hover{background:rgba(42,135,255,.07)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e{cursor:e-resize;width:.4375rem;right:-.3125rem;height:100%;top:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w{cursor:w-resize;width:.4375rem;left:-.3125rem;height:100%;top:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s{cursor:s-resize;height:.4375rem;bottom:-.3125rem;width:100%;left:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n{cursor:n-resize;height:.4375rem;top:-.3125rem;width:100%;left:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w::before{content:"";position:absolute;background:#E9ECF3}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w::after{content:"";position:absolute;top:50%;left:50%;width:6px;height:60px;margin:-30px 0 0 -3px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjdweCIgaGVpZ2h0PSI2MHB4IiB2aWV3Qm94PSIwIDAgNyA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+DQogICAgPHRpdGxlPue8lue7hCAyMjwvdGl0bGU+DQogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+DQogICAgPGcgaWQ9IuaWsOeJiCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+DQogICAgICAgIDxnIGlkPSI2LuW3puagkeWPs+S4u+S7jiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1NS4wMDAwMDAsIC00MTguMDAwMDAwKSI+DQogICAgICAgICAgICA8ZyBpZD0i57yW57uELTIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NTUuNTAwMDAwLCA0MTguMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsMCBDNSwxLjc3NTIwMjYgNiwzLjE3ODcxMTM4IDYsNC4yMTA1MjYzMiBDNiwxMi4xMDQzMjc2IDYsNTMuNzk4NDE1MyA2LDU1Ljc4OTQ3MzcgQzYsNTYuNzEzMzQ4NiA1LDU4LjExNjg1NzQgMyw2MCBDMSw1OC4xMTAyOTA0IDAsNTYuNzA2NzgxNiAwLDU1Ljc4OTQ3MzcgQzAsMzMuMDcyNzA3MSAwLDE1Ljg5NDM0MTIgMCw0LjIxMDUyNjMyIEMwLDMuMzUxODIxNjQgMSwxLjk0ODMxMjg3IDMsMCBaIiBpZD0i55+p5b2iIiBmaWxsPSIjRTlFQ0YzIj48L3BhdGg+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsNDUgQzMuNTUyMjg0NzUsNDUgNCw0NS40NDc3MTUzIDQsNDYgQzQsNDYuNTUyMjg0NyAzLjU1MjI4NDc1LDQ3IDMsNDcgQzIuNDQ3NzE1MjUsNDcgMiw0Ni41NTIyODQ3IDIsNDYgQzIsNDUuNDQ3NzE1MyAyLjQ0NzcxNTI1LDQ1IDMsNDUgWiBNMyw0MSBDMy41NTIyODQ3NSw0MSA0LDQxLjQ0NzcxNTMgNCw0MiBDNCw0Mi41NTIyODQ3IDMuNTUyMjg0NzUsNDMgMyw0MyBDMi40NDc3MTUyNSw0MyAyLDQyLjU1MjI4NDcgMiw0MiBDMiw0MS40NDc3MTUzIDIuNDQ3NzE1MjUsNDEgMyw0MSBaIE0zLDM3IEMzLjU1MjI4NDc1LDM3IDQsMzcuNDQ3NzE1MyA0LDM4IEM0LDM4LjU1MjI4NDcgMy41NTIyODQ3NSwzOSAzLDM5IEMyLjQ0NzcxNTI1LDM5IDIsMzguNTUyMjg0NyAyLDM4IEMyLDM3LjQ0NzcxNTMgMi40NDc3MTUyNSwzNyAzLDM3IFogTTMsMzMgQzMuNTUyMjg0NzUsMzMgNCwzMy40NDc3MTUzIDQsMzQgQzQsMzQuNTUyMjg0NyAzLjU1MjI4NDc1LDM1IDMsMzUgQzIuNDQ3NzE1MjUsMzUgMiwzNC41NTIyODQ3IDIsMzQgQzIsMzMuNDQ3NzE1MyAyLjQ0NzcxNTI1LDMzIDMsMzMgWiBNMywyOSBDMy41NTIyODQ3NSwyOSA0LDI5LjQ0NzcxNTMgNCwzMCBDNCwzMC41NTIyODQ3IDMuNTUyMjg0NzUsMzEgMywzMSBDMi40NDc3MTUyNSwzMSAyLDMwLjU1MjI4NDcgMiwzMCBDMiwyOS40NDc3MTUzIDIuNDQ3NzE1MjUsMjkgMywyOSBaIE0zLDI1IEMzLjU1MjI4NDc1LDI1IDQsMjUuNDQ3NzE1MyA0LDI2IEM0LDI2LjU1MjI4NDcgMy41NTIyODQ3NSwyNyAzLDI3IEMyLjQ0NzcxNTI1LDI3IDIsMjYuNTUyMjg0NyAyLDI2IEMyLDI1LjQ0NzcxNTMgMi40NDc3MTUyNSwyNSAzLDI1IFogTTMsMjEgQzMuNTUyMjg0NzUsMjEgNCwyMS40NDc3MTUzIDQsMjIgQzQsMjIuNTUyMjg0NyAzLjU1MjI4NDc1LDIzIDMsMjMgQzIuNDQ3NzE1MjUsMjMgMiwyMi41NTIyODQ3IDIsMjIgQzIsMjEuNDQ3NzE1MyAyLjQ0NzcxNTI1LDIxIDMsMjEgWiBNMywxNyBDMy41NTIyODQ3NSwxNyA0LDE3LjQ0NzcxNTMgNCwxOCBDNCwxOC41NTIyODQ3IDMuNTUyMjg0NzUsMTkgMywxOSBDMi40NDc3MTUyNSwxOSAyLDE4LjU1MjI4NDcgMiwxOCBDMiwxNy40NDc3MTUzIDIuNDQ3NzE1MjUsMTcgMywxNyBaIE0zLDEzIEMzLjU1MjI4NDc1LDEzIDQsMTMuNDQ3NzE1MyA0LDE0IEM0LDE0LjU1MjI4NDcgMy41NTIyODQ3NSwxNSAzLDE1IEMyLjQ0NzcxNTI1LDE1IDIsMTQuNTUyMjg0NyAyLDE0IEMyLDEzLjQ0NzcxNTMgMi40NDc3MTUyNSwxMyAzLDEzIFoiIGlkPSLlvaLnirbnu5PlkIgiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgIDwvZz4NCjwvc3ZnPg==);background-repeat:no-repeat;background-size:cover;background-position:center center}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e:hover,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n:hover,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s:hover,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w:hover{background:0 0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e:hover::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n:hover::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s:hover::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w:hover::before{background-image:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);box-shadow:0 2px 5px 0 rgba(42,135,255,.2)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e:hover::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n:hover::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s:hover::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w:hover::after{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjdweCIgaGVpZ2h0PSI2MHB4IiB2aWV3Qm94PSIwIDAgNyA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+DQogICAgPHRpdGxlPue8lue7hCAyMjwvdGl0bGU+DQogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+DQogICAgPGRlZnM+DQogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iNTAuMzcxODk3MSUiIHkxPSIwJSIgeDI9IjQ5LjY4MjQwNDUlIiB5Mj0iMTAwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzNGNjVGRiIgb2Zmc2V0PSIwJSI+PC9zdG9wPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzREOUFGRiIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+DQogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPC9kZWZzPg0KICAgIDxnIGlkPSLmlrDniYgiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgICAgICA8ZyBpZD0iNi7lt6bmoJHlj7PkuLvku47lpIfku70tMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1NS4wMDAwMDAsIC00MTguMDAwMDAwKSI+DQogICAgICAgICAgICA8ZyBpZD0i57yW57uELTIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NTUuNTAwMDAwLCA0MTguMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsMCBDNSwxLjc3NTIwMjYgNiwzLjE3ODcxMTM4IDYsNC4yMTA1MjYzMiBDNiwxMi4xMDQzMjc2IDYsNTMuNzk4NDE1MyA2LDU1Ljc4OTQ3MzcgQzYsNTYuNzEzMzQ4NiA1LDU4LjExNjg1NzQgMyw2MCBDMSw1OC4xMTAyOTA0IDAsNTYuNzA2NzgxNiAwLDU1Ljc4OTQ3MzcgQzAsMzMuMDcyNzA3MSAwLDE1Ljg5NDM0MTIgMCw0LjIxMDUyNjMyIEMwLDMuMzUxODIxNjQgMSwxLjk0ODMxMjg3IDMsMCBaIiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIj48L3BhdGg+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsNDUgQzMuNTUyMjg0NzUsNDUgNCw0NS40NDc3MTUzIDQsNDYgQzQsNDYuNTUyMjg0NyAzLjU1MjI4NDc1LDQ3IDMsNDcgQzIuNDQ3NzE1MjUsNDcgMiw0Ni41NTIyODQ3IDIsNDYgQzIsNDUuNDQ3NzE1MyAyLjQ0NzcxNTI1LDQ1IDMsNDUgWiBNMyw0MSBDMy41NTIyODQ3NSw0MSA0LDQxLjQ0NzcxNTMgNCw0MiBDNCw0Mi41NTIyODQ3IDMuNTUyMjg0NzUsNDMgMyw0MyBDMi40NDc3MTUyNSw0MyAyLDQyLjU1MjI4NDcgMiw0MiBDMiw0MS40NDc3MTUzIDIuNDQ3NzE1MjUsNDEgMyw0MSBaIE0zLDM3IEMzLjU1MjI4NDc1LDM3IDQsMzcuNDQ3NzE1MyA0LDM4IEM0LDM4LjU1MjI4NDcgMy41NTIyODQ3NSwzOSAzLDM5IEMyLjQ0NzcxNTI1LDM5IDIsMzguNTUyMjg0NyAyLDM4IEMyLDM3LjQ0NzcxNTMgMi40NDc3MTUyNSwzNyAzLDM3IFogTTMsMzMgQzMuNTUyMjg0NzUsMzMgNCwzMy40NDc3MTUzIDQsMzQgQzQsMzQuNTUyMjg0NyAzLjU1MjI4NDc1LDM1IDMsMzUgQzIuNDQ3NzE1MjUsMzUgMiwzNC41NTIyODQ3IDIsMzQgQzIsMzMuNDQ3NzE1MyAyLjQ0NzcxNTI1LDMzIDMsMzMgWiBNMywyOSBDMy41NTIyODQ3NSwyOSA0LDI5LjQ0NzcxNTMgNCwzMCBDNCwzMC41NTIyODQ3IDMuNTUyMjg0NzUsMzEgMywzMSBDMi40NDc3MTUyNSwzMSAyLDMwLjU1MjI4NDcgMiwzMCBDMiwyOS40NDc3MTUzIDIuNDQ3NzE1MjUsMjkgMywyOSBaIE0zLDI1IEMzLjU1MjI4NDc1LDI1IDQsMjUuNDQ3NzE1MyA0LDI2IEM0LDI2LjU1MjI4NDcgMy41NTIyODQ3NSwyNyAzLDI3IEMyLjQ0NzcxNTI1LDI3IDIsMjYuNTUyMjg0NyAyLDI2IEMyLDI1LjQ0NzcxNTMgMi40NDc3MTUyNSwyNSAzLDI1IFogTTMsMjEgQzMuNTUyMjg0NzUsMjEgNCwyMS40NDc3MTUzIDQsMjIgQzQsMjIuNTUyMjg0NyAzLjU1MjI4NDc1LDIzIDMsMjMgQzIuNDQ3NzE1MjUsMjMgMiwyMi41NTIyODQ3IDIsMjIgQzIsMjEuNDQ3NzE1MyAyLjQ0NzcxNTI1LDIxIDMsMjEgWiBNMywxNyBDMy41NTIyODQ3NSwxNyA0LDE3LjQ0NzcxNTMgNCwxOCBDNCwxOC41NTIyODQ3IDMuNTUyMjg0NzUsMTkgMywxOSBDMi40NDc3MTUyNSwxOSAyLDE4LjU1MjI4NDcgMiwxOCBDMiwxNy40NDc3MTUzIDIuNDQ3NzE1MjUsMTcgMywxNyBaIE0zLDEzIEMzLjU1MjI4NDc1LDEzIDQsMTMuNDQ3NzE1MyA0LDE0IEM0LDE0LjU1MjI4NDcgMy41NTIyODQ3NSwxNSAzLDE1IEMyLjQ0NzcxNTI1LDE1IDIsMTQuNTUyMjg0NyAyLDE0IEMyLDEzLjQ0NzcxNTMgMi40NDc3MTUyNSwxMyAzLDEzIFoiIGlkPSLlvaLnirbnu5PlkIgiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgIDwvZz4NCjwvc3ZnPg==);box-shadow:0 2px 5px 0 rgba(42,135,255,.2)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::before{height:1px;top:50%;left:0;right:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::after{transform:rotate(90deg)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w::before{width:1px;top:0;left:50%;bottom:0}.f-splitter-resize-overlay{z-index:98;width:100%;height:100%;cursor:e-resize;background:0 0;position:absolute}.f-splitter-horizontal-resize-proxy,.f-splitter-vertical-resize-proxy{background:rgba(42,135,255,.04);display:none;position:absolute;z-index:100}.f-splitter-horizontal-resize-proxy{width:.4375rem;left:0;height:100%}.f-splitter-vertical-resize-proxy{height:.4375rem;top:0;width:100%}.f-component-text{display:block;width:100%;overflow:hidden}.f-form-control-text{height:calc(1.5rem + .125rem);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.f-form-control-textarea{height:calc(calc(1.5rem + .125rem) + 2.321475rem);word-break:break-all;overflow-y:auto;white-space:pre-wrap}.f-form-control-textarea,textarea.form-control{min-height:60px}.f-form-control-text,.f-form-control-textarea{display:block;padding:.1875rem .5rem;font-size:.8125rem;line-height:1.4286;color:var(--f-text-02);background:0 0;background-clip:padding-box;border:1px solid transparent;border-bottom-color:var(--f-neutral-06);border-radius:0}.f-state-view .form-group .farris-label-text{color:var(--f-text-02)}.f-form-control-textarea.f-component-text-auto-size{min-height:calc(calc(1.5357375rem + 2px) + 1.1607375rem);height:auto}.f-form-control-text.f-component-text-auto-size{overflow-y:auto;word-break:break-all;white-space:pre-wrap;min-height:calc(1.5357375rem + 2px);height:auto}.switch{color:var(--f-text-02);background:var(--f-neutral-04);position:relative;display:inline-block;box-sizing:content-box;padding:0;cursor:pointer;transition:.3s ease-out all;white-space:nowrap}.switch.checked{background:var(--f-theme-04)}.switch.disabled{background:rgba(var(--f-neutral-04),.5)}.switch.disabled .switch-pane{opacity:.5}.switch.checked.disabled{background:rgba(var(--f-theme-03),.5)}.switch.readonly{background:rgba(var(--f-neutral-04),.5)}.switch.readonly .switch-pane{opacity:.5}.switch.checked.readonly{background:rgba(var(--f-theme-03),.5)}.switch small{right:calc(100% - 1.875rem);border-radius:100%;position:absolute;transition:.3s ease-out all;background:var(--f-neutral-00)}.switch.switch-small{min-width:1.625rem;height:.75rem;border-radius:.75rem}.switch.switch-small small{width:.875rem;height:.875rem;left:0;top:-2px}.switch.switch-small.checked small{right:-1px;left:auto}.switch.switch-small>.switch-pane>span{font-size:12px}.switch.switch-small>.switch-pane .switch-label-checked{padding-right:1rem;padding-left:.25rem}.switch.switch-small>.switch-pane .switch-label-unchecked{padding-left:1rem;padding-right:.25rem}.switch.switch-medium{min-width:2.5rem;height:1.375rem;border-radius:1.375rem}.switch.switch-medium small{width:1.125rem;height:1.125rem;left:2px;top:2px}.switch.switch-medium.checked small{right:2px;left:auto}.switch.switch-medium>.switch-pane>span{font-size:12px;line-height:1.375rem}.switch.switch-medium>.switch-pane .switch-label-checked{padding-right:1.625rem;padding-left:.4583333333rem}.switch.switch-medium>.switch-pane .switch-label-unchecked{padding-left:1.625rem;padding-right:.4583333333rem}.switch.switch-large{min-width:2.75rem;height:1.5rem;border-radius:1.5rem}.switch.switch-large small{width:1.25rem;height:1.25rem;left:2px;top:2px}.switch.switch-large.checked small{right:2px;left:auto}.switch.switch-large>.switch-pane>span{font-size:14px;line-height:1.5rem}.switch.switch-large>.switch-pane .switch-label-checked{padding-right:1.75rem;padding-left:.5rem}.switch.switch-large>.switch-pane .switch-label-unchecked{padding-left:1.75rem;padding-right:.5rem}.switch.switch-small>.switch-pane>span{line-height:normal}.switch.checked .switch-pane{top:0}.switch.checked .switch-pane .switch-label-checked{opacity:1;display:inline-block}.switch.checked .switch-pane .switch-label-unchecked{opacity:0;display:none}.switch.disabled,.switch.readonly{cursor:not-allowed}.switch.square,.switch.square small{border-radius:4px}.switch .switch-pane{display:flex;flex-direction:column;height:100%;min-height:100%;justify-content:flex-start;align-items:center;top:0;position:relative;pointer-events:none}.switch .switch-pane>span{display:block;min-height:100%}.switch .switch-pane .switch-label-checked{color:var(--f-text-00);opacity:0;display:none}.switch .switch-pane .switch-label-unchecked{opacity:1;display:inline-block}.f-datagrid-cell-content .switch.switch-medium{min-width:1.625rem;height:.75rem;border-radius:.75rem}.f-datagrid-cell-content .switch.switch-medium small{width:.875rem;height:.875rem;left:0;top:-1px;box-shadow:0 2px 3px 0 rgba(0,0,0,.16)}.f-datagrid-cell-content .switch.switch-medium.checked small{right:0;left:auto}.f-datagrid-cell-content .switch.switch-medium>.switch-pane>span{font-size:12px;line-height:.75rem}.f-datagrid-cell-content .switch.switch-medium>.switch-pane .switch-label-checked{padding-right:1rem;padding-left:.25rem}.f-datagrid-cell-content .switch.switch-medium>.switch-pane .switch-label-unchecked{padding-left:1rem;padding-right:.25rem}.f-cmp-switch{max-width:100%}.f-cmp-switch .switch-pane .switch-label-checked,.f-cmp-switch .switch-pane .switch-label-unchecked{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table{width:100%;background-color:var(--f-neutral-00);table-layout:fixed}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid var(--f-neutral-07)}.table thead th{vertical-align:middle;border-bottom:2px solid var(--f-neutral-07)}.table tbody+tbody{border-top:2px solid var(--f-neutral-07)}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid var(--f-neutral-07)}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(even){background-color:var(--f-neutral-11)}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th,.table-hover tbody tr:hover{background-color:var(--f-aid-03)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:var(--f-neutral-07)}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered,.table-responsive>.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:887.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}@media (max-width:1689.98px){.table-responsive-el{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-el>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table thead{background:var(--f-neutral-09);color:var(--f-text-04)}.table thead th{line-height:1.25rem;border-width:0 0 1px;border-color:var(--f-neutral-13);overflow:hidden;white-space:nowrap;position:relative}.table thead th::after{content:"";position:absolute;right:0;top:50%;margin-top:-.5625rem;display:block;height:1.125rem;width:1px;background-color:var(--f-neutral-06)}.table thead th:last-child::after{display:none}.table td{border-top-width:0;border-bottom:1px solid var(--f-neutral-07);border-color:var(--f-neutral-07);padding:.25rem .75rem;height:calc(.5rem + 1px + 1.1607375rem);line-height:1.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table td.selected,.table th.selected,.table tr.selected{border-color:var(--f-neutral-07);color:var(--f-text-03);background-color:var(--f-aid-02)}.table-striped tbody tr.selected:nth-of-type(even){background-color:var(--f-aid-02)}.f-datagrid-norecords{width:100%;position:relative;flex:1 1 0;height:100%;justify-content:center}.f-datagrid-norecords-content,.f-table-norecords-content,.f-transfer-norecords .f-transfer-norecords-content{height:7.5rem;padding:5rem 0 0;width:100%;text-align:center;font-size:1rem;color:var(--f-text-07);background:url(data:image/png;base64,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) top center no-repeat;position:absolute;top:50%;margin:-3.75rem 0 0 -.625rem;line-height:2.5rem}.f-transfer-norecords{height:100%;position:relative}.table-hover tbody .f-table-norecords-row:hover{background:initial}.f-table-norecords,.f-table-norecords .f-table-norecords-row td{border:none}.farris-tabs{position:relative;display:flex;flex:1 1 auto}.farris-tabs .margin-right-14{margin-right:14px}.farris-tabs .farris-tabs-header-extend{height:auto;display:flex;align-items:center}.farris-tabs .farris-tabs-header{display:flex;flex-shrink:0;flex-grow:0;align-items:center;margin:0 0 .625rem;padding:.75rem 0 0}.farris-tabs .farris-tabs-header .farris-tabs-title{position:relative;display:flex;width:100%}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer{margin:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer.spacer-sides{margin:0 1.5625rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer.spacer-sides-dropdown{margin:0 3.75rem 0 1.75rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs{overflow:hidden}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item{color:var(--f-text-04);border-width:0;border-style:solid;border-color:transparent;font-size:1rem;margin:0 2rem 0 0;position:relative}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;display:none;border-radius:10px;box-shadow:0 2px 6px 0 rgba(78,148,255,.4)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item:hover{color:var(--f-theme-05);border-color:transparent}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item:last-child{margin-right:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link{border:none;padding:0 0 .375rem;color:inherit;cursor:pointer;text-decoration:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link.tabs-text-truncate{overflow:hidden;white-space:nowrap;display:flex;align-items:center}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link.disabled{color:var(--f-text-07);background-color:transparent;border-color:transparent;pointer-events:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .st-tab-text{max-width:310px;overflow:hidden}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .farris-title-text-custom{position:relative}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .farris-title-text-custom::after{content:"";height:100%;position:absolute;right:0;width:30px;background-image:linear-gradient(to left,rgba(255,255,255,.8) 0,rgba(255,255,255,.3) 100%)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active{border-color:var(--f-theme-03);color:var(--f-theme-03)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active::after{display:block;background:var(--f-theme-04)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item.f-state-active::after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link .farris-title-text-custom::after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item.f-state-active::after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills.nav-fill .nav-item.f-state-active::after{display:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active:hover{border-color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active .nav-link{color:var(--f-theme-03)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item:active{color:var(--f-theme-02);border-color:transparent}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item{flex-shrink:1;flex-grow:1;flex-basis:0;background:var(--f-neutral-10);border:none;margin-right:0;margin-left:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item.f-state-active{background-color:var(--f-neutral-00)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item .nav-link{padding-top:.4375rem;padding-bottom:.4375rem;justify-content:center}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item .nav-link .st-tab-text{max-width:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item{border:none;font-size:.875rem;margin:0 .875rem 0 0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link{padding:.3125rem .75rem;color:var(--f-text-02);background:var(--f-neutral-09)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link:hover{color:var(--f-theme-03);background:var(--f-aid-02)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link.disabled{opacity:.6}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item.f-state-active .nav-link{color:var(--f-text-00);background:var(--f-theme-04)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills.nav-fill .nav-item{margin-left:0;margin-right:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn{position:absolute;z-index:120}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn:has(>.show){z-index:140}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle-split,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr{height:1.25rem;width:1.25rem;border-radius:6px;border:1px solid var(--f-neutral-06);background:var(--f-neutral-12)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle-split:hover,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg:hover,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr:hover{border-color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr{left:0;top:50%;margin-top:-.625rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr::after{content:" ";width:.5rem;height:.5rem;border-top:1px solid var(--f-text-04);border-right:1px solid var(--f-text-04);transform:rotate(225deg);position:absolute;top:.25rem;left:.4375rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg{padding:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg::after{content:" ";width:.5rem;height:.5rem;border-top:1px solid var(--f-text-04);border-right:1px solid var(--f-text-04);transform:rotate(45deg);position:absolute;top:.25rem;right:.4375rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle-split{color:var(--f-text-04);margin-left:.3125rem;padding:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.dropdown{position:absolute;top:50%;margin-top:-.625rem;right:.375rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle:active,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle:hover{color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle::after{width:1em;height:1em;content:"\eb82";font-family:FarrisIcons;border:none;font-size:12px;line-height:1;vertical-align:1px}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-lr:hover:after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-rg:hover:after{border-top:1px solid var(--f-theme-05);border-right:1px solid var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-lr:active:after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-rg:active:after{border-top:1px solid var(--f-theme-01);border-right:1px solid var(--f-theme-01)}.farris-tabs .farris-tabs-header.farris-tabs-inHead{border-bottom:none}.farris-tabs .farris-tabs-header.farris-tabs-inHead .farris-tabs-title{width:41.6666667%}.farris-tabs .farris-tabs-header.farris-tabs-inHead .farris-tabs-toolbar{flex:1 1 0;align-items:center;display:flex;justify-content:flex-end;margin-left:.875rem;overflow:hidden}.farris-tabs .farris-tabs-header.farris-tabs-inContent{display:block}.farris-tabs .farris-tabs-header.farris-tabs-inContent .farris-tabs-title{border-bottom:none}.farris-tabs .farris-tabs-header.farris-tabs-inContent .farris-tabs-toolbar{margin:.625rem 0}.farris-tabs .farris-tabs-header.farris-tabs-nav-fill,.farris-tabs .farris-tabs-header.farris-tabs-nav-fill .farris-tabs-title,.farris-tabs .farris-tabs-header.farris-tabs-nav-pills,.farris-tabs .farris-tabs-header.farris-tabs-nav-pills .farris-tabs-title{border:none}.farris-tabs .farris-tabs-header .farris-tabs-toolbar .btn-link{margin-right:.75rem}.farris-tabs .farris-tabs-header .farris-tabs-toolbar .btn-link:last-child{margin-right:0}.farris-tabs .farris-tabs-header .sc-nav-btn .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.farris-tabs .farris-tabs-header .st-drop-close{width:1rem;height:1rem;text-align:center;cursor:pointer;position:relative;opacity:.4}.farris-tabs .farris-tabs-header .st-drop-close .material-icons{font-size:1rem;margin:-.625rem 0 0 .3125rem}.farris-tabs .farris-tabs-header .st-drop-close:hover{opacity:1}.farris-tabs .farris-tabs-header .active{color:var(--f-theme-03)}.farris-tabs .farris-tabs-header .f-tabs-toolbar-btn{padding:.125rem .8125rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:var(--f-theme-03);border:none;background:0 0;white-space:nowrap}.farris-tabs .farris-tabs-header .f-tabs-toolbar-btn:hover{color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .f-tabs-toolbar-btn:active{color:var(--f-theme-02)}.farris-tabs .farris-tabs-header .farris-tabs-inline-flex{display:inline-flex}.farris-tabs .scroll-tab-tooltips{padding:0;margin:0;width:7.5rem;text-align:left}.farris-tabs .scroll-tab-tooltips li{list-style:none;padding:0;margin:0}.farris-tabs.f-tabs-content-fill .f-tab-active,.farris-tabs.f-tabstrip-fill .f-tab-active{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.farris-tabs.f-tabs-content-fill .f-tab-active{position:relative}.farris-tabs .f-tab-d-none{display:none}.farris-tabs.f-tabs-header-sm .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link{padding-top:.25rem;padding-bottom:.25rem}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item{border-radius:4px 4px 0 0;padding:0 .625rem;margin:0 1rem 0 0}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active{border-color:var(--f-theme-03);color:#fff;background:var(--f-theme-03)}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active:hover{border-color:var(--f-theme-03)}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active .nav-link{color:#fff}.nav-pills .nav-link{padding:.3125rem .75rem}.farris-tabs-toolbar .sc-nav-btn .morebtn{padding-right:12px;padding-left:12px;margin-right:0!important}.lookup-tabs-nav .nav-item-selected{color:var(--f-theme-03)!important}.lookup-tabs-nav .lookup-selected-total{color:var(--f-text-00)!important;background:var(--f-theme-04)!important}.lookup-tabs-nav .tabs-ink-bar{background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%)!important}.farris-tabs-inContent .farris-tabs-toolbar:has(.f-component-tabs-view){display:flex}.farris-tabs-inContent .farris-tabs-toolbar .f-component-tabs-view{height:auto}.farris-tabs.one-page{overflow:hidden}.farris-tabs.one-page .farris-tabs-content{overflow:auto;position:relative}.farris-tabs .st-drop-close{line-height:1}.farris-tabs .tabs-li-absolute{padding:4px;margin:0;position:relative}.farris-tabs .farris-tabs-header{flex-wrap:nowrap!important}.farris-tabs .farris-tabs-header .sc-nav-btn .dropdown-menu{right:0;left:auto;min-height:80px;display:flex;flex-direction:column}.farris-tabs .farris-tabs-header .sc-nav-btn .dropdown-menu .tab-dropdown-menu--items{overflow-y:auto;overflow-x:hidden}.farris-tabs .tabs-li-absolute input{line-height:26px;height:26px;padding-right:24px}.farris-tabs .tabs-icon-search{position:absolute;right:4px;top:50%;font-size:14px;padding:0 4px;width:auto;height:24px;color:rgba(0,0,0,.25);margin-top:-12px;line-height:20px}.farris-tabs .dropdown-no-data{height:26px;line-height:26px;text-align:center;padding-top:5px}.farris-tabs .farris-tabs-header .farris-tabs-header-post,.farris-tabs .farris-tabs-header .farris-tabs-header-pre,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item{flex-shrink:0}.farris-tabs .farris-tabs-header .farris-tabs-title{flex:1 0}.farris-tags .farris-tags-item-container.farris-tag-item-capsule .farris-tag-item{border-radius:24px}.farris-tags .farris-tags-item-container.farris-tag-item-capsule .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked){background:#fff;border:1px solid #e6e6e6;cursor:pointer}.farris-tags .farris-tags-item-container .farris-tag-item{background:rgba(var(--f-theme-03),.06);border:1px solid;color:var(--f-text-02);display:inline-block;padding:0 8px;margin:0 10px 0 0;line-height:24px;font-size:13px;white-space:nowrap;border-radius:3px;cursor:default;opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86)}.farris-tags .farris-tags-item-container .farris-tag-item a,.farris-tags .farris-tags-item-container .farris-tag-item a:hover{color:var(--f-text-02)}.farris-tags .farris-tags-item-container .farris-tag-item>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.farris-tags .farris-tags-item-container .farris-tag-item .tag-delete{color:var(--f-text-06);display:inline-block;font-size:10px;width:16px;text-align:right;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.78,.14,.15,.86);position:relative;z-index:10}.farris-tags .farris-tags-item-container .farris-tag-item .tag-delete .f-icon{font-size:12px}.farris-tags .farris-tags-item-container .farris-tag-item .tag-delete:hover{color:var(--f-text-02)}.farris-tags .farris-tags-item-container .farris-tag-item>.f-icon+span,.farris-tags .farris-tags-item-container .farris-tag-item>span+.f-icon{margin-left:7px}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-success{color:var(--f-semantic-success-01);border-color:var(--f-semantic-success-02);background:var(--f-semantic-success-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-success.farris-tag-item-actived{color:var(--f-semantic-success-03);border-color:var(--f-semantic-success-01);background:var(--f-semantic-success-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-info{color:var(--f-semantic-info-01);border-color:var(--f-semantic-info-02);background:var(--f-semantic-info-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-info.farris-tag-item-actived{color:var(--f-semantic-info-03);border-color:var(--f-semantic-info-01);background:var(--f-semantic-info-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-error{color:var(--f-semantic-danger-01);border-color:var(--f-semantic-danger-02);background:var(--f-semantic-danger-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-error.farris-tag-item-actived{color:var(--f-semantic-danger-03);border-color:var(--f-semantic-danger-01);background:var(--f-semantic-danger-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-warning{color:var(--f-semantic-warning-01);border-color:var(--f-semantic-warning-02);background:var(--f-semantic-warning-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-warning.farris-tag-item-actived{color:var(--f-semantic-warning-03);border-color:var(--f-semantic-warning-01);background:var(--f-semantic-warning-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkdisabled{cursor:not-allowed;color:rgba(0,0,0,.45)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checked{background-color:#fff}.farris-tags .farris-tags-item-container .farris-tag-item:last-child{margin-right:0}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked){color:var(--f-text-02);background-color:transparent;border-color:transparent}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked):active{color:var(--f-text-02)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked):hover{color:var(--f-theme-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkdisabled{background-color:transparent;border-color:transparent;color:var(--f-text-07)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-actived,.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checked{background:var(--f-theme-03);border-color:var(--f-theme-03);color:var(--f-text-00)}.farris-tags .farris-tags-item-container .farris-tag-add-button{cursor:pointer;background:#fff;border-radius:6px;border:1px dashed var(--f-neutral-04)}.farris-tags .farris-tags-item-container .farris-tag-add-button .farris-tag-add-text{color:var(--f-text-06)}.farris-tags .farris-tags-item-container .farris-tag-add-button .f-icon{color:var(--f-text-04)}.farris-tags .farris-tags-item-container .farris-tag-add-button:hover{border-color:var(--f-theme-05)}.farris-tags .farris-tags-item-container .farris-tag-add-button:hover .f-icon,.farris-tags .farris-tags-item-container .farris-tag-add-button:hover .farris-tag-add-text{color:var(--f-theme-05)}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled{opacity:.6;border-style:solid;cursor:not-allowed}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled .farris-tag-add-text{color:rgba(0,0,0,.25)}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled:hover{background:var(--f-neutral-08);border-color:var(--f-neutral-05)}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled .f-icon,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled .farris-tag-add-text,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled:hover .f-icon,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled:hover .farris-tag-add-text{color:var(--f-text-07)}.farris-tags .farris-tags-item-container .farris-tag-input-box{display:inline-block}.farris-tags .farris-tags-item-container .farris-tag-input-box .form-control{height:24px;width:100px}.farris-tags .farris-tags-item-container .farris-tag-input-box .form-control:focus{box-shadow:none}.farris-tags.farris-tags-nowrap{overflow:hidden}.farris-tags.farris-tags-nowrap .farris-tags-item-container{display:flex;flex-wrap:nowrap;overflow:hidden}.farris-tags.farris-tags-checkable .farris-tag-item{line-height:22px}.farris-tags::before{content:attr(data-placeholder);color:var(--f-text-09);display:none;padding-left:5px;vertical-align:middle;height:100%;align-items:center}.farris-tags:empty::before{display:flex}.farris-tags.has-content::before{display:none!important}.time-picker-panel{box-sizing:border-box;margin:0;padding:0;color:var(--f-text-04);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;z-index:9999;background:var(--f-neutral-20)}.time-picker-panel .time-picker-panel-inner{position:relative;left:0;font-size:14px;text-align:left;list-style:none;background-clip:padding-box;border-radius:10px;outline:0;box-shadow:0 2px 20px 0 rgba(3,18,51,.12);padding:3px 0}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap{position:relative;padding:7px 2px 7px 12px;border-bottom:1px solid var(--f-neutral-08)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap .time-picker-panel-input:-moz-placeholder-shown{text-overflow:ellipsis}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap .time-picker-panel-input:placeholder-shown{text-overflow:ellipsis}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap .time-picker-panel-input{width:100%;max-width:154px;margin:0;padding:0;line-height:normal;border:0;outline:0;cursor:auto}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox{zoom:1}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select{position:relative;float:left;width:4.125rem;max-height:192px;overflow:hidden;font-size:14px;border-left:1px solid var(--f-neutral-08)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul{width:4.125rem;margin:0;padding:0 0 160px;list-style:none}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li{height:2rem;margin:0 6px;padding:0;border-radius:6px;line-height:2rem;text-align:center;list-style:none;cursor:pointer;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--f-text-02)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select:first-child,.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select:first-child{margin-left:0;border-left:0}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li:hover{color:var(--f-theme-03)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li.time-picker-panel-select-option-selected{background:var(--f-aid-02);color:var(--f-theme-03)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li.time-picker-panel-select-option-disabled,.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li.time-picker-panel-select-option-disabled:hover{color:var(--f-text-07)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li:last-child::after{height:162px;display:block;content:""}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select:last-child{border-right:0}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select:hover{overflow-y:auto}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox::after,.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox::before{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.calendar-time-picker{display:block;height:228px;width:100%;background:var(--f-neutral-20)}.calendar-time-picker .calendar-time-picker-panel{z-index:9999;width:100%;color:var(--f-text-04)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner{position:relative;display:inline-block;width:100%;overflow:hidden;font-size:14px;line-height:1.5;text-align:left;list-style:none;background:var(--f-neutral-20);background-clip:padding-box;outline:0}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox{width:100%;display:flex}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-column-3 .calendar-time-picker-select{width:33.33%}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select{position:relative;flex:1;height:226px;overflow:hidden;font-size:14px;border-right:1px solid var(--f-neutral-08)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn .f-icon,.tooltip{font-size:.75rem}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select ul{width:100%;margin:0;padding:0;list-style:none}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li{color:var(--f-text-02);height:2rem;margin:0 6px;line-height:2rem;border-radius:6px;text-align:center;list-style:none;cursor:pointer;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li:hover{color:var(--f-theme-03)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li:last-child::after{display:block;height:206px;content:""}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li.calendar-time-picker-select-option-selected{color:var(--f-theme-03);background:var(--f-aid-02)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li.calendar-time-picker-select-option-disabled,.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li.calendar-time-picker-select-option-disabled:hover{color:var(--f-text-09);background:#f8f9fa;cursor:not-allowed}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select:hover{overflow-y:auto}.time-picker-overlay{top:0;bottom:0;left:0;right:0;position:fixed;z-index:8888;display:none}.time-picker-overlay .time-picker-panel-box{top:0;left:0;height:100%;width:100%;position:absolute;z-index:8888;flex-direction:column;min-width:1px;min-height:1px;transform:translate(0,0)}.input-group .input-group-append.f-cmp-iconbtn-wrapper{align-items:center;background:var(--f-neutral-12)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn{background:var(--f-neutral-12);cursor:pointer;padding:0 .5rem;color:var(--f-text-08)}.f-tooltip-default,.f-tooltip-info .f-tooltip-text,.tooltip-inner{background-color:rgba(var(--f-neutral-00-rgb),.95)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn:hover{color:var(--f-theme-05)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn:active{color:var(--f-theme-03)}.f-component-timepicker .timepicker-btn{padding:0 .5rem;color:var(--f-text-07)}.f-component-timepicker .timepicker-btn:hover{color:var(--f-theme-05)}.f-datepicker-content .time-picker-panel-select ul li:last-child::after{height:258px!important}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;line-height:1.4286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;word-wrap:break-word;opacity:0}.tooltip.show{opacity:1}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:rgba(var(--f-neutral-00-rgb),.4)}.tooltip-inner{max-width:18.75rem;max-height:6.25rem;overflow:hidden;padding:.5rem .625rem;color:var(--f-text-02);text-align:left;box-shadow:0 2px 8px 0 rgba(0,0,0,.15);border-radius:6px}.tooltip-inner-lg{max-width:37.5rem;max-height:initial;overflow:initial}.f-tooltip{position:absolute;display:none;padding:.25em .5em;max-width:12.5em;line-height:1.2rem;border-radius:5px}.f-tooltip-left,.f-tooltip-right{padding:0 .6em}.f-tooltip-bottom,.f-tooltip-top{padding:.6em 0}.f-tooltip-bottom-left,.f-tooltip-top-left,.f-tooltip-top-right{padding:0}.f-tooltip-default{color:var(--f-text-02);border:1px solid var(--f-neutral-00)}.f-tooltip-text{padding:.5em .3em;white-space:pre-line;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,32,74,.15)}.f-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;border-width:1em}.f-tooltip-right .f-tooltip-arrow{top:50%;left:0;margin-top:-.5em;border-width:1em 1em 1em 0;border-right-color:var(--f-neutral-00)}.f-tooltip-left .f-tooltip-arrow{top:50%;right:0;margin-top:-.5em;border-width:1em 0 1em 1em;border-left-color:var(--f-neutral-00)}.f-tooltip-bottom .f-tooltip-arrow,.f-tooltip-top .f-tooltip-arrow{left:50%;margin-left:-.5em;border-width:1em;border-top-color:var(--f-neutral-00)}.f-tooltip-top .f-tooltip-arrow{bottom:0;border-bottom-width:0}.f-tooltip-bottom-left .f-tooltip-arrow,.f-tooltip-top-left .f-tooltip-arrow{left:10px;margin-left:-.5em;border-bottom-width:0}.f-tooltip-top-left .f-tooltip-arrow,.f-tooltip-top-right .f-tooltip-arrow{bottom:0;margin-bottom:-.5em}.f-tooltip-bottom-right .f-tooltip-arrow,.f-tooltip-top-right .f-tooltip-arrow{right:10px;margin-right:-.5em;border-bottom-width:0}.f-tooltip-bottom .f-tooltip-arrow{top:0;border-top-width:0}.f-tooltip-bottom-left .f-tooltip-arrow{top:0}.f-tooltip-info.f-tooltip-top-left .f-tooltip-arrow,.f-tooltip-info.f-tooltip-top-right .f-tooltip-arrow{border-top-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info.f-tooltip-bottom .f-tooltip-arrow{border-bottom-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info.f-tooltip-right .f-tooltip-arrow{border-right-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info.f-tooltip-left .f-tooltip-arrow{border-left-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info .f-tooltip-text{box-shadow:0 2px 8px 0 rgba(0,32,74,.15)}.f-tooltip-danger .f-tooltip-text{color:var(--f-semantic-danger-01);background-color:var(--f-semantic-danger-03);border-color:var(--f-semantic-danger-02)}.f-tooltip-danger.f-tooltip-top .f-tooltip-arrow,.f-tooltip-danger.f-tooltip-top-left .f-tooltip-arrow{border-top-color:var(--f-semantic-danger-02)}.f-transfer{padding:.125rem;border:1px solid var(--f-neutral-06);border-radius:6px}.f-transfer .option-pane,.f-transfer .option-pane-content .columns-box{padding:0}.transfer-search-box{margin:.75rem .875rem}.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group,.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group>.form-control:not(:last-child){border-radius:6px}.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group>.input-group-append{border-radius:0 6px 6px 0}.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group>.input-group-append>.input-group-clear{border-radius:6px!important}.f-transfer .option-pane-content .columns-box .fv-tree-view .fv-grid-hierarchy-cell div span{overflow:hidden;text-overflow:ellipsis}.f-transfer .option-pane .option-pane-group{padding:.375rem 0}.f-transfer .option-pane .f-transfer-list-item{padding:.375rem .875rem;cursor:default;margin:0;border-radius:0;color:var(--f-text-03)}.f-transfer .option-pane .f-transfer-list-item .f-list-select{padding:0}.f-transfer .option-pane .f-transfer-list-item.f-un-select{color:var(--f-text-08)}.f-transfer .option-pane .f-transfer-list-item:not(.f-un-select):hover{background:var(--f-neutral-11)}.f-transfer .option-pane .f-transfer-list-item.f-listview-active{background:var(--f-neutral-10)}.f-transfer .option-pane .f-transfer-list-item .custom-checkbox{padding:0 0 0 1px;margin:0;width:100%;overflow:hidden}.f-transfer .option-pane .f-transfer-list-item .custom-control-label{padding-left:1.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-transfer .selection-pane{border-left:1px solid var(--f-neutral-06);padding:0}.f-transfer .selection-pane .selection-pane-title{padding:.875rem .875rem .375rem;background:var(--f-neutral-10);color:var(--f-text-01);display:flex;align-items:center}.fv-grid-hierarchy-cell,.fv-tree-node-cell{padding:0 .75rem;display:flex;z-index:1;line-height:28px;white-space:nowrap}.f-transfer .selection-pane .selection-pane-title>.selection-count{font-size:18px;margin:0 .25rem}.f-transfer .selection-pane .selection-pane-title>.selection-title-action{font-size:13px;color:#2a87ff;flex:1;text-align:right}.f-transfer .selection-pane .selection-pane-title>.selection-title-action>i{margin:0 .5rem}.fv-grid-hierarchy-cell{position:absolute;text-overflow:ellipsis;top:0;flex-direction:column;align-items:center;border-color:transparent;background-color:transparent;overflow:hidden}.fv-tree,.fv-tree-content,.fv-tree-content-primary{overflow:scroll;position:relative}.fv-grid-bordered .fv-grid-hierarchy-cell{border-right-color:#eaecf3}.fv-grid-horizontal-bordered .fv-grid-hierarchy-cell{border-bottom-color:#eaecf3}.fv-tree{display:flex;flex-direction:column;border-color:transparent;flex:1;color:#424347;width:100%}.fv-tree-content{flex:1;display:flex;width:100%;z-index:0;background:#fff}.fv-tree-content-hover{cursor:pointer}.fv-tree-content-primary{flex:1}.fv-tree-data{height:100%;width:100%;position:relative;overflow:hidden}.fv-tree-data .fv-grid-hierarchy-cell{border:none}.fv-tree-node{left:0;width:100%;position:absolute}.fv-tree-node.selected,.fv-tree-node:active,.fv-tree-node:hover{left:0;position:absolute;background:#e7f1ff}.fv-tree-strip .fv-tree-node-odd{background-color:#fff}.fv-tree-strip .fv-tree-node-even{background-color:#f7f8fb}.fv-tree-node-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.fv-tree-node-selected{color:#424347!important;background-color:#dae9ff!important}.fv-tree-node-cell{position:absolute;text-overflow:ellipsis;top:0;flex-direction:column;align-items:center;border-style:solid;border-width:1px;border-color:transparent transparent #eaecf3;background-color:transparent}.fv-tree-data :first-child .fv-tree-node-cell{background:0 0;border-left:none}.fv-tree-node-cell-input{font-size:12px;height:12px;width:12px;border:1px solid #aeb5c6}.fv-tree-node-cell .f-icon.f-icon-checkbox-checked{color:#2a87ff!important}.fv-tree-node-cell .custom-control-input:checked~.custom-control-label::before{color:#2a87ff}.fv-tree-node-cell input[type=checkbox]{display:none}.fv-tree-node-cell input[type=checkbox]+label{position:relative;padding-left:18px;cursor:pointer;display:flex}.fv-tree-node-cell input[type=checkbox]+label::before{content:"\e304";font-family:FarrisIcons;position:absolute;left:0;top:0;color:#d8dce6}.fv-tree-node-cell input[type=checkbox]:indeterminate+label::before{content:"\e306";font-family:FarrisIcons;position:absolute;left:0;top:0;color:#2a87ff}.fv-upload-and-preview .ffileUploadAndPreview{font-size:13px}.fv-upload-and-preview .ffileUploadAndPreview-content-fill{flex-grow:1;flex-shrink:1;flex-basis:0;display:flex;flex-direction:column;overflow:hidden}.fv-upload-and-preview .ffileUploadAndPreview-content-fill .uploadAndpreview--header{flex-shrink:0}.fv-upload-and-preview .ffileUploadAndPreview-content-fill .uploadAndpreview--content{flex-grow:1;flex-shrink:1;flex-basis:0;overflow:auto}.fv-upload-and-preview .uploadAndpreview--header{display:flex;align-items:center;margin:0 0 9px;position:relative}.fv-upload-and-preview .uploadAndpreview--header .ffileupload--browser{position:absolute;margin:0;padding:0;left:1em;top:-9000px;width:calc(100% - 2em);opacity:0;font-size:0}.fv-upload-and-preview .uploadAndpreview--header .header--left-container{display:flex;align-items:center}.fv-upload-and-preview .uploadAndpreview--header .upload-container{height:44px;background:#FAFCFD;border:1px dashed #D8DFED;border-radius:6px;padding:0 22px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:130px;display:inline-block;line-height:44px;align-items:center;max-width:160px}.fv-upload-and-preview .uploadAndpreview--header .upload-container.f-state-disabled{opacity:.6;cursor:default}.fv-upload-and-preview .uploadAndpreview--header .upload-container .upload-icon{color:#2F8AFF;font-size:18px;margin:0 10px 0 0}.fv-upload-and-preview .uploadAndpreview--header .header--right-container{margin-left:auto;min-height:44px;display:flex;align-items:center}.fv-upload-and-preview .uploadAndpreview--header .header--countInfo{min-height:44px;display:flex;align-items:center;font-size:14px}.fv-upload-and-preview .uploadAndpreview--header .header--countInfo .count{font-size:16px;font-weight:600;margin:0 6px}.fv-upload-and-preview .uploadAndpreview--content{margin-bottom:10px}.fv-upload-and-preview .uploadAndpreview--table td{border-left:none;border-right:none;vertical-align:middle!important;padding-top:12px;padding-bottom:12px}.fv-upload-and-preview .uploadAndpreview--table .td--hascheckbox{position:relative;padding-left:44px}.fv-upload-and-preview .smooth-dnd-ghost .td--hascheckbox .preview-checkbox,.fv-upload-and-preview .uploadAndpreview--table .td--hascheckbox .preview-checkbox{position:absolute;top:50%;margin-top:-8px;left:14px}.fv-upload-and-preview .uploadAndpreview--title-container{display:flex;overflow:hidden}.fv-upload-and-preview .uploadAndpreview--title-container .uploadAndpreview--right{align-self:center;flex:1 1 0;overflow:hidden}.fv-upload-and-preview .uploadAndpreview--right .item-content--title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;cursor:pointer}.fv-upload-and-preview .uploadAndpreview--right .item-content--title.no-preview{cursor:default}.fv-upload-and-preview .uploadAndpreview--title-container .ffilepreview--filetype-icon{width:28px;height:28px}.fv-upload-and-preview .uploadAndpreview--state-container p{margin:0;padding:0}.fv-upload-and-preview .uploadAndpreview--state-container .f-icon{font-size:18px}.fv-upload-and-preview .ffileupload--support-info .support-info--wrapper{padding:0 8px;margin:0 0 8px}.fv-upload-and-preview .ffileupload--support-info .support-info--wrapper li{color:#B4BCCC;margin:0;padding:0;display:inline-block}.fv-upload-and-preview .uploadAndpreview--date-container,.fv-upload-and-preview .uploadAndpreview--filesize-container{color:rgba(45,47,51,.45);font-size:12px}.fv-upload-and-preview .uploadAndpreview--state-container .f-icon{margin:0 8px 0 0}.fv-upload-and-preview .uploadAndpreview--nodata{padding:0 8px;margin:0 0 8px;color:#B4BCCC}.fv-upload-and-preview .uploadAndpreview--action-container{display:flex;flex-direction:row;align-items:center;min-width:90px;height:100%}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn{height:22px;width:22px;border-radius:16px;display:inline-block;padding:0;color:#2b87ff;text-align:center;border:none;margin:0 14px 0 0}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn[disabled]{color:gray;opacity:.5;cursor:not-allowed;background:#e6e6e6;border:1px solid #bdbdbd}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn:not([disabled]):hover{color:#fff}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn .f-icon{margin:0 auto;display:block;font-size:16px;position:relative}.fv-upload-and-preview .ffilepreview--filetype-zip{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-xls{background-image:url(data:image/png;base64,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dGUAMjAxOS0xMi0yOFQwOTozMTo1NiswMDowMLhrE7kAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDEtMDhUMTk6NDM6NTkrMDA6MDCdstIMAAAAIHRFWHRzb2Z0d2FyZQBodHRwczovL2ltYWdlbWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADUxMo+NU4EAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANTEyHHwD3AAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNTQ2OTc2NjM5OiA9twAAABN0RVh0VGh1bWI6OlNpemUAMjc5NTUxQgHjNFMAAABadEVYdFRodW1iOjpVUkkAZmlsZTovLy9kYXRhL3d3d3Jvb3Qvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL2ZpbGVzLzExOC8xMTg0MjYwLnBuZ1tLqmgAAAAASUVORK5CYII=)}.fv-upload-and-preview .ffilepreview--filetype-txt{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-ppt{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-pdf{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-img{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-doc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH5AIKAwAGv1lbXAAAFbdJREFUeNrtW3mMXdV5/33n3vuW2d6sxgvjcTAYjMGBkuAxhOKUOEQlIaY0KSWRIpJGCWr7R6RUQlHVlGxNoipqI0VEURq1aiCKSUKWKhvQpHGJbbANGDBmDDbjsZnxrO/N8pb77j1f/7jbOefe92ZcKf9xpTvvvbN+5/ft55wB3nzefN58/oAPXXSP7/wKQ6+cwOLAIOzB9RD9g4DvAU4eVOgAOQ5g2YAQIABsdGdSJo4qsxpGxRGFrFcwCKW5SXxzWy9Ghy+B5/nwPA+u66JaraLeqMOxHczMTOP8G5MQK/Mobrkad++5+aKWa6+1YfGfHwHXqrDsPLy774P/o38r2IPrB1nKITTqm7lRHxRuI4dcHrAdQFjhQhIusPojG5MUVlobBVAGwapXQW4By0uLaDQ9NN0mGo066vW6KxmzolOcZcbM1OTk7Kf/9q/r/3vkKL71n99FV1c37r3r/Wta96oSlPvy99F50y64r53Cyn17qfM7T1whSn37qKf3VtjOVZTPl8CyByAHJEBEYCKAlMWysvSokAACgRUIKPzLzEpB2IEVcgkAEXD+ddzJZXz+XbvQX8jDlxLMDCklAG4SiaVGvV5ues2TCwsLB+bm5n502027x5586iCuuXobfv74Idz3wTv+/wAV/mU//OkpFHfdCn9qYrPYOHK/6C79JXKFEbLttAQQQNxaOsCrzahI22qcJQH/3Gn4Lx3F3TsuxxfeNYrBjgIks9EuANzzPNRqtdcr5fIjZ86c+ebIyOaJXz7+JDZt2oh73tcaJKslOF/7AXhlCYOf/QTqz7x8izW89Vuib/Ae5Au9IJG5msiuZOJAq4Nj2pnUb3UuAnixDDk9iRPT85heqeHG4fXoyjmZ4AohUCgUejs7O2/p7ukenZqaeuWeO9979vDRY/jQfR/FDx55eO0AdfzTo/DmJzH04CdQefjAHdbGLd+h7tIOCJFeiIGGanyJ9Pq4TnkjiVtVZAwQiQi8WAbPTIIYeOlCANLu4fXobAFSBFSxWBzu6Ojc++LJV8bev/e2U7/87e/wgfs+jp/t/16qfSZPS0+8Cn9pBby4cIu1acvDoqtnOLUGbjOCZpmNNmutU4Y3F0sh+v65M/BfOqrVfeDaK/DFvaPoK+ZT6mY+lUpl4vTp1z40ODBwYMNAH/pKvak2KQkqfuW7kA0XsjI/bA1v/ZboLu0I5HkN3KXkk3kVjbr4AMOYg8CVQIJifBl4eXoeU8s1jK4iSQBQyOdLOSe3/ZWxU4/PzJcrt93xXvx4//e1NsLsxNUVVD/+blgbRj5JXT2jDICZweDgM+NFRh2iPjD6Rt+l8htGH9brYI7LjOBr8Dt6CQzJjEePj+HvHz+EmWodgtpwggi9fX2jl1122f3vunk3LS2vtOej+PpPUezuAjxvm9hy5a+ps2skc+AsK9xO5dbyZMRI7SWQIM+dgTxxNHMoMPDBnVfgc3uzvVsyDGFxcXH8xRMn3p1znLHfvjGHf9x3e7YEDc6eg3PV9aCevn2UL4yYBjV+0aIMLdqv5TX60lraI7ssMvz7j5/CZ584jIVao6UkMTOKxeLIYH//vne8/Qbcyxe0eg2gpVwXavu/XaDuvlth2QmRJnuyPNHFLM58Zft+kfcjA0wyaGOlPuqz//kxfOZXBzFXa61utm2jr79/z+f+9RuFJ+odep2G1uAlEIPrBsmyr1LjmWjiyFZrwaBiv4kNPE0P1bI86MikDEjJ3KmuahnrdRwFq0r/Hxw/BcmML96+u2UwmXOcq25+2/VDAE20BIhKA2Aph+DkSwgHiUGKgFK5FVfoQEVgmZKnJZ4Z8RMneUkCAmtD6NhmBKVqXKVq7g+PvwqLCA/u3YWhzqIGEjOjUCiUSv0Dg45laQBpKsa+B65XRyBljyrirIq7Ksasv1mqEzsZGHUw2skWY0CfNxqPDPo4q68RjH7/uTH8w68PYy7Du0kpu6sr1RHpeVq5rmK5PKTbGADgkMmdVhGzEslpUxoSpAZ8WoAdSZahNpQaMO3VyFAV9acmaXGeTHj0+VMAgC+9Z7cWTBKRQ0Qb+rs7WwPE+Q7AdXNMItYpbmVHoK+KZZhamE9G8prKLjLSDVbQjINOjUkUSk22+9a2Vowmjx4PQPrC7aMYCG2SEAKObfdt2bSxNUBk5wAnj2jLQc2r0nFJImJsFGVxO3uMVSoUNVMlTqs0bVRG6sKs5IUhevufGwMz4/O3j2KoswgigmVZHULoyYW+YSYstHLvLYO2jJQis22WJBpcjj3QWsYDoIu3CaBBX8a4jz4/BgLh8+8ZRV/egUXkmG2MHUVK3rZuucUKWJdqdb8LJhczxiNew1zqnGYMcBFPNM3+58YgCHhw79vhiHTqZQAUyXOGCLUjxKizCBAEeBKQbBj6NkPYFLhVV2qmJrufjIBnCCIQAf5FgZXo3/5nx+D7Pu7a1J0SVh2geFIDZqmP2eqRDFzZZeHv3tKBXltgvObjK2eqmHGl0i09iATwvnU53LOhgBwRDpabeOhsFXVpqBzpk8meQey5+SZ87NIiHEH4xUwD332j3haPVoD/xGUcfHEWZ/VA2gAo8gqcNoBam1Y8YSAH4N0DOfQ5Aj4DT865+K/pBuw2MUCOgL9YX8CdQ3kAwI0lG4/PNnB80YOVpXLhInMdnbjn6g24e2PQ79TrNcBfTutJSzFU6qWP8xN19F0OqNmYPpbkOGhTAzANszYvAThb9fHysg8gULXrugOjr7VVAkhfApsLFm7oSXjVawtc02lDxtsa6f6SgUGHMFoKvI4rGc+UXfg+g/1wOyV+ZfCZKg9fX4J9CeLgBAutAFKj3azINBUNR4lmlGxKYKHJeHLWjce8seSgIFpEuhKQEtjaYWFdLiFFUNDPYmoZHUsGLita2JAPAJpqSLyw2ITIoCvRDLNMeWF8zwKIVDbJDNbJ4I02vLRVKxtnR8ouqqHFvLLLwuaClbTP2OS6seQgJ3S7dEPJRr9DQT+Zpocl463dNrpD3T1cbmKqJiFMDsftDe6bqhGP3wYgU1oicY7HDFWDpOJlDU4IAC8veThfD9RsU8HC20o2pMk5GXx0CMLO7kC95lyJGTfwCFs6LIwUrCSpjOYKacgRcGNvErb8bs5F1ZPZEhHlY62kR20nNUQMFWNKsnYZNlYmMBNGyPRvwcCFusRTc81AKgG8reTAUgENv0sJDOUErg4Beq7i4ffzgXr2OQJ7BnMak0gmjOq3BbZ3JcAeW2hCMOmCYXjlWKgiOysNQUPisLMlCGF6oUAaSEqyh5yIl7JiRZRYMlyf8ft5FzIk7LoeB902YjFmpe2OzsT+PDnTwE8mG3G/P+qxURAUq250CiuZcX2Pja2dgf15bcXHeNUHKdwiZY54/xrJvnZMR0wPMhEytjsY0mfAR+zNmFnnhIzYz6HdUsQ3jFsEgGPlZqwul3dauKzDgm+IOIHxjoEcChah6ge263ilibmw384eB0MOBTRpcwNvjcEDjiy4KLsSIqJHkZCANtbmzTIpMWhtJaiFB2NDaLQ6JSyI7BwxMFH1cXIp8Jm9jsA13Y7u5iXQZQns7AnsyETVx+llH+MrPsaWg34bCwI7ux3NfjEDBQHs6ssBAGo+479nXPiK+pl2N1qbWhcrgtTXwP4aAIpFWvVWiheJxV1RGQ49UiTeS02JZ0J7IgjYO5RHjnQ1uyQnsK0rUJNXlj3M1iWqnsQzC4H9KliEWwdzEIR4DikZ6/MC20L7c67m4/lyM/Bemsok9GheUIl/ojJSVaytF4tdqil+qnol31NeTCZSxpLx5EwDy14w4/ZuGwMOxRz1JWNHt411+YCEw/Mu6p6ELxlH5l14kR3qddBjUSIVknFFp42NxaDfs+Umput+EIyqRlcmv9V1Zx1/x2tfFSAzk1dsS5brNNVRCwWYcHLRw0Q1kNktnRYu77IDOyQBkoQdPTYcQaj5jBcqXkzQ0/MuTq8Evy/vsnFpwVK8JOGWgRzyIvC4h+ZcNPwWDFXpl2l6VTMRcbatiiVeKpQiaShsRrBHMYuS38QMAcZs3cfRhUDNOizC7v5ccCOIGb0O4Z1h7vXqsofnF1xYCOzXhZrES5VAzYZyAtf3OpChF+20gF0Dgf2Zrkv8z7SrB7hZwZkR6KbWAQPQVgDFiwXSHTVLbb7ZdZ7PODTrxkP+8VAOHSKIfzYUBLaG9uflRQ8LDRnHWw1P4mCYrhABu/odOCF/RooWrgj7nVxs4lzVCxbRSnK4zRtrSQKUuVlhSJCx2AyxXI1ZOpGEYwtNLIRue1uXjU15C57PuLbkYCjMo56ec9Hwkn4E4Nh8E4vNgOh3DOWxLicgfcaV3TYGw37PzDex6LJGVztAtG2uDNVTopdsgPQUJrw6YHgAUtSIJMfizan8LRh8bLGJo6E3u6QgsK3HBgG4tmTDImDZY7yw0NTURDDw6pKHc9XADm0qBvZLEHDbJXnYFGTvv59pxF42oAd68Mc6PVEeqYbz0eUIioSjnYrFjwwmSxnnWCQzpMuIVaJEdLnJeDpUl5wgjPbn0O8Q9qwL7M9kzcdry804yIvUbKbm4zcXGgCALptwfV/gzd4a5l+vr/h4qRL2i+lJS3+STiiHEGFbNd3gqO+qcZC5q4jWiV6cPCqoR8lsTJhkHJx1UQ+z++v6HGzvdjDSEcQxh2ddTNeCHceIYADwJOOZWTfeRt01kMPVJQeXhfHP4RkX51f8tP1R6YlMqhIIqu20LIDT604DFG9nJKOTEiwmd3QUjxehIpX2ikILACfLTYyvBKzZ2ZvDn28uoi/Mvw7PNtDwElWIglMB4NkFF9PhrsD2koO96/PocYINjYOzDXhSCWiVXC0yAVA+Yy9rbNMwDE+MdgAhCqQ4MdjqkXCsVqooJ4Oq5dEOIzEwU/fxQuju+3OEO4eLsAVQdiWOzzeDOQ0uCgDnV3y8WA7c/dYuCx+/vAsWAfMNiWfn3HCxxpG1ZC2P1rY7DJ5G5ZGkr7rdASNXgQlsyj22ULvoe1hf9xi/OF+HZMAWhOGOwAudr/oYX/aSXUCVgQwsuxK/mQzskCMIQ4WA3FcqTZxe8iDCoNa0gyzT9Jhbtmpgq85pbnfoR8+KXYm3uZWTjUjzUk9UoR5rGjbs+XkX8w2JwULCk+PzTczWJaIsOrnhERzjMAPH5lzUfEZR2b1/arqBRVeCwmOb4EK6ogLMYDOiUUKImNzwMzq7T3YeWwAU62iYiEYHfdHWcOr+j0IURaoXXfkNV8wIktXXFj08fHoF7xsuwiJgsSnx07NVeJIhzMsLCFRcADi+0MCPx6vYvS4PAjCx4uPR8WpYb7pYZV7lQE4912elHau0q+raDiAog2noRgAqW2pkzErKEBrdFETHn322jK+fWIJFgdrNNWTshbSDGeUIulyX+JtDC+jLBceeS55EpRnESoGckAYsiGINiE0EQuGOpCNEh8K2KmCrShCzhIh235AQyoZsxtdjVLHKOlsPCSMArs94Yzk5Vwn/pUNrqgIbaWytKVFtSr1NPBcbR9ot6FHGTEBgjflgZhjHPsbJKgeJErM+uDmRBkIkZlG3SPwSzqjfM4+h9S56eVilgaBJdfI9kqh43ZwxbFSmShQi0Eii0g4gzwc8P33XJyOAijnMOhiJEiqLNjRX/b+NyGyxSrgCBJugqtf+UvTo6p6aW725JZVpKGCsBFxe0O9K616s6QKNBiAlWFhpKlQCgUwio0WZUhDXQeEcKU00exd+kRnTZEneKvSoIGngRvNHWzu+V/XnJ7XuOkBuFWjWmsnWXMYjk4FNl6lhwcoQRqXmDTmrCafVTiJbDcNyTVg5JYhJTJQmJ4yhJNj3F2RlpjVAaDYA8CwkNyHhqChTyOE4ZyJ9Qm3x1AKcKGiLxpRacVoizEWwTo8qkS0vX3G6jk2aAh1vgnmKXf12iHHDzAZyHeMgsQRGfzxJNI4yaOzSIyLDH2xKiwFm3N+8P6h6RkOAzABVtS8xHQZDYlLVS6YqSEqfoIlYomDtrQGSi/MAeNbqGqigYPersYSxlpShjKIjU6o0YBWumtISf1VVxuxn0BOVxTGMOS+QCu2yxyTArZfl0vwMGXqs7yguXoA8f2IGXvNkkr8kEaZ5/BzPHBHIyu/wjfd4dAEKPhVPkpVImglnVvLJBlrm8baeJ3JcHjvSqNz3TsqJE7OyMt0aoOLkJHJ7Plbn6uKB+KKMeQ9YiTFSyWvGGwMXn3LqIKntTCDNDJxMQMKKmB65Gj2UeEx1Xt8DVysHnHf+VZ2Wy60BWrr2Ovinj4Kr5R9yszEeERxfgJKUXAow6YwuGJjlioibZ2iZ7cKG6vlBzBuG7pEkpY+lAG0TTFNvg6ExPc3GOFfLP5JnjsB/yxWtAcKD+8Bzp+F+ad8pVBe/B+mnFkbq6FGlom+xSsb3cVQQVbYhOaxT9UlxaalNL+KU5KmXLSgGNyGYkdCTGHdlHt8D1xYfcb+0b0zOnoZ88M/aAASAckXkHniMee7sQ7xSOZQsijUAEuQSohKbobRTN/1VUVINhaYGUT8ds1jq1IMBgx42xkwdQCg7n9FmEFcXD8nZsw/lHngMyHUghQcynuJXj0G6K+Bq+RYa3PwwFbqHTXGPo3rDvWqjqnELjPYtZ1f6tqA0M9DLCBv0Ok4CuWiM+tIEz018CIWeA8LpRP2BG1JkZJ5qeFMvwR8/BDH63gNy4fz9XFuaMA8SW55BaVKCNke+nH2HsNVr7hKq4GR4t9g2IWscBteWJnj+jfvtm+44wGefhj/zYiafMv9vXh58DPaeD0OefAr5P7n3lD925AhZznZYuUtjTCPP0lICKFWpJ5CkjZO6ExA3YZj/cpACh1rMoTngkB7pg2uVQyifv1+M/ukT3s8fAnX2ofm1j2RO0U7I4XzqP4DlC6CR3UDljWGULv0kij33kp3fAsvWR+EWamTOZKoYI0NnWrRHRt+slZh1DEB6gbdqLH2PF849JEobzsqJQ6CudXBbgLMqQACQ+/S/A307gaVx4Mt3gT/z2DbK9+5DsXQrCfsqtvMlQPYQ4ABCySHU1asPr21qimIcyt6EYxVZNb+IY4gmQEvwGhVI7yTqSwe4Wvmh++X3n3Ie+AlbXVvgL76A5lc/3J6M1QCKgfrUt0HNKmTpLRDrroH33MMFMbh9kLr7h7hZ3QzGBiKrl4RdZCAPZjueIXL50U48GeplhtmktE+VZ+DMAIg8AhosvRrYL4NoipziuFyen+X5sRnnho/U/Yln4S+8DnKK8L7+0TWte80Axc9XfoaO3x2Du3U9KD8E6ukPrqeLAkSxH9zRB5TWQ3QHai8QhzCBmQljfDXJjExSvKElEXQUYXkUfUeqHHkiP7HDsgLQwhTYXQDX5gG/DrIcyOU5oDELnJ0G79oB74G7LnrJbz5vPm8+f7Dn/wCP1QJfqEXQtgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMi0yOFQwOTozMTo1NiswMDowMLhrE7kAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDEtMDhUMTk6NDM6NTkrMDA6MDCdstIMAAAAIHRFWHRzb2Z0d2FyZQBodHRwczovL2ltYWdlbWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADUxMo+NU4EAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANTEyHHwD3AAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNTQ2OTc2NjM5OiA9twAAABN0RVh0VGh1bWI6OlNpemUAMjgzMDU1Qum3qxEAAABadEVYdFRodW1iOjpVUkkAZmlsZTovLy9kYXRhL3d3d3Jvb3Qvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL2ZpbGVzLzExOC8xMTg0MjQ4LnBuZybzQKIAAAAASUVORK5CYII=)}.fv-upload-and-preview .ffilepreview--filetype-any{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-wps{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-wpt{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--item-icon{margin:0 .625rem 0 0}.fv-upload-and-preview .ffilepreview--filetype-icon{display:inline-block;width:38px;height:38px;background-repeat:no-repeat;background-position:0 0;background-size:cover}.fv-upload-and-preview .smooth-dnd-ghost.uploadAndpreview--preview-item.smooth-dnd-draggable-wrapper{background-color:#dae9ff}.fv-upload-and-preview .upfile-drag-handle{position:relative;top:-2px;margin-right:5px;cursor:grab}.fv-upload-and-preview .upfile-drag-handle:active{cursor:grabbing}.fv-upload-and-preview .upload-progress{display:inline-block;font-size:.875rem;color:rgba(0,0,0,.65)}.fv-upload-and-preview .upload-progress.upload-progress-line{position:relative;width:100%}.fv-upload-and-preview .upload-progress.upload-progress-line .upload-progress-text .upload-progress-text-icon{font-size:1.25rem}.fv-upload-and-preview .upload-progress .upload-progress-outer{display:inline-block;width:100%}.fv-upload-and-preview .upload-progress .upload-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#efefef;border-radius:100px}.fv-upload-and-preview .upload-progress .upload-progress-bg,.fv-upload-and-preview .upload-progress .upload-progress-success-bg{position:relative;border-radius:100px;height:6px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.fv-upload-and-preview .upload-progress .upload-progress-success-bg{position:absolute;top:0;left:0}.fv-upload-and-preview .upload-progress .upload-progress-text{display:inline-block;width:1.75rem;margin-left:.5rem;color:rgba(0,0,0,.65);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.fv-upload-and-preview .upload-progress.upload-progress-status-active .upload-progress-bg::before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:.625rem;opacity:0;animation:upload-progress-active 2.4s ease-in-out infinite;content:""}.fv-upload-and-preview .upload-progress-show-info .upload-progress-outer{padding-right:48px;margin-right:-48px}@keyframes upload-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}100%{width:100%;opacity:0}}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn{color:var(--f-theme-03)!important;background:var(--f-aid-02)!important}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn:not([disabled]):hover{background:var(--f-theme-05)!important}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn:not([disabled]) .f-icon:hover{color:#fff;width:22px}.fv-upload-and-preview .uploadAndpreview--table .uploadAndpreview--currentfile{background-color:var(--f-aid-02)}.fv-upload-and-preview .uploadAndpreview--table .uploadAndpreview--currentfile .preview-btn{background-color:var(--f-aid-03)}.f-verify-list .list-icon,.f-verify-nums .nums-count,.f-verify-nums .nums-icon{color:var(--f-semantic-danger-01)}.f-verify-list .list-warning{color:var(--f-semantic-warning-01)}.f-verify-detail{position:absolute;left:14px;bottom:16px;z-index:900}.f-verify-detail .f-verify-detail-content{position:relative}.f-verify-detail .f-verify-detail-content .f-verify-form-main{position:absolute;padding-bottom:.5rem;left:0;bottom:1.75rem;width:28.125rem}.f-page-has-query .f-page-header .f-page-header-base,.f-page-has-scheme .f-page-header .f-page-header-base,.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-title{padding:.75rem .875rem}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content{border-radius:4px;width:100%;overflow:hidden}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-arrow{display:block;position:absolute;left:1.125rem;bottom:.25rem;width:.625rem;height:.625rem;background:0 0;border-style:solid;border-width:.3125rem;transform:translateX(-50%) rotate(45deg)}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list{position:relative}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-close{position:absolute;right:.75rem;top:.625rem;font-size:.75rem;cursor:pointer;width:1.25rem;height:1.25rem;line-height:1.25rem;text-align:center}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list{overflow-y:auto}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list-content{display:none}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list-content.active{display:block}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list{cursor:pointer;position:relative;padding:.5rem .875rem .5rem 2.5rem;list-style-type:none}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-icon{position:absolute;left:.875rem;top:.75rem;font-size:.875rem}.f-page,.f-page-root{bottom:0;position:absolute;right:0;left:0;overflow:hidden}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-con p{margin-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-con .list-title{font-size:.875rem;line-height:1.375rem}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-con .list-msg{font-size:.75rem;color:rgba(0,0,0,.45);line-height:1.25rem}.f-verify-detail .f-verify-nums{padding:.125rem .5rem;cursor:pointer}.f-verify-detail .f-verify-nums .nums-icon{margin-right:.25rem;vertical-align:middle}.f-verify-detail .f-verify-nums .nums-count{font-size:.875rem;line-height:1.25rem}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content{background:var(--f-neutral-20);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-15-rgb),.15)}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-arrow{box-shadow:2px 2px 5px rgba(var(--f-neutral-15-rgb),.08);border-color:transparent var(--f-neutral-20) var(--f-neutral-20) transparent}.f-verify-detail .f-verify-forms-title .btn-group{border-radius:14px;padding:3px;background:var(--f-aid-04)}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn{color:var(--f-text-02);border:1px solid var(--f-neutral-08);background:var(--f-neutral-12);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06);margin:0;border-radius:0}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn:first-child{border-radius:14px 0 0 14px}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn:last-child{border-radius:0 14px 14px 0}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn.disabled{color:var(--f-text-07);border-color:var(--f-neutral-05);background:var(--f-neutral-08);box-shadow:none}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn+.verify-title-btn{margin-left:-1px}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn.f-state-selected{color:var(--f-text-00);border-color:var(--f-theme-03);background:var(--f-theme-04);box-shadow:0 4px 10px 0 rgba(var(--f-theme-03),.2)}.f-verify-detail .f-verify-forms-title .f-verify-close{color:var(--f-text-07)}.f-verify-detail .f-verify-forms-list .f-verify-list-content{padding:0}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list{border-top:1px dotted var(--f-neutral-05)!important;padding:.5rem .875rem .5rem 2.5rem}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list:last-child{border:none}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-icon{color:var(--f-semantic-danger-01)}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-icon.list-warning{color:var(--f-semantic-warning-01)}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-con .list-title{font-size:.875rem;color:var(--f-text-02);line-height:1.375rem}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-con .list-msg{font-size:.75rem;color:rgba(var(--f-text-06),.9);line-height:1.25rem}.f-verify-detail .f-verify-nums{border-radius:6px!important;background:var(--f-semantic-danger-03);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-15-rgb),.15)}@font-face{font-family:FarrisIcons;font-style:normal;font-weight:400;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI2JE+JAAABjAAAAGBjbWFwTohH7gAAC/AAACWUZ2x5ZqfrFDEAADaIAAH0DGhlYWQnvvaKAAAA4AAAADZoaGVhCNUHTgAAALwAAAAkaG10eApz/50AAAHsAAAKBGxvY2GWVxNEAAAxhAAABQRtYXhwA6wBEAAAARgAAAAgbmFtZchH0mwAAiqUAAACi3Bvc3QSpDltAAItIAAAK3cAAQAAA4D/gABcBVX/9v/3BQAAAQAAAAAAAAAAAAAAAAAAAoEAAQAAAAEAAGP+/t1fDzz1AAsEAAAAAADh1NlIAAAAAOHU2Uj/9v9xBQADjAAAAAgAAgAAAAAAAAABAAACgQEEACEAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQEAgGQAAUAAAKJAswAAACPAokCzAAAAesAMgEIAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOAA7LcDgP+AAAAD3ACPAAAAAQAAAAAAAAAAAAAAAAACBAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQA//8EAP//BAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAQAABAD/+QQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/5BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/2BAD/9gQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//kEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAP//BAD//wQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEVQAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABEQAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEkgAABJIAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAASSAAAEAAAABJIAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAP/9BAAAAAQAAAAEAAAABAD//wQA//8EAP/9BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAREAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//8EAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQ8AAAENf/+BAAAAAQA//8EAAAABAD//wQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//4ETgAABAAAAAVVAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE/wAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAAHMAABAAAAAAYqAAMAAQAAACwAAwAKAAAHMAAEBf4AAAA4ACAABAAY4DLhSeIO4wrlKuYr5kPmmua85tfnBegs6SLrGOs/60/rb+t/64nrqeu568nr2evp6/nsqey3//8AAOAA4QDiAOMA5QDmAOYt5kXmvObX5wDoAOkA6wTrGutB61HrceuB65rrsOvA69Dr4evw7KDssP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAOACcAS4BSgFeAbICCAI0At4C3gLeAugDQAOEA6wD9gQSBE4EagR6BJgEqgS8BM4E3gTwBQIAAAGPAGsAZgBhAoACfgJ/An0AZwBlAGIAZAJzAnECcgJwAngAYwBsAnwCegJ7AnkAbQBoAGkAagBeAA8AEQAVABMAEgBYAFMCdgJ3AnUBrwBSAFYAUQBZAF0AXwBgAFoCbwBOAFUCXgAEAE8AWwA5ABQAOgA9AAMBrwA/AFwASwJ0AEYAQgBKADwANwA7ADgAPgAKAAgABwBAACECawJsAEgCagHpAm0AKgHoAm4AIwAkACkAJgAWAA0AJQBBAEUATABJAEQARwAoACcAIAAiADYALgAvADIBsAA1Ak4ATQBDAAkCaQBXADQAFwAMADEALQAsADMAMAArAB0AGgAZAAsAHwAbABwAGAAeAAYABQAQAFAAVAGOAYUBiQGMAmgCZwHnAkkCQAGHAYsCSAJHAY0BiAGGAYoBfAGDAX8BgQGCAYABewGEAX4BfQF1AXMBcQFyAXkBdwF6AXQBeAF2AWoBbQFvAWcBaQFsAW4BcAFoAWsBZgFiAV0BZAFfAWEBYwFeAWUBYAFDAUgBSQFAAUIBRgFHAUUBQQFPAVABTQFLAU4BTAFEAVwBWgFbAVYBVAFXAVgBVQFZAVIBUwFKAVEBAAECAQEA/wD6ASYBPQEsATsBOQEvAPsBKgE0APwBBwEJAREBCgEIAQ0BBgEFAQ4BAwEQATMBIQEgAPUAkAE3ARkBMgD4AI4AigEkAI8AiwEXAP0BOgE+AT8BMQD+ARUBEwESAR8A+QEbARQBGAEaATUBIgDzASMBKwELARwBHgEoAScBJQEtATgBNgEEAQwBFgD3APIBKQD0AS4BMAE8AR0BDwCMAI0AngCXAJ8AkQCTAJ0AqACmAKAApwClAKsAnACWAJIAlACbAJoAlQCYAH4AfACjAKQAqgCtAK4AoQB9AIEAiQCHAIQAiACAAIYAhQB7AKkB5wD2AIIAfwCDAG4AegB5AHgAdwB2AHMAdAB1AHIAcQBvAHAArACiAJkA5gDsAOsA7gDpAOoA7wDnAOMA5ADwAO0A5QDoAPEA2QDbANoA4gDcAN4A3QDfAOAA4QDXANAA0wDRANYA1QDUANIAzwDYAMYAzADIAMkAxQDOAMoAxwDNAMsAwQDAAMMAvADCALsAxAC/AL0AvgCwALkArwC1ALQAtgCyALgAsQC6ALcAswJfAlwCYAJmAmUCZAJjAmICYQJdAlsCWgJZAlMCVgJRAlICVAJVAlcCWAJQAk8CTgJNAkwBsAJLAkoCRQJGAkECQgJDAkQCMQIwAj8CPgI9AjwCOwI4AjkCOgIzAjQCNQI2AjcCMgIvAi4CLQIsAisCKgIpAigCJwImAiUCJAIjAiICIAIhAh8CHgIdAhwCGwIaAhkCGAIXAhYCFQIUAhMCEgIRAhACDwIOAg0CDAILAgoCCQIIAgcCBgIFAgQCAwICAgECAAH/Af4B/QH8AfsB+gH5AfgB9wH2AfUB9AHzAfIB8QHwAe8B7gHtAewBrwHrAeoB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdIB0QHQ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AAAAhAAA5pUAAOaVAAAAiAAA5pYAAOaWAAAAgAAA5pcAAOaXAAAAhgAA5pgAAOaYAAAAhQAA5pkAAOaZAAAAewAA5poAAOaaAAAAqQAA5rwAAOa8AAAB5wAA5tcAAObXAAAA9gAA5wAAAOcAAAAAggAA5wEAAOcBAAAAfwAA5wIAAOcCAAAAgwAA5wMAAOcDAAAAbgAA5wQAAOcEAAAAegAA5wUAAOcFAAAAeQAA6AAAAOgAAAAAeAAA6AEAAOgBAAAAdwAA6AIAAOgCAAAAdgAA6AMAAOgDAAAAcwAA6AQAAOgEAAAAdAAA6AUAAOgFAAAAdQAA6AYAAOgGAAAAcgAA6AcAAOgHAAAAcQAA6AgAAOgIAAAAbwAA6AkAAOgJAAAAcAAA6AoAAOgKAAAArAAA6AsAAOgLAAAAogAA6AwAAOgMAAAAmQAA6A0AAOgNAAAA5gAA6A4AAOgOAAAA7AAA6A8AAOgPAAAA6wAA6BAAAOgQAAAA7gAA6BEAAOgRAAAA6QAA6BIAAOgSAAAA6gAA6BMAAOgTAAAA7wAA6BQAAOgUAAAA5wAA6BUAAOgVAAAA4wAA6BYAAOgWAAAA5AAA6BcAAOgXAAAA8AAA6BgAAOgYAAAA7QAA6BkAAOgZAAAA5QAA6BoAAOgaAAAA6AAA6BsAAOgbAAAA8QAA6BwAAOgcAAAA2QAA6B0AAOgdAAAA2wAA6B4AAOgeAAAA2gAA6B8AAOgfAAAA4gAA6CAAAOggAAAA3AAA6CEAAOghAAAA3gAA6CIAAOgiAAAA3QAA6CMAAOgjAAAA3wAA6CQAAOgkAAAA4AAA6CUAAOglAAAA4QAA6CYAAOgmAAAA1wAA6CcAAOgnAAAA0AAA6CgAAOgoAAAA0wAA6CkAAOgpAAAA0QAA6CoAAOgqAAAA1gAA6CsAAOgrAAAA1QAA6CwAAOgsAAAA1AAA6QAAAOkAAAAA0gAA6QEAAOkBAAAAzwAA6QIAAOkCAAAA2AAA6QMAAOkDAAAAxgAA6QQAAOkEAAAAzAAA6QUAAOkFAAAAyAAA6QYAAOkGAAAAyQAA6QcAAOkHAAAAxQAA6QgAAOkIAAAAzgAA6QkAAOkJAAAAygAA6QoAAOkKAAAAxwAA6QsAAOkLAAAAzQAA6QwAAOkMAAAAywAA6Q0AAOkNAAAAwQAA6Q4AAOkOAAAAwAAA6Q8AAOkPAAAAwwAA6RAAAOkQAAAAvAAA6REAAOkRAAAAwgAA6RIAAOkSAAAAuwAA6RMAAOkTAAAAxAAA6RQAAOkUAAAAvwAA6RUAAOkVAAAAvQAA6RYAAOkWAAAAvgAA6RcAAOkXAAAAsAAA6RgAAOkYAAAAuQAA6RkAAOkZAAAArwAA6RoAAOkaAAAAtQAA6RsAAOkbAAAAtAAA6RwAAOkcAAAAtgAA6R0AAOkdAAAAsgAA6R4AAOkeAAAAuAAA6R8AAOkfAAAAsQAA6SAAAOkgAAAAugAA6SEAAOkhAAAAtwAA6SIAAOkiAAAAswAA6wQAAOsEAAACXwAA6wUAAOsFAAACXAAA6wYAAOsGAAACYAAA6wcAAOsHAAACZgAA6wgAAOsIAAACZQAA6wkAAOsJAAACZAAA6woAAOsKAAACYwAA6wsAAOsLAAACYgAA6wwAAOsMAAACYQAA6w0AAOsNAAACXQAA6w4AAOsOAAACWwAA6w8AAOsPAAACWgAA6xAAAOsQAAACWQAA6xEAAOsRAAACUwAA6xIAAOsSAAACVgAA6xMAAOsTAAACUQAA6xQAAOsUAAACUgAA6xUAAOsVAAACVAAA6xYAAOsWAAACVQAA6xcAAOsXAAACVwAA6xgAAOsYAAACWAAA6xoAAOsaAAACUAAA6xsAAOsbAAACTwAA6xwAAOscAAACTgAA6x0AAOsdAAACTQAA6x4AAOseAAACTAAA6x8AAOsfAAABsAAA6yAAAOsgAAACSwAA6yEAAOshAAACSgAA6yIAAOsiAAACRQAA6yMAAOsjAAACRgAA6yQAAOskAAACQQAA6yUAAOslAAACQgAA6yYAAOsmAAACQwAA6ycAAOsnAAACRAAA6ygAAOsoAAACMQAA6ykAAOspAAACMAAA6yoAAOsqAAACPwAA6ysAAOsrAAACPgAA6ywAAOssAAACPQAA6y0AAOstAAACPAAA6y4AAOsuAAACOwAA6y8AAOsvAAACOAAA6zAAAOswAAACOQAA6zEAAOsxAAACOgAA6zIAAOsyAAACMwAA6zMAAOszAAACNAAA6zQAAOs0AAACNQAA6zUAAOs1AAACNgAA6zYAAOs2AAACNwAA6zcAAOs3AAACMgAA6zgAAOs4AAACLwAA6zkAAOs5AAACLgAA6zoAAOs6AAACLQAA6zsAAOs7AAACLAAA6zwAAOs8AAACKwAA6z0AAOs9AAACKgAA6z4AAOs+AAACKQAA6z8AAOs/AAACKAAA60EAAOtBAAACJwAA60IAAOtCAAACJgAA60MAAOtDAAACJQAA60QAAOtEAAACJAAA60UAAOtFAAACIwAA60YAAOtGAAACIgAA60cAAOtHAAACIAAA60gAAOtIAAACIQAA60kAAOtJAAACHwAA60oAAOtKAAACHgAA60sAAOtLAAACHQAA60wAAOtMAAACHAAA600AAOtNAAACGwAA604AAOtOAAACGgAA608AAOtPAAACGQAA61EAAOtRAAACGAAA61IAAOtSAAACFwAA61MAAOtTAAACFgAA61QAAOtUAAACFQAA61UAAOtVAAACFAAA61YAAOtWAAACEwAA61cAAOtXAAACEgAA61gAAOtYAAACEQAA61kAAOtZAAACEAAA61oAAOtaAAACDwAA61sAAOtbAAACDgAA61wAAOtcAAACDQAA610AAOtdAAACDAAA614AAOteAAACCwAA618AAOtfAAACCgAA62AAAOtgAAACCQAA62EAAOthAAACCAAA62IAAOtiAAACBwAA62MAAOtjAAACBgAA62QAAOtkAAACBQAA62UAAOtlAAACBAAA62YAAOtmAAACAwAA62cAAOtnAAACAgAA62gAAOtoAAACAQAA62kAAOtpAAACAAAA62oAAOtqAAAB/wAA62sAAOtrAAAB/gAA62wAAOtsAAAB/QAA620AAOttAAAB/AAA624AAOtuAAAB+wAA628AAOtvAAAB+gAA63EAAOtxAAAB+QAA63IAAOtyAAAB+AAA63MAAOtzAAAB9wAA63QAAOt0AAAB9gAA63UAAOt1AAAB9QAA63YAAOt2AAAB9AAA63cAAOt3AAAB8wAA63gAAOt4AAAB8gAA63kAAOt5AAAB8QAA63oAAOt6AAAB8AAA63sAAOt7AAAB7wAA63wAAOt8AAAB7gAA630AAOt9AAAB7QAA634AAOt+AAAB7AAA638AAOt/AAABrwAA64EAAOuBAAAB6wAA64IAAOuCAAAB6gAA64MAAOuDAAAB5gAA64QAAOuEAAAB5QAA64UAAOuFAAAB5AAA64YAAOuGAAAB4wAA64cAAOuHAAAB4gAA64gAAOuIAAAB4QAA64kAAOuJAAAB4AAA65oAAOuaAAAB3wAA65sAAOubAAAB3gAA65wAAOucAAAB3QAA650AAOudAAAB3AAA654AAOueAAAB2wAA658AAOufAAAB2gAA66AAAOugAAAB2QAA66EAAOuhAAAB2AAA66IAAOuiAAAB1wAA66MAAOujAAAB1gAA66QAAOukAAAB1QAA66UAAOulAAAB1AAA66YAAOumAAAB0wAA66cAAOunAAAB0gAA66gAAOuoAAAB0QAA66kAAOupAAAB0AAA67AAAOuwAAABzwAA67EAAOuxAAABzgAA67IAAOuyAAABzQAA67MAAOuzAAABzAAA67QAAOu0AAABywAA67UAAOu1AAABygAA67YAAOu2AAAByQAA67cAAOu3AAAByAAA67gAAOu4AAABxwAA67kAAOu5AAABxgAA68AAAOvAAAABxQAA68EAAOvBAAABxAAA68IAAOvCAAABwwAA68MAAOvDAAABwgAA68QAAOvEAAABwQAA68UAAOvFAAABwAAA68YAAOvGAAABvwAA68cAAOvHAAABvgAA68gAAOvIAAABvQAA68kAAOvJAAABvAAA69AAAOvQAAABuwAA69EAAOvRAAABugAA69IAAOvSAAABuQAA69MAAOvTAAABuAAA69QAAOvUAAABtwAA69UAAOvVAAABtgAA69YAAOvWAAABtQAA69cAAOvXAAABtAAA69gAAOvYAAABswAA69kAAOvZAAABsgAA6+EAAOvhAAABsQAA6+IAAOviAAABsAAA6+MAAOvjAAABrwAA6+QAAOvkAAABrgAA6+UAAOvlAAABrQAA6+YAAOvmAAABrAAA6+cAAOvnAAABqwAA6+gAAOvoAAABqgAA6+kAAOvpAAABqQAA6/AAAOvwAAABqAAA6/EAAOvxAAABpwAA6/IAAOvyAAABpgAA6/MAAOvzAAABpQAA6/QAAOv0AAABpAAA6/UAAOv1AAABowAA6/YAAOv2AAABogAA6/cAAOv3AAABoQAA6/gAAOv4AAABoAAA6/kAAOv5AAABnwAA7KAAAOygAAABngAA7KEAAOyhAAABnQAA7KIAAOyiAAABnAAA7KMAAOyjAAABmwAA7KQAAOykAAABlgAA7KUAAOylAAABlQAA7KYAAOymAAABlAAA7KcAAOynAAABkwAA7KgAAOyoAAABkgAA7KkAAOypAAABkQAA7LAAAOywAAABkAAA7LEAAOyx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Ad8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCAAphLWNodWxpcmVuCmNsb2NrLWVjYjUKY2xvY2stZTEwNwllMTAwLXVuZG8OZTIwOS1zdWJ0aXRsZXMHZTIwOC1oZBJlMTE3LWNhbmNlbC1jaXJjbGUTZTExNi1jYW5jZWwtb3V0bGluZQxlMTNkLXByZXZpZXcLZTExNS1jYW5jZWwEc3RvcApjYWxjdWxhdG9yDHNvcnQtZGVzYy1zbQ5lbmNsb3N1cmVfZWRpdBJlMDFjLWFycm93LXBhcmVudDENZTIwYS1wbGF5bGlzdBBlMDFkLWFycm93LXJvb3QxEWUwMjAtYXJyb3dzLXN3YXAxF2UwMWYtYXJyb3dzLWRpbWVuc2lvbnMxE2UxMDQtbm9uLXJlY3VycmVuY2UVZTAxZS1hcnJvd3MtcmVzaXppbmcxEGUxMjctc29ydC1hc2Mtc20IZTE0MS1wYW4OZTIwNi12b2x1bWUtdXAKZTIwMS1wYXVzZQllMjAwLXBsYXkMZTIwNC1mb3J3YXJkEGUyMDUtdm9sdW1lLWRvd24UZTE0OS1rcGktc3RhdHVzLW9wZW4PZTIwNy12b2x1bWUtb2ZmC2UyMDMtcmV3aW5kDWUxMzItZG93bmxvYWQSZTExOS1jaGVjay1vdXRsaW5lC2UxMzMtdXBsb2FkEmUxMjMtbWludXMtY2lyY2xlMQ1lMTI0LXNvcnQtYXNjC2UxMjktZmlsdGVyC2UxMjYtdW5zb3J0C2UxMzEtbG9nb3V0CmUxMzAtbG9naW4OZTEyNS1zb3J0LWRlc2MQZTEyMC1wbHVzLWNpcmNsZRRlMTQ4LWtwaS1zdGF0dXMtaG9sZAxlMTQ1LXBsdXMtc20OZTE0NC1jb25uZWN0b3IWZTEzNS1oeXBlcmxpbmstb3Blbi1zbQtlMTM2LWxhdW5jaBRlMTQ3LWtwaS1zdGF0dXMtZGVueQllMTQzLWNhcnQLZTEzNy13aW5kb3cNZTE0Ni1taW51cy1zbQ1lMTQwLXpvb20tb3V0FGUxMzktd2luZG93LW1pbmltaXplE2UxMzQtaHlwZXJsaW5rLW9wZW4SZTExMS1saW5rLXZlcnRpY2FsCWUxMTMtbG9jawtlMTAzLXJlbG9hZA1lMTA1LXJlc2V0LXNtFGUxMTItdW5saW5rLXZlcnRpY2FsFmUxMTAtdW5saW5rLWhvcml6b250YWwOZTEwNi1yZWxvYWQtc20LZTExNC11bmxvY2sLZTEwOS1mbG9wcHkKZTExOC1jaGVjaxFlMTJhLWZpbHRlci1jbGVhchJlMTBlLWF0dGFjaG1lbnQtNDULZTEzYy13cmVuY2gaZTEyZS1maWx0ZXItYWRkLWV4cHJlc3Npb24OZTEyYi1maWx0ZXItc20PZTEwZC1hdHRhY2htZW50FWUxMmYtZmlsdGVyLWFkZC1ncm91cBJlMTFjLWNsb3NlLW91dGxpbmUYZTEyZC1maWx0ZXItc29ydC1kZXNjLXNtFGUxMGYtbGluay1ob3Jpem9udGFsCGUxMGItZGl0F2UxMmMtZmlsdGVyLXNvcnQtYXNjLXNtCmUxM2ItZ2VhcnMJZTAzMC1tZW51CWUxMDEtcmVkbwplMjBiLWF1ZGlvEmUwMjktbGF5b3V0LTEtYnktNBFlMDI3LWhhbmRsZXItZHJhZw9lMDIyLWNhdGVnb3JpemUMZTIwYy1wbGF5LXNtEmUwMzEtbW9yZS12ZXJ0aWNhbAtlMDI4LWxheW91dAxlMTNmLXpvb20taW4SZTAyMS1kcmFnLWFuZC1kcm9wEmUwMmEtbGF5b3V0LTItYnktMgllMDJlLXJvd3MKZTEwMi1yZXNldAplMTBhLXByaW50GGUwMmItbGF5b3V0LXNpZGUtYnktc2lkZRBlMDFiLWFycm93LWRyaWxsE2UwMmMtbGF5b3V0LXN0YWNrZWQMZTAyZC1jb2x1bW5zFWUwMDMtYXJyb3ctNDUtdXAtbGVmdBNlMDBhLWFycm93LWVuZC1kb3duFWUwMTEtYXJyb3dzLW5vLWNoYW5nZQtlMDBiLXNlZWstdxRlMDA5LWFycm93LWVuZC1yaWdodBdlMDAyLWFycm93LTQ1LWRvd24tbGVmdBFlMDA4LWFycm93LWVuZC11cBBlMDE4LWFycm93LXJpZ2h0D2UwMTktYXJyb3ctZG93bg9lMDFhLWFycm93LWxlZnQYZTAwMS1hcnJvdy00NS1kb3duLXJpZ2h0GGUwMTItYXJyb3ctb3ZlcmZsb3ctZG93bg1lMDE3LWFycm93LXVwFmU3MDMtbWFya2VyLXBpbi10YXJnZXQNZTgwOC1kaWdnLWJveAplODA5LWVtYWlsCWU4MDctZGlnZxJlODA2LWRlbGljaW91cy1ib3gMZTgwMy1ibG9nZ2VyEGU4MDQtYmxvZ2dlci1ib3gOZTgwNS1kZWxpY2lvdXMKZTgwMi1pbmJveAllODAxLXVzZXIKZTgwMC1zaGFyZQplNzA1LXVucGluCGU3MDQtcGluDmU2OTktZm9udC1zaXplEGU2ODktcGFuZS1mcmVlemUcZTY5MC10b2dnbGUtZnVsbC1zY3JlZW4tbW9kZRJlNjg4LXRhYmxlLXVubWVyZ2UKZTcwMS1nbG9iZRJlNjk2LWN1c3RvbS1mb3JtYXQPZTY5MS1mb3JtdWxhLWZ4EmU3MDAtZ2xvYmUtb3V0bGluZQ9lNzAyLW1hcmtlci1waW4LZTY5NC1kb2xsYXIVZTY5OC1kZWNpbWFsLWRlY3JlYXNlFWU2OTctZGVjaW1hbC1pbmNyZWFzZQtlNjkzLXN5bWJvbAxlNjk1LXBlcmNlbnQIZTY5Mi1zdW0TZTY0My10ZXh0Ym94LWhpZGRlbhVlNjQ3LXRlbXBsYXRlLW1hbmFnZXIUZTY3Mi1oeXBlcmxpbmstZ2xvYmUbZTY3My1oeXBlcmxpbmstZ2xvYmUtcmVtb3ZlDGU2NDItdGV4dGJveA9lNjQ2LWVkaXQtdG9vbHMLZTYzZC1idXR0b24KZTY3Ny10YWJsZRFlNjgyLXRhYmxlLWRlbGV0ZRVlNjc4LXRhYmxlLXByb3BlcnRpZXMQZTY4My1jZWxscy1tZXJnZRxlNjg2LWNlbGwtc3BsaXQtaG9yaXpvbnRhbGx5FmU2ODEtdGFibGUtY2VsbC1kZWxldGULZTY3NS1hbmNob3IbZTY4Ny1jY2VsbC1zcGxpdC12ZXJ0aWNhbGx5EWU4MGMtZmFjZWJvb2stYm94G2U2ODUtY2VsbHMtbWVyZ2UtdmVydGljYWxseR1lNjg0LWNlbGxzLW1lcmdlLWhvcml6b250YWxseRVlNjgwLXRhYmxlLXJvdy1kZWxldGUPZTY3OS10YWJsZS1jZWxsFGU2NzQtaHlwZXJsaW5rLWVtYWlsF2U2NzYtdGFibGUtbGlnaHQtZGlhbG9nHmU2N2MtdGFibGUtY29sdW1uLWluc2VydC1yaWdodBRlNjhmLXZhbGlkYXRpb24tZGF0YQ1lODBiLWZjYWVib29rD2U2OGEtcm93LWZyZWV6ZRJlNjhiLWNvbHVtbi1mcmVlemUbZTY3ZS10YWJsZS1yb3ctaW5zZXJ0LWJlbG93HWU2N2ItdGFibGUtY29sdW1uLWluc2VydC1sZWZ0G2U2N2QtdGFibGUtcm93LWluc2VydC1hYm92ZRplNjdhLXRhYmxlLWNlbGwtcHJvcGVydGllcxxlNjlhLWltYWdlLWFic29sdXRlLXBvc2l0aW9uEmU2OGMtdG9vbGJhci1mbG9hdBhlNjdmLXRhYmxlLWNvbHVtbi1kZWxldGUOZTgwYS1lbWFpbC1ib3gSZTY4ZC1zcGVsbC1jaGVja2VyFWU2OGUtdmFsaWRhdGlvbi14aHRtbAhlOTE5LWNzcwplOTE3LWh0bWw1B2U5MWYtdmILZTkxZC12YnByb2oUZTkyMi1maWxlLWhvcml6b250YWwIZTkxYi1leGUHZTkxYS1qcwtlOTFjLWNzcHJvagplOTIxLWNsb3VkB2U5MWUtY3MJZTkxOC1odG1sCGU5MjAtc2xuDmU5MTItZmlsZS1hc2N4D2U5MTAtZmlsZS1mbGFzaAllOTE1LWZpbG0JZTkxNi1jc3MzDWU5MTQtZmlsZS16aXANZTkwZS1maWxlLXBkZg1lOTBkLWZpbGUtcHB0EGU5MTEtZmlsZS1jb25maWcNZTkwZi1maWxlLXBzZA1lOTEzLWZpbGUtYmFjDWU5MDctZmlsZS1hZGQOZTkwMy1mb2xkZXItdXAPZTkwYS1maWxlLWV4Y2VsFWU5MDUtYWdncmVnYXRlLWZpZWxkcwllOTA2LWZpbGUIZTkwOS1jc3YIZTkwYy1tZGIQZTkwNC1mb2xkZXItbW9yZQ5lOTBiLWZpbGUtd29yZA1lOTA4LWZpbGUtdHh0EGU5MDEtZm9sZGVyLW9wZW4IZTgyNy1yc3MKZTgyOS12aW1lbwtlOTAwLWZvbGRlcgxlODI4LXJzcy1ib3gQZTgyYy15b3V0dWJlLWJveAxlODJiLXlvdXR1YmUOZTgyYS12aW1lby1ib3gRZTgyNi1kcmliYmJsZS1ib3gPZTkwMi1mb2xkZXItYWRkFmU4MWMtdGVsbC1hLWZyaWVuZC1ib3gPZTgxZS10dW1ibHItYm94C2U4MWQtdHVtYmxyEGU4MjAtdHdpdHRlci1ib3gPZTgyMi15YW1tZXItYm94C2U4MjEteWFtbWVyDGU4MjMtYmVoYW5jZRBlODI0LWJlaGFuY2UtYm94DWU4MjUtZHJpYmJibGUMZTgxZi10d2l0dGVyDmU4MTUtcGludGVyZXN0EmU4MTYtcGludGVyZXN0LWJveBFlODE5LXN0dW1ibGUtdXBvbgtlODBkLWdvb2dsZRBlODE0LW15c3BhY2UtYm94FWU4MWEtc3R1bWJsZS11cG9uLWJveA1lODExLWxpbmtlZGluEWU4MTItbGlua2VkaW4tYm94EGU4MGYtZ29vZ2xlLXBsdXMPZTgwZS1nb29nbGUtYm94D2U4MTgtcmVkZGl0LWJveBRlODEwLWdvb2dsZS1wbHVzLWJveAxlODEzLW15c3BhY2ULZTgxNy1yZWRkaXQSZTgxYi10ZWxsLWEtZnJpZW5kEHN0cmlwLWNzcy1mb3JtYXQOdmlkZW8tZXh0ZXJuYWwTc3RyaXAtc3Bhbi1lbGVtZW50cwpzZWxlY3QtYWxsGHRhYmxlLWFsaWduLWJvdHRvbS1yaWdodBNzdHJpcC1hbGwtZm9ybWF0aW5nCHRleHRhcmVhCmltYWdlLWVkaXQJdGV4dC13cmFwGHRhYmxlLWFsaWduLW1pZGRsZS1yaWdodBJ0YWJsZS1hbGlnbi1yZW1vdmUNdHJhY2stY2hhbmdlcxh0cmFjay1jaGFuZ2VzLXJlamVjdC1hbGwMYWxpZ24tcmVtb3ZlDGFsaWduLWNlbnRlcg1hbGlnbi1qdXN0aWZ5C2FsaWduLXJpZ2h0CWJvcmRlci1ubwxhcHBseS1mb3JtYXQLYm9yZGVyLWxlZnQNYm9yZGVyLWJvdHRvbQtib3JkZXJzLWFsbBdib3JkZXJzLWluc2lkZS12ZXJ0aWNhbA9ib3JkZXJzLW91dHNpZGUZYm9yZGVycy1pbnNpZGUtaG9yaXpvbnRhbARjb3B5CWNsZWFyLWNzcwpib3JkZXItdG9wDGJvcmRlci1yaWdodBtlNjcxLWh5cGVybGluay1saWdodC1kaWFsb2cRYm9yZGVycy1zaG93LWhpZGUOYm9yZGVycy1pbnNpZGUOZGljdGlvbmFyeS1hZGQLY3VzdG9tLWljb24HY29tbWVudBBkb2N1bWVudC1tYW5hZ2VyC2NvcHktZm9ybWF0D2NoYW5nZS1tYW51YWxseQ5jb21tZW50LXJlbW92ZQ1jYWxlbmRhci1kYXRlE2NvbW1lbnRzLXJlbW92ZS1hbGwQaW1hZ2UtbWFwLWVkaXRvcgNjdXQObW9kdWxlLW1hbmFnZXIFcGFzdGUSaW1hZ2UtbGlnaHQtZGlhbG9nDGNvZGUtc25pcHBldAxmb3JtLWVsZW1lbnQNbWVkaWEtbWFuYWdlcg1mbGFzaC1tYW5hZ2VyDXBhcmFncmFwaC1hZGQacGFzdGUtZnJvbS13b3JkLXN0cmlwLWZpbGUPcnVsZS1ob3Jpem9udGFsD3Bhc3RlLWZyb20td29yZA1wYXN0ZS1hcy1odG1sE3N0cmlwLWZvbnQtZWxlbWVudHMXdGFibGUtYWxpZ24tYm90dG9tLWxlZnQQZmluZC1hbmQtcmVwbGFjZRZ0YWJsZS1hbGlnbi10b3AtY2VudGVyCnBhc3RlLWh0bWwVc3RyaXAtd29yZC1mb3JtYXR0aW5nGXRhYmxlLWFsaWduLW1pZGRsZS1jZW50ZXIRZm9ybWF0LWNvZGUtYmxvY2sUdHJhY2stY2hhbmdlcy1yZWplY3QJZ3JvdXAtYm94BGZvcm0ZdGFibGUtYWxpZ24tYm90dG9tLWNlbnRlcgtzaWx2ZXJsaWdodBBwYXN0ZS1wbGFpbi10ZXh0CnNlbGVjdC1ib3gOcGFzdGUtbWFya2Rvd24XdGFibGUtYWxpZ24tbWlkZGxlLWxlZnQUdHJhY2stY2hhbmdlcy1lbmFibGUVdGFibGUtYWxpZ24tdG9wLXJpZ2h0DXN0eWxlLWJ1aWxkZXIUdGFibGUtYWxpZ24tdG9wLWxlZnQUdHJhY2stY2hhbmdlcy1hY2NlcHQYdHJhY2stY2hhbmdlcy1hY2NlcHQtYWxsEWEtZTYwNGZvbnQtZmFtaWx5EGEtZTYwOXN1Yi1zY3JpcHQWYS1lNjA1Zm9yZWdyb3VuZC1jb2xvcgphLWU2MDFib2xkCGEtZTYxMGg0E2EtZTYwOHN0cmlrZXRocm91Z2gXYS1lNjA2Y29udmVydC1sb3dlcmNhc2UXYS1lNjA3Y29udmVydC11cHBlcmNhc2UMYS1lNjAyaXRhbGljD2EtZTYwM3VuZGVybGluZRJhLWU2MWNhbGlnbi1ib3R0b20IYS1lNjBkaDEIYS1lNjBmaDMJYS1lNjBjYWxsCGEtZTYwZWgyEGEtZTYwYXN1cC1zY3JpcHQJYS1lNjBiZGl2EGEtZTYxZGFsaWduLWxlZnQPYS1lNjFhYWxpZ24tdG9wEmEtZTYxYmFsaWduLW1pZGRsZRVhLWU2MTVpbmRlbnQtaW5jcmVhc2UTYS1lNjE4aW5zZXJ0LW1pZGRsZRRhLWU2MTRsaXN0LXVub3JkZXJlZBVhLWU2MTZpbmRlbnQtZGVjcmVhc2UPYS1lNjE3aW5zZXJ0LXVwEWEtZTYxOWluc2VydC1kb3duCGEtZTYxMmg2EmEtZTYxM2xpc3Qtb3JkZXJlZAhhLWU2MTFoNRNhLWU1MjR0aHVtYm5haWxzLXVwFmEtZTUyOWZ1bGwtc2NyZWVuLWV4aXQVYS1lNTI2dGh1bWJuYWlscy1kb3duFWEtZTYwMHBhZ2UtcHJvcGVydGllcxVhLWU1Mjd0aHVtYm5haWxzLWxlZnQaYS1lNTIzYWxpZ24tYm90dG9tLWVsZW1lbnQRYS1lNTI4ZnVsbC1zY3JlZW4WYS1lNTI1dGh1bWJuYWlscy1yaWdodBFhLWU1MmFyZXNldC1jb2xvchphLWU1MjJhbGlnbi1taWRkbGUtZWxlbWVudBJhLWU1MWJiYWNrLWVsZW1lbnQZYS1lNTIwYWxpZ24tcmlnaHQtZWxlbWVudBVhLWU1MWNmb3J3YXJkLWVsZW1lbnQLYS1lNTE4c2hhcGUXYS1lNTIxYWxpZ24tdG9wLWVsZW1lbnQWYS1lNTFkYmFja3dhcmQtZWxlbWVudBNhLWU1MTlyb3VuZC1jb3JuZXJzGGEtZTUxZWFsaWduLWxlZnQtZWxlbWVudBNhLWU1MWFmcm9udC1lbGVtZW50GmEtZTUxZmFsaWduLWNlbnRlci1lbGVtZW50CmEtZTUxMGxpbmUZYS1lNTExYnJpZ2h0bmVzcy1jb250cmFzdAthLWU1MGZwYWludA9hLWU1MTVncmV5c2NhbGUNYS1lNTBlcGFsZXR0ZQ1hLWU1MTdzaGFycGVuE2EtZTUxM2ludmVydC1jb2xvcnMKYS1lNTE2Ymx1chBhLWU1MTJzYXR1cmF0aW9uEmEtZTUxNHRyYW5zcGVyYW5jeQxhLWU1MGFyb3RhdGUTYS1lNTA0em9vbS1iZXN0LWZpdAthLWU1MGRicnVzaBFhLWU1MGNyb3RhdGUtbGVmdAphLWU1MDZjcm9wE2EtZTUwOWZsaXAtdmVydGljYWwMYS1lNTA3bWlycm9yFWEtZTUwOGZsaXAtaG9yaXpvbnRhbBJhLWU1MDVpbWFnZS1yZXNpemUSYS1lNTBicm90YXRlLXJpZ2h0DWEtZTIwZXN0b3Atc20SYS1lNTAyaW1hZ2UtZXhwb3J0FGEtZTMwN3RyaS1zdGF0ZS1udWxsC2EtZTUwMWltYWdlE2EtZTMwMGhlYXJ0LW91dGxpbmUWYS1lNTAzem9vbS1hY3R1YWwtc2l6ZQxhLWUzMDhjaXJjbGULYS1lMzAxaGVhcnQSYS1lNTAwcGhvdG8tY2FtZXJhDmEtZTIwZHBhdXNlLXNtC2NvbGxhcHNlLW5lCXRodW1idGFjawtzLXRodW1idGFjawZtb3ZldG8NZmlsdGVyX2RlbGV0ZQ9maWx0ZXJfZ3JvdXBpbmcKZmlsdGVyX2FkZBNmaWx0ZXJfY2FuY2VsbGF0aW9uBnZlcm5hdgpjdy1hcnJvd2RlCGN3LWhvdGVsB2N3LXRyaXAFemhhZ2UHZGVuZ2hhbw10aXNoaXNodW9taW5nBERyYWcGYmlhbmppBmNoYWthbgJiZwRsaGp0CGR1bGltaW1hEXFpYW5taW5ncWlhbnpoYW5nBmZhbmt1aRRhLUNGX0Rlc2NlbmRpbmdPcmRlchNhLUNGX0FzY2VuZGluZ09yZGVyBWFib3V0CXl1bnhpYW94aRBlbmNsb3N1cmVfZGVsZXRlEmVuY2xvc3VyZV9kb3dubG9hZBBlbmNsb3N1cmVfdXBsb2FkEGVuY2xvc3VyZV9icm93c2UKdXBsb2FkX2JpZw9jYWxlbmRhcnNfbGluZTEJbW9yZV9saW5lDmRyb3AtZG93bl9saW5lEHBlcnNwZWN0aXZlX3ZpZXcKY2hhcnRfdmlldwlmb3JtX3ZpZXcJbGlzdF92aWV3CWNhcmRfdmlldwtyZW1vdmVfZmFjZQtkdWl6aGFuZ2Rhbg1kaXpoaXNoZW5xaW5nDWppbmd4aWFvcmVud3UHYmFpZmFuZwprZWh1Z3VhbnhpCGZheXVuZGFuCWxpYW54aXJlbg1mdWt1YW50b25nemhpD2thaXBpYW9zaGVucWluZw94aWFvc2hvdWRhY2hlbmcOeGlhb3Nob3VxaWFubGkOeGlhb3Nob3VtdWJpYW8Nc2h1anVzaGFuZ2Jhbwx4dWtlc2hhbmdwaW4Jemhlbmd6aGFvDHhpYW9zaG91eXVjZQ94aWFvc2hvdXR1YW5kdWkFaGVscDELaW5mby1jaXJjbGUKZGVwYXJ0bWVudARjb2RlBHBhdGgPZmxvd2xpbmUtbWFudWFsDWZsb3dsaW5lLW1vcmUSZmxvd2xpbmUtc2NoZWR1bGVkEWZsb3dsaW5lLWNhbmNlbGVkEGZsb3dsaW5lLXBlbmRpbmcMZmxvd2xpbmUtcnVuEGZsb3dsaW5lLWNyZWF0ZWQQZmxvd2xpbmUtcnVubmluZxBmbG93bGluZS13YWl0aW5nEGZsb3dsaW5lLXNraXBwZWQNZmxvd2xpbmUtdmlldxBmbG93bGluZS13YXJuaW5nC29yaWVudGF0aW9uBGxhc3QFZmlyc3QOeXVuaGFuZ3NoaWljb24aQ29sdW1uLWZpbHRlcmFuZGRlc2NlbmRpbmcZQ29sdW1uLWZpbHRlcmFuZGFzY2VuZGluZxxDb2x1bW5zLURlZmF1bHRmaWx0ZXJhbmRzb3J0DUNvbHVtbi1maWx0ZXISQ29sdW1ucy1kZXNjZW5kaW5nEUNvbHVtbnMtYXNjZW5kaW5nE0NvbHVtbnMtRGVmYXVsdHNvcnQPbGF1bmNocGFkLWZhY2UyCmxhdW5jaHBhZDIPZi1pY29uLWNoZWNrYm94DGYtaWNvbi1taW51cwpmLWljb24tYWRkCGRyb3Bkb3duCm5hdmlnYXRpb24Ray1pLW1lc3NhZ2VfZXJyb3ITay1pLW1lc3NhZ2Vfc3VjY2VzcwpzdWRva3UtbmV3CGxpc3QtbmV3CXRpbGVkLW5ldwxxaWVodWFuenV6aGkHcmFkaW8tMgZ0ZW5hbnQGc3Vkb2t1BXRpbGVkBWxpc3QxC3Nob3VjYW5namlhCmNvbGxlY3Rpb24DaWRlDG9jY2x1ZGUtZmFjZQdvY2NsdWRlDmxhdW5jaHBhZC1mYWNlCWxhdW5jaHBhZAtpbmZvcm1hdGlvbgdiYWNrbG9nB21lc3NhZ2UJbWF4aW1pemUxBnNlYXJjaAppbmRleC1mYWNlBWluZGV4CHl4c190ZXh0DXl4c19jb250YWluZXILeXhzX2NvbHVtbnMIeXhzX21vdmUIeXhzX2NvcHkKeXhzX2RlbGV0ZQl5eHNfbGV2ZWwJeXhzX2VhcnRoDXl4c19jdXN0b21pemUIc2lnbl9vdXQLdXNlcl9jZW50ZXIGcmVtb3ZlBnBhY2t1cAZjYW1lcmEGbmFycm93DWFtcGxpZmljYXRpb24JY2xvY2t3aXNlEGNvdW50ZXJjbG9ja3dpc2UGZWRpdG9yBHNraW4EYXJlYQhwYXNzd29yZAhsYW5ndWFnZQViYXNpYwhtaW5pbWl6ZQxtYXhpbWl6YXRpb24NbmV3LWRpbWVuc2lvbhFmaWxlLWZvbGRlci1jbG9zZRBmaWxlLWZvbGRlci1vcGVuCG5ldy1lZGl0CG5ldy1mb3JtBXdvbWFuA21hbgZyZWNvcmQEbW9yZQRsaXN0CXRlbGVwaG9uZQhmdW5jdGlvbgtwcm9kdWN0bGlzdA5hdHRhY2htZW50bGlzdBNkb2N1bWVudGluZm9ybWF0aW9uDG5ldy1maWx0cmF0ZQ5uZXctZnVsbHNjcmVlbgdyb29maW5nDUJvdHRvbXNldHRpbmcPcGFnZS10aXRsZS10YXNrEXBhZ2UtdGl0bGUtcmV2aWV3EHBhZ2UtdGl0bGUtc3RhcnQPcGFnZS10aXRsZS10eXBlEXBhZ2UtdGl0bGUtcmVjb3JkEnBhZ2UtdGl0bGUtdm91Y2hlchBwYWdlLXRpdGxlLXF1ZXJ5EXBhZ2UtdGl0bGUtbnVtYmVyEXBhZ2UtdGl0bGUtbWFuYWdlFnBhZ2UtdGl0bGUtbWFpbnRlbmFuY2UVcGFnZS10aXRsZS1kaWN0aW9uYXJ5GHBhZ2UtdGl0bGUtY29uZmlndXJhdGlvbhVwYWdlLXRpdGxlLWFkbWluaXN0ZXIRcGFnZS10aXRsZS1kZWZpbmUXdHJpLXN0YXRlLWluZGV0ZXJtaW5hdGUQcGFuZWwtcmV0cmFjdGlvbgtlZGl0LWJ1dHRvbg5pbnB1dC1sYW5ndWFnZRdhdHRyaWJ1dGUtY29uZmlndXJhdGlvbgtFbmdpbmVlcmluZwNnaXQTcmFkaW9idXR0b24tY2hlY2tlZAxzaGFwZS1jaXJjbGUQY2hlY2tib3gtY2hlY2tlZBVrLWktaG9tZS13ZWF0aGVyLWxlYWYNay1pLWhvbWUtbW9yZQ1rLWktaG9tZS1yaW5nDGstaS1ob21lLWFkZA5rLWktaG9tZS1zZXR1cA5rLWktaG9tZS13b21hbgxrLWktaG9tZS1tYW4Oay1pLXRvcF9hZ2VuY3kMay1pLXRvcF9uZXdzDGstaS10b3BfaG9tZRJrLWktdG9wX2ltX2RlZmF1bHQXay1pLXRvcF9kZXZlbG9wbWVudHRvb2wMay1pLXRvcF9tZW51DmstaS10b3Bfc2VhcmNoCmstaS10b3BfbXkPay1pLWZsYWdfdXJnZW50DGstaS1uZXh0cGFnZRBrLWktcHJldmlvdXNwYWdlE2staS1tZXNzYWdlX3JvdXRpbmUTay1pLUV4aGFsZS1EaXNjb3VudBNrLWktbW9yZS1ob3Jpem9udGFsEGstaS1tZXNzYWdlX2hlbHATay1pLW1lc3NhZ2Vfd2FybmluZxZrLWktc3RlcHMtZGVsaXZlcmdvb2RzFWstaS1zdGVwcy1yZWNlaXZhYmxlcxFrLWktc3RlcHMtaW52b2ljZRRrLWktc3RlcHMtb3V0b2ZzdG9jaxRrLWktc3RlcHMtc2V0dGxlbWVudBNrLWktc3RlcHMtdHJhbnNwb3J0DGstaS1ib29rbWFyaxBrLWktc3Rhci1vdXRsaW5lCGstaS16b29tEGstaS1jbG9zZS1jaXJjbGUQay1pLWNoZWNrLWNpcmNsZQlrLWktY2xvc2UQay1pLXBsdXMtb3V0bGluZRFrLWktbWludXMtb3V0bGluZQtrLWktcmVvcmRlcg1rLWktcmV3aW5kLXNtDmstaS1mb3J3YXJkLXNtE2staS1hcnJvdy1zZWVrLWRvd24Ray1pLWFycm93LXNlZWstdXAKay1pLWRlbGV0ZQlrLWktZ3JvdXAIay1pLWdyaWQPay1pLWdyaWQtbGF5b3V0DmstaS1hcnJvd3Mta3BpFmstaS1hcnJvdy1jaGV2cm9uLWxlZnQXay1pLWFycm93LWNoZXZyb24tcmlnaHQWay1pLWFycm93LWNoZXZyb24tZG93bhRrLWktYXJyb3ctY2hldnJvbi11cBFrLWktYXJyb3ctNjAtbGVmdAtrLWktYXJyb3ctZRFrLWktYXJyb3ctNjAtZG93bg9rLWktYXJyb3ctNjAtdXAAAAA=) format("truetype")}.f-page-root{top:0}.f-page{top:0;display:flex;flex-direction:column;background:#EFF2F4}.f-page-main{flex-shrink:1;flex-grow:1;flex-basis:0;background:var(--f-neutral-19);box-shadow:0 2px 20px 0 rgba(3,18,51,.05);margin:.5rem}.f-page-has-query .f-page-main,.f-page-has-scheme .f-page-main{box-shadow:1px 3px 4px 0 rgba(0,28,64,.04)}.f-page-main>.f-section:last-child{margin-bottom:0}.f-page-main>.f-section:last-child::after{display:none}.f-page-is-managelist .f-page-main,.f-page-is-managelistwithsidebar .f-page-main{display:flex;flex-direction:column;overflow:hidden}.f-page-has-scheme .f-page-header{border-radius:.5rem .5rem 0 0}.f-page-has-query .f-page-main{margin-top:-.75rem}.f-page-has-query .f-page-header{margin:.5rem .5rem 0;border-radius:.5rem .5rem 0 0}.f-page-navigate .f-page-main{display:flex;flex-direction:column;overflow:hidden}.f-page-navigate .f-page-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:row;flex-wrap:nowrap;overflow:hidden}.f-page-navigate .f-page-content>.col,.f-page-navigate .f-page-content>[class*=col-]{padding-left:0;padding-right:0}.f-page-navigate .f-page-content-nav{display:flex;flex-direction:column;box-shadow:none;padding:0;position:relative;z-index:100}.f-page-navigate .f-page-content-main>.f-section:last-child::after,.f-scrollspy-container .f-struct-subsub-wrapper::after{display:none}.f-page-navigate .f-page-content-nav-extend{padding:.875rem .875rem 0}.f-page-navigate .f-page-content-main{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto}.f-page-navigate .f-page-content-nav.f-component-splitter-pane{padding:0}.f-page-is-listnav .f-page-content-main{position:relative;margin:0 0 0 -.25rem}.f-page-is-listnav .f-page-content-main .f-section-query.f-section,.f-page-is-listnav .f-page-content-main .f-section-scheme.f-section{margin:.5rem .5rem 0;padding:.625rem .875rem .125rem}.f-page-is-listnav .f-page-content-main .f-page-header{margin:.5rem .5rem 0}.f-page-is-listnav .f-page-content-main .f-page-header-base{padding-left:.75rem;padding-right:.75rem}.f-page-is-listnav .f-page-content-main .f-page-footer{padding-left:.75rem;padding-right:.75rem;margin-bottom:.5rem}.f-page-is-grid-grid .f-page-content-main,.f-page-is-tree-grid .f-page-content-main{display:flex;flex-direction:column}.f-page-card .f-page-main{overflow:auto}.f-page-is-wizard .f-page-main{display:flex;flex-direction:column;overflow:hidden}.f-page-is-managelist .f-section+.f-section,.f-page-is-managelist .f-struct-wrapper+.f-struct-wrapper>.f-section{margin:.5rem 0 0}.f-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-content{flex-shrink:1;flex-grow:1;flex-basis:0}.f-struct-like-card{background:#fff;border-radius:4px;margin:0 0 .5rem}.f-page-is-mainsubcard .f-page-main,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content{margin:0}.f-page-is-mainsubcard .f-page-main::-webkit-scrollbar-track,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content::-webkit-scrollbar-track{background-color:#EFF2F4}.f-page-is-mainsubcard .f-page-main>.f-struct-like-card:last-child,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content>.f-struct-like-card:last-child{margin-bottom:0}.f-struct-subsub-wrapper{position:relative}.f-struct-subsub-wrapper::before{content:"";height:4px;background:#fff;display:block;margin:0 0 4px;box-shadow:2px 3px 3px 0 rgba(31,35,41,.08)}.f-struct-subsub-wrapper::after{content:"";position:absolute;width:16px;height:16px;background:#fff;top:-4px;left:50%;box-shadow:2px 2px 3px 0 rgba(31,35,41,.08);transform:rotate(45deg);z-index:100}.f-scrollspy-container .f-struct-subsub-wrapper{position:initial}.f-cmp-lib-portlet,.f-viewchange-content-item lib-portlet{height:100%}.f-area-hide{opacity:0;visibility:hidden;z-index:100;position:absolute;transform:scaleY(0);transform-origin:100% top;backface-visibility:hidden;transition:opacity .12s linear .12s,visibility .12s linear .12s,transform .12s linear .12s}.f-area-show{opacity:1;visibility:visible;transform:scaleY(1)}.f-page-is-listnav-with-header .f-page-content-main{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-page-content-main-extend{padding:20px 22px 0}.f-page-content-main-header{text-align:center}.f-page-content-main-header .f-title{margin:0 auto;font-size:20px}.f-page-content-main-header .f-description{margin:0 auto;color:var(--f-text-04)}.f-page-content-main-overflow{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto;padding:20px 22px}.f-page-content-main-overflow .f-struct-like-card{margin:0 auto;width:100%;max-width:1092px;box-shadow:none}.f-subgrid-by-table-footer{padding:0 .875rem}.f-subgrid-by-table-footer .btn{color:var(--f-semantic-info-01);background:var(--f-semantic-info-03);width:100%;justify-content:center;height:36px}.f-subgrid-by-table-footer .btn:disabled{color:var(--f-text-07);background:var(--f-neutral-08)}.f-section-oa-table .f-section-header .f-title{padding-left:0}.f-section-oa-table .f-section-header .f-title::before{display:none}.f-section-form.f-section{padding:.625rem 0 .25rem}.f-section-form .f-section-header{padding:0 .875rem;margin-bottom:.875rem}.f-form-layout{display:flex;flex-wrap:wrap}.f-form-layout .f-section-formgroup{flex:0 0 100%;max-width:100%}.f-section-formgroup .f-section-formgroup-legend{width:100%}.f-section-formgroup-legend{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between}.f-section-formgroup-legend .f-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;justify-content:flex-start;color:var(--f-text-04);flex-shrink:1;flex-grow:1;flex-basis:auto;padding:0 .875rem;cursor:pointer;font-size:.875rem}.f-section-formgroup-legend .f-toolbar{justify-content:flex-start}.f-section-formgroup-legend .f-toolbar .btn{border:none;display:flex;align-items:center;font-size:13px;padding-left:.375rem;padding-right:.375rem}.f-section-formgroup-legend .f-btn-collapse-expand{color:var(--f-text-04)}.f-section-formgroup-legend .f-btn-collapse-expand::after{margin:0;font-size:14px}.f-section-formgroup-legend:hover .f-title,.f-section-formgroup-legend:hover .f-toolbar .f-btn-collapse-expand{color:var(--f-theme-05)}.f-section-formgroup-legend:active .f-title,.f-section-formgroup-legend:active .f-toolbar .f-btn-collapse-expand{color:var(--f-theme-01)}.f-section-formgroup-legend.legend-with-toolbar{height:2rem}.f-section-formgroup-legend.legend-with-toolbar .f-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;flex-shrink:1;flex-grow:1;flex-basis:auto;border:1px solid var(--f-aid-08);padding:0 .875rem;height:1.875rem;background:var(--f-aid-09)}.f-section-formgroup-legend.legend-with-toolbar .f-title{font-size:.875rem;color:var(--f-text-02);flex-shrink:1;flex-grow:1;flex-basis:0;cursor:pointer}.f-section-formgroup-inputs{display:flex;flex-wrap:wrap}.f-section-formgroup.f-state-collapse .f-section-formgroup-inputs{display:none}.f-section-formgroup+.f-section-formgroup{margin:.375rem 0 0}.f-cmp-grid-is-sub{min-height:19.375rem}.farris-subgrid{min-height:25.625rem}.f-section-grid.f-section-in-main,.f-section-grid.f-section-in-managelist,.f-section-grid.f-section-in-nav{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section-grid.f-section-in-main .f-section-content,.f-section-grid.f-section-in-managelist .f-section-content,.f-section-grid.f-section-in-nav .f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-grid.f-section-in-main .f-component-grid,.f-section-grid.f-section-in-managelist .f-component-grid,.f-section-grid.f-section-in-nav .f-component-grid{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section-extend-gridfilter,.f-tmpl-staticinfo-wrapper .staticinfo--header,.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title{display:flex;align-items:center}.f-section-grid .f-component-grid{overflow:hidden}.f-grid-is-sub,.f-grid-is-subsub{height:21.875rem}.f-section-extend-gridfilter{background:var(--f-aid-02);border:1px solid;border-radius:2px;height:2.375rem;padding:.25rem .875rem}.f-page .f-page::before,.f-page-has-scheme .f-page-main .f-page-header::before,.f-page-is-listnav::before,.f-page-is-midcard::before{display:none}.f-section-extend-gridfilter>*{margin:0 .625rem 0 0}.f-grid-is-sub .f-component-grid{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden}.f-page .f-page{background:0 0}.f-page .f-page .f-page-layout{box-shadow:none}.f-page .f-page .f-page-header{margin:0}.f-page .f-page .f-page-main{margin-right:0;margin-left:0;margin-bottom:0}.f-page .f-page-has-scheme .f-section-scheme.f-section{margin-top:0;margin-right:0;margin-left:0}.f-page .f-page-has-scheme .f-page-header{margin-top:.5rem}.f-page-header,.farris-header{box-shadow:none}.f-page-header+.f-page-main,.f-page-header+.farris-split-section,.farris-header+.f-page-main,.farris-header+.farris-split-section{margin-top:0}.f-page-main{border-radius:8px 8px 12px 12px}.f-struct-like-card{box-shadow:none}.f-page.f-page-card,.f-page.f-page-is-managelist,.f-page.f-page-is-managelistwithsidebar,.f-page.f-page-is-onepage,.f-page.f-page-navigate{z-index:10}.f-page.f-page-card::before,.f-page.f-page-is-managelist::before,.f-page.f-page-is-managelistwithsidebar::before,.f-page.f-page-is-onepage::before,.f-page.f-page-navigate::before{z-index:-1;position:absolute;content:"";top:.5rem;bottom:.5rem;left:.5rem;right:.5rem;background:var(--f-neutral-18);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-16),.1);border-radius:12px}.f-page-card .f-page-header,.f-page-card .farris-header,.f-page-is-managelist .f-page-header,.f-page-is-managelist .farris-header,.f-page-is-managelistwithsidebar .f-page-header,.f-page-is-managelistwithsidebar .farris-header,.f-page-is-onepage .f-page-header,.f-page-is-onepage .farris-header,.f-page-navigate .f-page-header,.f-page-navigate .farris-header{margin:.5rem .5rem 0;background:0 0}.f-page-footer{margin-left:.5rem;margin-right:.5rem;margin-bottom:.5rem;background:0 0}.f-page-main+.f-page-footer{margin-top:-.5rem}.f-page-navigate .f-page-main{background:rgba(255,255,255,.7);margin:0 .5rem .5rem}.f-page-navigate .f-page-content-nav{border-right:1px solid var(--f-neutral-07)}.f-page-navigate .f-page-content-nav.has-resize-bar{border-right:none}.f-page-navigate .f-page-content-nav .f-page,.f-page-navigate .f-page-content-nav .farris-main-area{background:0 0}.f-page-navigate .f-page-content-main .f-page-main{background:#fff}.f-page-headerextend{margin:.5rem .5rem 0}.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content{padding:0}.f-scrollspy-tabs{position:relative;box-shadow:0 -2px 20px 0 rgba(3,18,51,.05)!important;z-index:100}.f-scrollspy-tabs .f-scrollspy-monitor-btn.active::after{background-image:var(--f-theme-11);left:14px!important;right:14px!important;width:auto!important;margin:0!important}.f-page-is-midcard .f-page-header{margin:0;background:0 0;box-shadow:none}.f-page-has-scheme .f-page-header{margin:0 .5rem;background:var(--f-neutral-19);position:relative}.f-page-has-scheme .f-page-header::before{content:"";position:absolute;top:-1px;left:0;right:0;box-shadow:0 2px 20px 0 rgba(3,18,51,.05);bottom:5px;z-index:-1;border-radius:.5rem .5rem 0 0}.f-page-has-scheme .f-page-main{margin-top:-.5rem}.f-page-is-mainsubcard .f-page-main{margin:.5rem}.f-page-is-mainsubcard .f-page-header+.f-page-main,.f-page-is-mainsubcard .farris-header+.f-page-main{margin-top:0}.f-page-is-mainsubcard .f-page-main,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content{padding:0}.f-page-is-listnav-with-header .f-page-main{background:0 0}.f-page-is-listnav-with-header .f-page-content-main{background:var(--f-neutral-18)}.f-page-is-listnav .f-page-content,.f-page-is-listnav .f-page-content .f-page-content-main .f-page-card,.f-page-is-listnav .f-page-content .f-page-content-main .f-page-is-managelist,.f-page-is-listnav .f-page-content .f-page-content-nav .f-page{background:0 0}.f-page-is-listnav>.f-page-main{margin:.5rem}.f-page-is-listnav .f-page-content .f-page-content-nav{padding:0;box-shadow:0 0 8px 0 rgba(0,28,64,.08);border-right:none}.f-page-is-listnav .f-page-content .f-page-content-nav .f-page::before{top:0;left:0;right:0;bottom:0;border-radius:0;display:block}.f-page-is-listnav .f-page-content .f-page-content-main{margin:0}.f-page-is-listnav .f-page-content .f-page-content-main .f-page-card::before,.f-page-is-listnav .f-page-content .f-page-content-main .f-page-is-managelist::before{top:0;left:0;right:0;bottom:0;border-radius:0;display:block}.f-page .f-list-nav .f-list-nav-in{background:0 0!important;box-shadow:none!important}.f-page.f-page-is-midcard{overflow-y:auto;display:block}.f-page.f-page-is-midcard::-webkit-scrollbar-track{background-color:#EFF2F4}.f-page-layout{background:var(--f-neutral-19);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-16),.1);border-radius:12px;margin:1rem}.f-page-layout .f-page-header{box-shadow:none}.f-page-layout .f-page-header .f-page-header-base{padding-top:1rem;padding-bottom:1rem}.f-page-container{margin:0 auto}@media (min-width:888px){.f-page-container{width:80%}.farris-form .farris-group-wrap{max-width:26.625rem}.farris-form .farris-group-auto .farris-group-wrap,.farris-form-auto .farris-group-wrap{max-width:none}}@media (min-width:1200px){.f-page-container{width:80%}}@media (min-width:1690px){.f-page-container{width:60%}}.f-btn-wrapper{padding-top:18px;padding-bottom:16px;text-align:center}.f-btn-wrapper .btn-lg{margin:0 6px}.f-tmpl-staticinfo-top{font-size:12px;color:rgba(0,0,0,.45);padding:0 0 40px}.f-tmpl-staticinfo-wrapper{background:rgba(42,135,255,.05);border:1px solid rgba(42,135,255,.2);border-radius:3px;padding:14px 20px 6px;margin:0 0 6px}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-icon{margin:0 0 0 12px;border:1px solid #80B8FF;background:#D8E9FF;color:#4796FF;text-align:center;border-radius:2px}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-icon:before{font-size:12px;line-height:14px;display:block}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-icon.f-icon-woman{color:#FF7E7E;border-color:#FCABAB;background:#FFE9E9}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-text{font-size:17px;color:#2D2F33;line-height:30px;margin:0}.f-tmpl-staticinfo-wrapper .staticinfo--content{padding:12px 0 0}.f-tmpl-staticinfo-wrapper .staticinfo--list{display:flex;margin:0 -14px 0 0;flex-wrap:wrap}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item{position:relative;padding:0 14px 0 0;margin:0 14px 8px 0;color:#36434D;font-size:14px;display:flex;align-items:center}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item:last-child::after,.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select .custom-control{display:none}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item .f-icon{color:#878D99;font-size:13px;margin:0 4px 0 0}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item .f-title{margin:0 4px 0 0}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item::after{content:"";height:10px;width:1px;background:#E4E7EF;top:50%;margin-top:-5px;right:0;position:absolute}.f-section-scheme.f-section{background:0 0;margin:.5rem .5rem 0;padding:.625rem .875rem .25rem;box-shadow:none;border-radius:6px 6px 0 0}.f-section-like-query.f-section,.f-section-query.f-section{background:var(--f-neutral-19);margin:.5rem .5rem 0;padding:.625rem .875rem .25rem}.f-section-like-query .f-list-filter.list-filter-autolabel,.f-section-query .f-list-filter.list-filter-autolabel{padding-bottom:0!important}.f-section-like-query.f-section-form{margin:0!important;padding:.625rem 0 .25rem!important}.f-page-child-fill{flex-direction:column;flex:1 1 0;display:flex!important}.f-page-child-fill .f-struct-like-card-child-fill{display:flex;flex-direction:column;flex:1 1 0;overflow-y:auto}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child{flex:1 1 0;flex-direction:column;display:flex;min-height:26.875rem}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child:has(>.f-section-accordion.f-state-collapse){min-height:unset;display:block;flex:initial}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child .f-section .f-component-tabs{flex:1 1 0;display:flex!important;flex-direction:column!important;overflow:hidden}.f-page-child-fill .f-struct-wrapper-child .f-struct-is-subgrid{flex:1 1 0;flex-direction:column;display:flex}.f-page-child-fill .f-struct-wrapper-child .f-grid-is-sub{height:auto;flex:1 1 0;flex-direction:column;display:flex}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child .f-section .f-multiview-fill,.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child .f-section .f-multiview-fill .f-viewchange-content-item{display:flex;flex-direction:column;flex:1 1 0}.f-page-child-fill .f-struct-wrapper-child .f-section.f-section-fill .f-section-content{overflow:auto}.f-tmpl-subgrid-by-card{position:relative}.f-tmpl-subgrid-by-card .subgrid-by-card-item{padding:12px 12px 10px 40px;border-bottom:1px solid #E9E9E9;position:relative}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--order{position:absolute;top:16px;left:14px;border-radius:2px;background:#51BD78;line-height:1rem;color:#fff;font-size:12px;text-align:center;padding:0 2px;min-width:16px}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--header{padding:0;position:relative;margin:0 0 8px}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--header .card-item--toolbar{position:absolute;right:0;top:0}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--detail,.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--title{font-size:1rem}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--detail{font-size:14px;padding:0;color:rgba(0,0,0,.75)}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--detail .card-item--item{margin-bottom:4px}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select{position:absolute;width:20px;height:20px;right:0;bottom:0}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select::before{position:absolute;font-size:12px;content:"\e118";color:#fff;font-family:FarrisIcons;z-index:100;right:0;bottom:-3px}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select::after{content:"";width:20px;height:20px;border:10px solid #fff;border-color:#fff #E6E6E6 #e6e6e6 #fff;position:absolute;bottom:0;right:0}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-listview-active .subgrid-by-card-item{background:linear-gradient(270deg,rgba(235,244,255,.6) 0,#EBF4FF 100%)}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-listview-active .f-list-select::after{border-color:#fff #63B7FF #63B7FF #fff}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-tmpl-subgrid-by-card:hover .f-list-select::after{border-color:#fff #2A87FF #2A87FF #fff}.f-tmpl-subgrid-by-card-list .subgrid-by-card-footer{margin:8px 0 0;border:1px dashed #D9D9D9;height:28px}.f-tmpl-subgrid-by-card-list .subgrid-by-card-footer .btn{display:block;text-align:center;width:100%;height:100%}.farris-split-section{background:var(--f-neutral-19);box-shadow:0 2px 20px 0 rgba(3,18,51,.05);border-radius:8px;margin:.5rem;overflow:hidden;flex-wrap:nowrap}.farris-split-section .farris-lsection{padding:.875rem;box-shadow:1px 1px 4px 0 rgba(0,28,64,.1)}.farris-header,.farris-header+.farris-header{box-shadow:none}.farris-split-section .farris-rsection{padding:.875rem}.f-form-next-tab{margin-bottom:.3125rem!important}.farris-header{min-height:2.875rem;padding:.75rem .875rem;flex-shrink:0;background:var(--f-neutral-00)}.farris-form-title{margin:0;color:var(--f-text-01);font-size:1.0625rem;line-height:1.625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.farris-card-content-bg .farris-panel .card-body{padding:.9375rem 0 0;background:var(--f-neutral-00)}.farris-card-section{padding:.875rem 0 .5rem}.farris-main-area{top:0;bottom:0;position:absolute;right:0;left:0;margin:0 auto;display:flex;background:#EFF2F4;overflow:hidden}.farris-cardpart-title{font-size:1rem;line-height:1.375rem;color:var(--f-text-01);margin:0 0 .75rem}.farris-grid-toolbar{display:flex;margin:0 0 .5rem;flex-shrink:0}.farris-grid-toolbar .farris-grid-title{padding:0;margin:0;font-size:1rem;line-height:1.375rem;color:var(--f-text-01)}.f-header-navbar{padding:0}.form-control{display:block;width:100%;height:calc(1.5357375rem + 2px);padding:.1875rem .5rem;font-size:.8125rem;line-height:1.4286;color:var(--f-text-02);background-color:var(--f-neutral-12);background-clip:padding-box;border:1px solid var(--f-neutral-04);border-radius:6px;box-shadow:0 0 0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:var(--f-text-02);background-color:var(--f-neutral-12);border-color:var(--f-theme-08);outline:0;box-shadow:0 0 0,0 0 4px 2px rgba(99,136,255,.12)}.form-control::-moz-placeholder{color:var(--f-text-09);opacity:1}.form-control::placeholder{color:var(--f-text-09);opacity:1}.form-control:disabled,.form-control[readonly]{background-color:var(--f-neutral-12);opacity:1}select.form-control:focus::-ms-value{color:var(--f-text-02);background-color:var(--f-neutral-12)}.form-control-file,.form-control-range{display:block;width:100%}.form-control-plaintext{display:block;width:100%;padding-top:.1875rem;padding-bottom:.1875rem;margin-bottom:0;line-height:1.4286;color:var(--f-text-01);background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.32145rem + 2px);padding:.125rem .4375rem;font-size:.75rem;line-height:1.4286;border-radius:6px}.form-control-lg{height:calc(1.750025rem + 2px);padding:.25rem .3125rem;font-size:.875rem;line-height:1.4286;border-radius:6px}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:var(--f-text-08)}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.col-form-label{font-size:inherit;line-height:1.4286}.col-form-label-lg{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.4286}.col-form-label-sm{padding-top:calc(.125rem + 1px);padding-bottom:calc(.125rem + 1px);font-size:.75rem;line-height:1.4286}.form-group{margin-bottom:.375rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex-grow:0;flex-shrink:0;flex-basis:auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.farris-form{flex-shrink:0}.farris-input-wrap{display:block;position:relative}.farris-input-wrap .form-control{width:100%;display:block}.farris-input-wrap .form-control.form-control-invalid{border-color:var(--f-semantic-danger-01)}.farris-input-wrap .form-control.form-control-invalid:focus{box-shadow:0 0 2px 1px rgba(244,97,96,.3)}.farris-input-wrap .input-group .form-control{width:1%}.farris-input-wrap .farris-feedback{position:absolute;top:100%;left:0;padding:.1875rem .5rem;z-index:122;display:none;border-radius:6px;transition:all .2s linear;cursor:pointer}.farris-input-wrap .farris-feedback .f-feedback-message{font-size:.8125rem;line-height:1.4286}.farris-input-wrap .farris-feedback .f-feedback-icon{font-size:14px}.farris-input-wrap .farris-feedback.f-state-invalid,.farris-input-wrap .farris-feedback.f-state-valid{display:block}.farris-input-wrap .farris-feedback.f-state-invalid{background:var(--f-semantic-danger-03);color:var(--f-semantic-danger-01)}.farris-input-wrap .farris-feedback.f-state-valid{background:var(--f-semantic-success-03);color:var(--f-semantic-success-01)}.farris-form-group{flex-wrap:nowrap!important}.farris-form-group .col-form-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.farris-form-group .farris-input-wrap .custom-control-label{display:inline}.farris-form-group .farris-input-wrap .custom-checkbox,.farris-form-group .farris-input-wrap .custom-radio{margin-bottom:0;margin-top:.125rem}.farris-label-info{padding:0 .25rem 0 0;flex-shrink:0}.farris-form-controls-inline .farris-group-wrap .farris-input-wrap,.form-inline .farris-input-wrap{flex-shrink:1;flex-grow:1;flex-basis:auto;min-width:1px}.farris-form-controls-inline .farris-group-wrap .col-form-label,.form-inline .col-form-label{display:flex;align-items:center;justify-content:flex-end!important;flex-direction:row!important}.farris-form-controls-inline .farris-group-wrap,.farris-form-inline{display:block}.farris-form-controls-inline .farris-group-wrap .col-form-label,.farris-form-inline .col-form-label{width:6rem;flex-shrink:0;margin-right:.625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;justify-content:flex-end!important;flex-direction:row!important;align-self:start}.farris-form-controls-inline .farris-group-wrap .col-form-label>*,.farris-form-inline .col-form-label>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.farris-form-controls-inline .farris-group-wrap .col-form-label.col-form-label-multi,.farris-form-inline .col-form-label.col-form-label-multi{word-break:break-all;white-space:initial}.farris-form-controls-inline .farris-group-wrap .col-form-label.col-form-label-multi .farris-label-info,.farris-form-inline .col-form-label.col-form-label-multi .farris-label-info{align-self:flex-start;line-height:1.4286}.farris-form-controls-inline .farris-group-wrap .col-form-label.col-form-label-multi .farris-label-text,.farris-form-inline .col-form-label.col-form-label-multi .farris-label-text{white-space:initial;text-align:right;max-height:2.321475rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.farris-form-controls-inline .farris-group-wrap .form-group,.farris-form-inline .form-group{margin-bottom:.5rem;flex-wrap:nowrap!important}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap,.form-inline .farris-group-multi-label .farris-group-wrap{margin-bottom:0}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label,.form-inline .farris-group-multi-label .farris-group-wrap .col-form-label{padding-top:0;padding-bottom:0;word-break:break-all;white-space:initial}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-info,.form-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-info{align-self:flex-start;line-height:1.4286}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-text,.form-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-text{white-space:pre-wrap;text-align:right;max-height:2.321475rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .farris-input-wrap,.form-inline .farris-group-multi-label .farris-group-wrap .farris-input-wrap{align-self:flex-start}.farris-form-controls-inline.f-form-label-sm .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-sm .col-form-label{width:4.25rem}.farris-form-controls-inline.f-form-label-lg .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-lg .col-form-label{width:7.75rem}.farris-form-controls-inline.f-form-label-xl .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-xl .col-form-label{width:9.5rem}.farris-form-controls-inline.f-form-label-el .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-el .col-form-label{width:13rem}.farris-form-controls-inline .f-empty-input-placeholder,.farris-form-inline .f-empty-input-placeholder{padding-top:0;margin-top:0;margin-bottom:.5rem}.farris-form-controls-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.farris-form-controls-inline .farris-group-ver .col-form-label,.farris-form-controls-inline .farris-group-ver .form-group{display:block}.f-checkradio-no-label .farris-form-controls-inline .col-form-label,.f-checkradio-no-label .farris-form-inline .col-form-label{width:1px;overflow:hidden;height:calc(1.5357375rem + 1px * 2)}.f-checkradio-no-label .farris-form-controls-inline .custom-checkbox,.f-checkradio-no-label .farris-form-controls-inline .custom-radio,.f-checkradio-no-label .farris-form-inline .custom-checkbox,.f-checkradio-no-label .farris-form-inline .custom-radio{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-form-lable-auto .col-form-label{width:auto!important}.farris-form-controls-inline .f-checkradio-no-label .col-form-label,.farris-form-inline .f-checkradio-no-label .col-form-label{width:1px;overflow:hidden;height:calc(1.4286 * 1.4286 + .1875rem * 2 + 1px * 2)}.custom-control-label{margin-left:0}.f-input-underline .form-control{border-radius:0;background:0 0;border-width:0 0 1px;border-color:var(--f-neutral-02);border-style:solid}.f-input-underline .form-control:focus{background:0 0;border-color:var(--f-theme-08);color:var(--f-text-02);box-shadow:none}.f-input-underline .form-control:disabled,.f-input-underline .form-control:disabled:hover{background:0 0;border-color:var(--f-neutral-04);border-style:dashed;color:var(--f-text-02)}.f-input-underline .form-control:disabled::-moz-placeholder,.f-input-underline .form-control[readonly]::-moz-placeholder{color:var(--f-text-09)}.f-input-underline .form-control:disabled::placeholder,.f-input-underline .form-control[readonly]::placeholder{color:var(--f-text-09)}.f-input-underline .form-control[readonly],.f-input-underline .form-control[readonly]:hover{background:0 0;border-color:var(--f-neutral-04);border-style:dashed;color:var(--f-text-02)}.f-input-underline .f-cmp-inputgroup.actived .input-group{box-shadow:none}.f-input-underline .input-group{border-radius:0;border-width:0 0 1px;border-color:var(--f-neutral-02);border-style:solid}.f-input-underline .input-group .form-control{border:0}.f-input-underline .input-group.f-state-disabled,.f-input-underline .input-group.f-state-readonly{border-color:var(--f-neutral-04);border-style:dashed}.f-input-underline .input-group.f-state-focus{box-shadow:none}.f-state-form-view .farris-group-wrap .farris-label-text{color:var(--f-text-02)}.f-state-form-view .form-control:focus{background:var(--f-neutral-12);border-color:transparent;color:var(--f-text-02);box-shadow:none}.f-state-form-view .form-control:disabled,.f-state-form-view .form-control:disabled:hover,.f-state-form-view .form-control[readonly],.f-state-form-view .form-control[readonly]:hover{background:var(--f-neutral-12);border-color:transparent;color:var(--f-text-02)}.f-state-form-view .input-group,.f-state-form-view .input-group.f-state-disabled,.f-state-form-view .input-group.f-state-readonly{border-color:transparent}.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-dirty .input-group,.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-dirty .input-group:hover,.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-touched .input-group,.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-touched .input-group:hover,.farris-input-wrap .form-control.ng-invalid.ng-dirty,.farris-input-wrap .form-control.ng-invalid.ng-touched{border-color:#dc3545}.f-form-controls-fixed-with .farris-input-wrap{width:3.75rem}.f-checkradio-single{margin:0;padding:0;width:1rem;height:1rem;min-height:1rem;display:inline-flex}.f-checkradio-single .custom-control-label::after,.f-checkradio-single .custom-control-label::before{top:0;left:0}.f-form-table{width:100%;table-layout:fixed}.f-form-table td{padding-left:14px;padding-right:14px}.farris-input-wrap .form-control.ng-invalid.ng-dirty:focus,.farris-input-wrap .form-control.ng-invalid.ng-touched:focus{box-shadow:0 0 2px 1px rgba(220,53,69,.3)}.f-form-state-default .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-input-wrap .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-12)}.f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-02);background:var(--f-neutral-12)!important}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-12)}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)!important}.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-create .farris-input-wrap .form-control:disabled,.f-form-state-create .farris-input-wrap .form-control[readonly],.f-form-state-edit .farris-input-wrap .form-control:disabled,.f-form-state-edit .farris-input-wrap .form-control[readonly],.f-input-text-light .farris-input-wrap .form-control:disabled,.f-input-text-light .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-create .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-edit .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-edit .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-input-text-light .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-input-text-light .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-create .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-component-timepicker .input-group .form-control[readonly],.f-input-text-light .f-cmp-inputgroup .input-group .form-control:disabled,.f-input-text-light .f-cmp-inputgroup .input-group .form-control[readonly],.f-input-text-light .f-cmp-number-spinner .input-group .form-control:disabled,.f-input-text-light .f-cmp-number-spinner .input-group .form-control[readonly],.f-input-text-light .f-component-timepicker .input-group .form-control:disabled,.f-input-text-light .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-component-timepicker .input-group.f-state-readonly,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly,.f-input-text-light .f-component-timepicker .input-group.f-state-disabled,.f-input-text-light .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-create .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-create .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .form-control,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-input-text-light .f-component-timepicker .input-group.f-state-disabled .form-control,.f-input-text-light .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-create .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-edit .f-component-timepicker .input-group.f-state-editable .form-control,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-input-text-light .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-create .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-create .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .k-autocomplete.k-state-disabled,.f-input-text-light .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-create .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-autocomplete,.f-input-text-light .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .farris-editor.farris-editor-readonly .mce-container,.f-form-state-edit .farris-editor.farris-editor-readonly .mce-container,.f-input-text-light .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-create .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .farris-html-editor .ql-container.ql-disabled,.f-input-text-light .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-create .f-form-state-default .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control[readonly],.f-input-text-light .f-form-state-default .farris-input-wrap .form-control:disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-create .f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-input-text-light .f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-input-text-light .f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-02);background:var(--f-neutral-12)!important}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .farris-editor.farris-editor-readonly .mce-container,.f-form-state-edit .f-form-state-default .farris-editor.farris-editor-readonly .mce-container,.f-input-text-light .f-form-state-default .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-html-editor .ql-container.ql-disabled,.f-input-text-light .f-form-state-default .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)!important}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-default .f-form-state-create .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control[readonly],.f-form-state-default .f-input-text-light .farris-input-wrap .form-control:disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-form-state-create .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-default .f-input-text-light .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-input-text-light .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-input-text-light .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-default .f-form-state-create .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .farris-editor.farris-editor-readonly .mce-container,.f-form-state-default .f-form-state-edit .farris-editor.farris-editor-readonly .mce-container,.f-form-state-default .f-input-text-light .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-default .f-form-state-create .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-input-text-light .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:0 0 1px!important;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:0 0 1px!important;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-pretend-lines .f-form-control-text,.f-form-pretend-lines .f-form-control-textarea{border-width:1px!important;color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.form-group--has-tips{position:relative}.form-group--has-tips .farris-label-tips{position:absolute;right:0;bottom:calc(.75rem + 1px);margin-bottom:-7px}.farris-label-tips,.farris-label-tips--highlight{display:inline-block;width:14px;height:14px;border:1px solid var(--f-theme-03);background:var(--f-aid-04);color:var(--f-theme-03);border-radius:7px;line-height:1;text-align:center}.farris-label-tips .f-icon,.farris-label-tips--highlight .f-icon{font-size:13px;vertical-align:top;transform:scale(.7)}.badge,.farris-label-tips--highlight .f-icon{vertical-align:baseline}.farris-label-tips--highlight:has(.f-icon-question),.farris-label-tips:has(.f-icon-question){border-color:var(--f-semantic-warning-01)}.farris-label-tips--highlight{border:none;color:#fff;background-image:linear-gradient(225deg,#FFB362 0,#FF8538 100%)}.form-label-plaintext .farris-label-text{color:var(--f-text-08)}.form-row{margin-right:-.5rem;margin-left:-.5rem}.form-row>.col,.form-row>[class*=col-]{padding-right:.5rem;padding-left:.5rem}.col-form-label{padding-top:0;padding-bottom:0;margin-bottom:.375rem;margin-left:0}.farris-form-controls-inline .farris-group-wrap .col-form-label,.farris-form-inline .col-form-label{padding-top:calc(.1875rem + 1px);padding-bottom:calc(.1875rem + 1px);margin-bottom:0}.f-list-view-content .f-list-view-group .f-list-content .f-tmpl-card--header-multicontent01 .header-multicontent01--content .header-multicontent01--footer{min-height:31px}.f-component-wizard-page-detail-footer{border-top:1px solid var(--f-neutral-08);padding:.75rem .875rem .875rem}.f-tmpl-card--header-multicontent01{background:#FEFEFF;border:1px solid #E4E7EF;border-radius:4px;width:19.375rem;margin:0 1rem 1rem 0;box-shadow:0 2px 10px 0 rgba(0,25,58,.1)}.f-tmpl-card--header-multicontent01 .header-multicontent01--header{color:#fff;border-radius:4px;height:2.5rem;padding:0 1.375rem;position:relative;background:linear-gradient(225deg,var(--f-aid-01),var(--f-theme-03))}.f-tmpl-card--header-multicontent01 .header-multicontent01--header .f-title{font-size:1rem;line-height:2.5rem;margin:0}.f-tmpl-card--header-multicontent01 .header-multicontent01--header .f-state{text-align:center;position:absolute;top:-1px;right:-1px;width:3.75rem;height:1.5rem;line-height:1.5rem;color:#fff;font-size:.75rem}.f-tmpl-card--header-multicontent01 .header-multicontent01--header .f-state span{display:block;border-radius:0 0 0 6px}.f-tmpl-card--header-multicontent01 .header-multicontent01--content{padding:1rem 1.375rem;position:relative}.f-tmpl-card--header-multicontent01 .header-multicontent01--content .f-title{font-size:1rem;height:22px}.f-tmpl-card--header-multicontent01 .header-multicontent01--content p{margin:0 0 .5rem}.f-tmpl-card--header-multicontent01 .header-multicontent01--content .f-state{position:absolute;right:0;top:13px}.f-tmpl-card--header-multicontent01 .header-multicontent01--content .f-state span{border-radius:4px 0 0 4px;padding-top:4px;padding-bottom:4px}.f-tmpl-card--header-multicontent01 .header-multicontent01--footer .f-emphasize{font-size:1.375rem;color:#F7962A}.f-tmpl-card--header-multicontent01 .header-multicontent01--footer .f-toolbar{margin:0}.f-tmpl-card--header-multicontent01 .header-multicontent01--footer .f-toolbar span{cursor:pointer;margin:0 1rem 0 0}.f-tmpl-list--columns01{display:flex;flex-wrap:no-wrap;border:1px solid #ddd;position:relative;margin:-1px 8px 0;flex-direction:row;padding:20px 8px 12px;align-items:center}.f-tmpl-list--columns01 p{margin-bottom:4px}.f-tmpl-list--columns01 .f-state{position:absolute;top:-1px;left:0}.f-tmpl-list--columns01 .f-state span{border-radius:0 0 4px 4px;padding-left:12px;padding-right:11px}.f-tmpl-list--columns01 .f-emphasize{font-size:1.375rem;color:#F7962A}.f-template-common-row{padding:12px 16px;align-items:center}.f-template-common-row .item-action-primary{display:inline-block;margin-right:16px;width:60px;height:60px;border-radius:50%;overflow:hidden}.f-template-common-row .item-action-primary .ap-img{display:block;width:60px;height:60px;border-radius:50%}.f-template-common-row .listview-item-content{border-bottom:1px solid #d9d9d9;flex:1 1 auto}.f-template-common-row .listview-item-content .listview-item-main{flex-grow:1;flex-shrink:1;flex-basis:0}.f-template-common-row .listview-item-content .listview-item-title{font-size:16px;color:rgba(0,0,0,.85)}.f-template-common-row .listview-item-content .listview-item-subtitle{font-size:14px;color:rgba(0,0,0,.45)}.badge-pill-success,.badge-success{color:#fff}.f-template-common-row .listview-item-content .listview-item-btns .btn{margin-left:6px;margin-right:6px}.f-listview-active .f-tmpl-list--columns01{box-shadow:0 2px 10px 0 rgba(0,25,58,.1)}.badge-arrow-left-success,.badge-arrow-right-success,.badge-pill-success,.badge-round-success,.badge-success{background:var(--f-semantic-success-01)}.f-listview-active .f-template-common-row .listview-item-content{border-color:var(--f-theme-03)}.f-page-is-onepage .f-onepage-tabs{margin:0 .5rem}.f-onepage-content{overflow-y:auto}.badge{display:inline-block;padding:.1875rem .5rem;font-size:.75rem;line-height:1;text-align:center;white-space:nowrap;border-radius:6px}.badge-pill,.badge-pill-border-success,.badge-pill-success{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-border-arrow-left-success,.badge-border-success,.badge-pill-border-success{color:var(--f-semantic-success-01);background:var(--f-semantic-success-03)}.badge-pill-border-success{border:1px solid var(--f-semantic-success-01)}.badge-border-success{padding:.125rem .4375rem;border:1px solid var(--f-semantic-success-02);border-radius:2px}.badge-border-arrow-left-success{border:1px solid var(--f-semantic-success-02);position:relative;margin-left:12px}.badge-border-arrow-left-success::after,.badge-border-arrow-left-success::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-success::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-success-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-success::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-success-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-success{position:relative;margin-right:12px}.badge-border-arrow-right-success::after,.badge-border-arrow-right-success::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-success::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-success-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-success::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-success-03);border-width:5px 0 5px 10px}.badge-arrow-left-success::before,.badge-arrow-right-success::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-success{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-success::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-success-01)}.badge-arrow-right-success{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-success::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-success-01)}.badge-round-success{width:6px;height:6px;border-radius:3px;line-height:1;overflow:hidden;padding:0}.badge-round-outer-success{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-success-01),.18);border-radius:7px}.badge-round-outer-success::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-semantic-success-01)}.badge-pill-border-info,.badge-pill-info{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-info,.badge-pill-info{color:#fff;background:var(--f-semantic-info-01)}.badge-border-arrow-left-info,.badge-border-info,.badge-pill-border-info{color:var(--f-semantic-info-01);background:var(--f-semantic-info-03)}.badge-pill-border-info{border:1px solid var(--f-semantic-info-01)}.badge-border-info{padding:.125rem .4375rem;border:1px solid var(--f-semantic-info-02);border-radius:2px}.badge-border-arrow-left-info{border:1px solid var(--f-semantic-info-02);position:relative;margin-left:12px}.badge-arrow-left-info,.badge-arrow-right-info,.badge-round-info{background:var(--f-semantic-info-01)}.badge-border-arrow-left-info::after,.badge-border-arrow-left-info::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-info::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-info-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-info::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-info{position:relative;margin-right:12px}.badge-border-arrow-right-info::after,.badge-border-arrow-right-info::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-round-info,.badge-round-warning{width:6px;border-radius:3px;padding:0;display:inline-block!important;line-height:1;overflow:hidden;height:6px}.badge-border-arrow-right-info::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-info-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-info::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 0 5px 10px}.badge-arrow-left-info::before,.badge-arrow-right-info::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent}.badge-arrow-left-info{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-info::before{content:"";position:absolute;top:50%;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-info-01)}.badge-arrow-right-info{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-info::before,.badge-round-outer-info::after{position:absolute;content:"";top:50%}.badge-arrow-right-info::before{border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-info-01)}.badge-round-outer-info{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-info-01),.18);border-radius:7px}.badge-round-outer-info::after{width:8px;height:8px;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-semantic-info-01)}.badge-pill-border-warning,.badge-pill-warning{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-arrow-left-warning,.badge-arrow-right-warning,.badge-pill-warning,.badge-round-outer-warning::after,.badge-round-warning,.badge-warning{background:var(--f-semantic-warning-01)}.badge-pill-warning,.badge-warning{color:#fff}.badge-border-arrow-left-warning,.badge-border-warning,.badge-pill-border-warning{color:var(--f-semantic-warning-01);background:var(--f-semantic-warning-03)}.badge-pill-border-warning{border:1px solid var(--f-semantic-warning-01)}.badge-border-warning{padding:.125rem .4375rem;border:1px solid var(--f-semantic-warning-02);border-radius:2px}.badge-border-arrow-left-warning{border:1px solid var(--f-semantic-warning-02);position:relative;margin-left:12px}.badge-border-arrow-left-warning::after,.badge-border-arrow-left-warning::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-warning::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-warning-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-warning::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-warning-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-warning{position:relative;margin-right:12px}.badge-border-arrow-right-warning::after,.badge-border-arrow-right-warning::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-warning::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-warning-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-warning::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-warning-03);border-width:5px 0 5px 10px}.badge-arrow-left-warning::before,.badge-arrow-right-warning::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-warning{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-warning::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-warning-01)}.badge-arrow-right-warning{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-warning::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-warning-01)}.badge-round-outer-warning{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-warning-01),.18);border-radius:7px}.badge-round-outer-warning::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px}.badge-pill-border-danger,.badge-pill-danger{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-danger,.badge-pill-danger{color:#fff;background:#F46160}.badge-border-arrow-left-danger,.badge-border-danger,.badge-pill-border-danger{color:#F46160;background:var(--f-semantic-danger-03)}.badge-pill-border-danger{border:1px solid #F46160}.badge-border-danger{padding:.125rem .4375rem;border:1px solid var(--f-semantic-danger-02);border-radius:2px}.badge-border-arrow-left-danger{border:1px solid var(--f-semantic-danger-02);position:relative;margin-left:12px}.badge-border-arrow-left-danger::after,.badge-border-arrow-left-danger::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-danger::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-danger-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-danger::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-danger-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-danger{position:relative;margin-right:12px}.badge-border-arrow-right-danger::after,.badge-border-arrow-right-danger::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-danger::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-danger-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-danger::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-danger-03);border-width:5px 0 5px 10px}.badge-arrow-left-danger::before,.badge-arrow-right-danger::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent}.badge-arrow-left-danger{background:#F46160;position:relative;color:#fff;margin-left:8px}.badge-arrow-left-danger::before{content:"";position:absolute;top:50%;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:#F46160}.badge-arrow-right-danger{background:#F46160;position:relative;color:#fff;margin-right:8px}.badge-arrow-right-danger::before,.badge-round-outer-danger::after{position:absolute;content:"";top:50%}.badge-arrow-right-danger::before{border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:#F46160}.badge-round-danger{width:6px;height:6px;border-radius:3px;display:inline-block!important;line-height:1;overflow:hidden;padding:0;background:#F46160}.badge-round-outer-danger{position:relative;width:14px;height:14px;display:block;background:rgba(244,97,96,.18);border-radius:7px}.badge-round-outer-danger::after{width:8px;height:8px;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:#F46160}.badge-pill-border-primary,.badge-pill-primary{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-arrow-left-primary,.badge-arrow-right-primary,.badge-pill-primary,.badge-primary,.badge-round-primary{background:var(--f-theme-03)}.badge-pill-primary,.badge-primary{color:#fff}.badge-border-arrow-left-primary,.badge-border-primary,.badge-pill-border-primary{color:var(--f-theme-03);background:var(--f-semantic-info-03)}.badge-pill-border-primary{border:1px solid var(--f-theme-03)}.badge-border-primary{padding:.125rem .4375rem;border:1px solid var(--f-theme-05);border-radius:2px}.badge-border-arrow-left-primary{border:1px solid var(--f-theme-05);position:relative;margin-left:12px}.badge-border-arrow-left-primary::after,.badge-border-arrow-left-primary::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-primary::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-theme-05);border-width:6px 12px 6px 0}.badge-border-arrow-left-primary::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-primary{position:relative;margin-right:12px}.badge-border-arrow-right-primary::after,.badge-border-arrow-right-primary::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-round-continue,.badge-round-primary{border-radius:3px;display:inline-block!important;line-height:1;overflow:hidden}.badge-border-arrow-right-primary::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-theme-05);border-width:6px 0 6px 12px}.badge-border-arrow-right-primary::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 0 5px 10px}.badge-arrow-left-primary::before,.badge-arrow-right-primary::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-primary{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-primary::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-theme-03)}.badge-arrow-right-primary{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-primary::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-theme-03)}.badge-round-primary{width:6px;height:6px;padding:0}.badge-round-outer-primary{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-theme-03),.18);border-radius:7px}.badge-round-outer-primary::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-theme-03)}.badge-pill-border-continue,.badge-pill-continue{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-continue,.badge-pill-continue{color:#fff;background:var(--f-semantic-submit-01)}.badge-border-arrow-left-continue,.badge-border-continue,.badge-pill-border-continue{color:var(--f-semantic-submit-01);background:var(--f-semantic-submit-03)}.badge-pill-border-continue{border:1px solid var(--f-semantic-submit-01)}.badge-border-continue{padding:.125rem .4375rem;border:1px solid var(--f-semantic-submit-02);border-radius:2px}.badge-border-arrow-left-continue{border:1px solid var(--f-semantic-submit-02);position:relative;margin-left:12px}.badge-arrow-left-continue,.badge-arrow-right-continue,.badge-round-continue{background:var(--f-semantic-submit-01)}.badge-border-arrow-left-continue::after,.badge-border-arrow-left-continue::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-continue::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-submit-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-continue::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-submit-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-continue{position:relative;margin-right:12px}.badge-border-arrow-right-continue::after,.badge-border-arrow-right-continue::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-continue::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-submit-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-continue::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-submit-03);border-width:5px 0 5px 10px}.badge-arrow-left-continue::before,.badge-arrow-right-continue::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-continue{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-continue::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-submit-01)}.badge-arrow-right-continue{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-continue::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-submit-01)}.badge-round-continue{width:6px;height:6px;padding:0}.badge-round-outer-continue{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-submit-01),.18);border-radius:7px}.badge-round-outer-continue::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-semantic-submit-01)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:6px}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.card-body{flex-grow:1;flex-shrink:1;flex-basis:auto;padding:1.25rem}.card-footer,.card-header{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03)}.card-title{margin-bottom:.75rem}.card-header,.card-subtitle,.card-text:last-child{margin-bottom:0}.card-subtitle{margin-top:-.375rem}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-header{border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(6px - 1px) calc(6px - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(6px - 1px) calc(6px - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(6px - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(6px - 1px);border-top-right-radius:calc(6px - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(6px - 1px);border-bottom-left-radius:calc(6px - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:14px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-14px;margin-left:-14px}.card-deck .card{display:flex;flex-grow:1;flex-shrink:0;flex-basis:0%;flex-direction:column;margin-right:14px;margin-bottom:0;margin-left:14px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:14px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{flex-grow:1;flex-shrink:0;flex-basis:0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:6px}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:6px;border-top-right-radius:6px}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.card-group>.card:not(:first-child):not(:last-child):not(:only-child),.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}.card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.card-columns .card{margin-bottom:.75rem}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.f-form-is-table{box-shadow:0 2px 10px 0 rgba(0,0,0,.04)}.table.table-bordered.f-table-has-form td:first-child{border-left:unset}.table.table-bordered.f-table-has-form td:last-child{border-right:unset}.table.table-bordered.f-table-has-form>:first-child td{border-top:unset}.f-table-has-form{overflow:hidden;box-shadow:0 0 0 1px var(--f-neutral-07);border-radius:10px;margin:0}.f-table-has-form td{padding:0;height:43px;border:1px solid var(--f-neutral-07)}.f-table-has-form .farris-group-wrap--label{padding:.75rem 1rem;width:124px}.f-table-has-form .farris-group-wrap--label .farris-label-wrap{height:100%}.f-table-has-form .farris-group-wrap--label .form-group--has-tips{display:flex}.f-table-has-form .farris-group-wrap--label .form-group--has-tips .farris-label-tips{position:relative;bottom:auto;margin:1px 0 0 4px;flex-shrink:0}.f-table-has-form .farris-group-wrap--label .form-group--has-tips .col-form-label{flex:1 1 0}.f-table-has-form .farris-group-wrap--label .col-form-label{display:flex;margin:0;align-items:center;flex-shrink:0;justify-content:flex-end!important;flex-direction:row!important;align-self:start;word-break:break-all;min-width:82px;height:100%}.f-table-has-form .farris-group-wrap--label .farris-label-text{text-align:right;white-space:pre-wrap}.f-table-has-form .farris-group-wrap--label .farris-label-info{padding:0 .25rem 0 0;flex-shrink:0;line-height:1.4286;white-space:nowrap}.f-table-has-form .farris-group-wrap--input{position:relative;overflow:initial}.f-table-has-form .farris-group-wrap--input .farris-input-wrap{height:100%}.f-table-has-form .farris-group-wrap--input .farris-input-wrap.farris-textarea-wrap{min-height:60px}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .form-control{height:100%;border:none;border-radius:0;padding-left:1rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .form-control.form-control-invalid,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .form-control.form-control-invalid:focus{box-shadow:inset 0 0 0 1pxvar --f-semantic-danger-01}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-inputgroup,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-component-timepicker{height:100%}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-inputgroup .input-group,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-component-timepicker .input-group{height:100%;border:none}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group .btn-group-number{height:100%}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group .btn-group-number .btn-number-flag,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group .btn-group-number .btn-number-flag:nth-child(2){border:none}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .number-arrow-chevron,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn .f-icon{font-size:1rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .lookupbox .input-group-append .f-icon-lookup{font-size:1.125rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap farris-checkboxgroup .farris-input-wrap,.f-table-has-form .farris-group-wrap--input .farris-input-wrap farris-radiogroup .farris-input-wrap{padding:.75rem 1rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .farris-checkradio-hor{align-items:center}.f-table-has-form .farris-group-wrap--input .farris-html-editor{border:none}.f-table-has-form .farris-group-wrap--input .farris-html-editor-border .ql-container.ql-disabled{border:none!important;padding:.75rem 1rem}.f-table-has-form .farris-group-wrap--input .farris-switch-outlayer{height:100%;display:flex;align-items:center;margin-left:1rem}.f-table-has-form .farris-group-wrap--input>.farris-input-wrap>.custom-control{height:100%;display:flex;align-items:center;padding:.75rem 1rem}.f-table-has-form .farris-group-wrap--input .f-component-text{height:100%;display:flex;align-items:center}.f-table-has-form .farris-group-wrap--input .f-component-text .f-form-control-text,.f-table-has-form .farris-group-wrap--input .f-component-text .f-form-control-textarea{border-color:transparent;padding-left:1rem}.f-table-has-form .input-group .input-group-append{padding-right:.5rem}.f-table-has-form .input-group .input-append-wrapper{padding-right:0}.f-table-has-form .input-group .input-group-append.f-cmp-iconbtn-wrapper{padding-right:.5rem}.f-table-has-form .input-group .input-group-append.f-cmp-iconbtn-wrapper .datepicker-clear{right:.5rem!important}.f-table-has-form .input-append-wrapper .input-group-text{padding-left:1rem;padding-right:1rem}.f-table-has-form .input-append-button{border-left:1px solid var(--f-neutral-07);margin-left:1px}.f-table-has-form .f-cmp-static-text-input-append .input-append-button,.f-table-has-form .f-cmp-text-input-append .input-append-button,.f-table-has-form .f-cmp-textarea-input-append .input-append-button{margin-left:0}.f-table-has-form .farris-editor .farris-editor-placeholder,.f-table-has-form .farris-editor .mce-tinymce{border:none}.f-table-has-form .farris-input-wrap .f-cmp-text-is-textarea{flex-direction:row}.f-table-has-form .farris-input-wrap .f-cmp-text-is-textarea .f-form-control-textarea{flex:1 1 0;width:100%}.f-table-has-form .farris-input-wrap .f-personnel-selector,.f-table-has-form .farris-input-wrap .f-personnel-selector .s-select-help{height:100%}.f-table-has-form .farris-input-wrap .f-personnel-selector .s-input-group{border:none!important}.f-table-has-form .farris-input-wrap .farris-tags{white-space:pre-wrap;height:100%;display:flex;align-items:center;margin-left:1rem}.f-table-has-form .farris-input-wrap .farris-tags .farris-tags-item-container{word-break:break-all;padding-left:4px}.f-table-has-form .farris-input-wrap .farris-tags .farris-tags-item-container .farris-tag-item{margin-top:4px;margin-bottom:4px;white-space:pre-wrap}@-moz-document url-prefix(){.f-table-has-form tr{height:43px}.f-table-has-form td{height:100%}} +/**2025-08-14 19:26:09**/ +@charset "UTF-8";.rtv-container .toolbar button:active,.rtv-container .toolbar button:focus,[tabindex="-1"]:focus{outline:0!important}body,caption{text-align:left}.f-calendar-month-view td,.f-icon::before,progress,sub,sup{vertical-align:baseline}.fixed-bottom,.fixed-top{z-index:1030;left:0;right:0}.f-page-header-base>.col,.f-page-header-base>[class*=col-],.f-utils-nogutters>.col,.f-utils-nogutters>[class*=col-]{padding-left:0;padding-right:0}.f-utils-fill-auto{flex-shrink:1;flex-grow:1;flex-basis:0;overflow-x:hidden;overflow-y:auto}.f-cmp-footer-hasgap,.f-page-is-managelist .f-section+.f-section,.f-page-is-managelist .f-struct-wrapper+.f-struct-wrapper>.f-section,.f-section-hasgap{margin:.5rem 0 0}.f-cmp-footer-hasgap::before,.f-page-is-managelist .f-section+.f-section::before,.f-page-is-managelist .f-struct-wrapper+.f-struct-wrapper>.f-section::before,.f-section-hasgap::before{content:"";position:absolute;height:.5rem;background:#EFF2F4;left:0;right:0;top:-.5rem}.f-section-header .f-title,.f-tmpl-for-title-withline{color:var(--f-text-01);display:inline-flex;align-items:center;line-height:1.375rem;position:relative;overflow:hidden;padding:0 0 0 .75rem}article,aside,figcaption,figure,footer,header,hgroup,legend,main,nav,section{display:block}label,output{display:inline-block}.f-section-header .f-title>*,.f-tmpl-for-title-withline>*{margin:0 .625rem 0 0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn,.custom-control-label,dl,ol,ol ol,ol ul,ul,ul ol,ul ul{margin-bottom:0}dd,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem}.rtv-container.rtv-container-week .header-cell>span,dd{margin-left:0}.f-section-header .f-title .f-title-text,.f-tmpl-for-title-withline .f-title-text{font-size:.9375rem;line-height:1.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-section-header .f-title .f-title-subtitle,.f-tmpl-for-title-withline .f-title-subtitle{font-size:.8125rem;color:var(--f-text-08);line-height:1.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-section-header .f-title::before,.f-tmpl-for-title-withline::before{content:"";width:.25rem;height:1rem;background:var(--f-theme-03);border-radius:2px;position:absolute;top:50%;left:0;margin-top:-.5rem}dl,h1,h2,h3,h4,h5,h6,ol,p,pre,ul{margin-top:0}:root{--f-theme-01:#0E6DED;--f-theme-02:linear-gradient(135deg, #0E6DED 0%, #1B75EF 100%);--f-theme-03:#2A87FF;--f-theme-04:linear-gradient(135deg, #2A87FF 0%, #328BFF 100%);--f-theme-05:#529DFF;--f-theme-06:linear-gradient(135deg, #529DFF 0%, #559FFF 100%);--f-theme-07:linear-gradient(214deg, #3F65FF 0%, #4D9AFF 100%);--f-theme-08:#6388FF;--f-theme-09:linear-gradient(46deg, #2E77FF 0%, #2A87FF 100%);--f-theme-10:#2A62AB;--f-theme-11:linear-gradient(135deg, #2A87FF 0%, #328BFF 100%);--f-theme-12:linear-gradient(135deg, #2A87FF 0%, #328BFF 100%);--f-theme-13:linear-gradient(135deg, rgba(42, 135, 255, 0.1) 0%, rgba(50, 139, 255, 0.1) 100%);--f-theme-more-02:#2E77FF;--f-aid-01:#95BEF1;--f-aid-02:#DBE9FF;--f-aid-03:#E8F2FF;--f-aid-04:#EFF5FF;--f-aid-05:#CFEDFF;--f-aid-06:#EFF2F4;--f-aid-07:linear-gradient(195deg, #FFFBEB 0%, #EFF8F8 100%);--f-aid-08:#F0F6FF;--f-aid-09:#F7FAFF;--f-aid-10:#95C3FF;--f-ornament-01:linear-gradient(135deg, #FC8249 0%, #FE9539 100%);--f-ornament-02:linear-gradient(135deg, #1FC8DC 0%, #41D2BD 100%);--f-ornament-03:linear-gradient(135deg, #4190FF 0%, #657CFF 100%);--f-ornament-04:linear-gradient(135deg, #8B82FF 0%, #A082FF 100%);--f-ornament-05:linear-gradient(135deg, #4EC87A 0%, #52D389 100%);--f-ornament-01-start:#FC8249;--f-ornament-02-start:#1FC8DC;--f-ornament-03-start:#4190FF;--f-ornament-04-start:#8B82FF;--f-ornament-05-start:#4EC87A;--f-neutral-00:#fff;--f-neutral-00-rgb:255,255,255;--f-neutral-01:#303C53;--f-neutral-02:#AEB5C6;--f-neutral-03:#CCD1DD;--f-neutral-04:#D9DEE7;--f-neutral-05:#DEE4ED;--f-neutral-06:#E6E9F0;--f-neutral-07:#E9ECF3;--f-neutral-08:#E8EBF2;--f-neutral-09:#F1F3F7;--f-neutral-10:#F5F6F9;--f-neutral-11:#F7F8FB;--f-neutral-12:#FFFFFF;--f-neutral-13:#E4E7EF;--f-neutral-14:#FAFAFC;--f-neutral-15:#1F2329;--f-neutral-15-rgb:31,35,41;--f-neutral-16:#013364;--f-neutral-17:#031233;--f-neutral-18:rgba(255, 255, 255, 0.7);--f-neutral-19:rgba(255, 255, 255, 0.85);--f-neutral-20:#ffffff;--f-neutral-21:#334052;--f-text-00:#fff;--f-text-01:#000;--f-text-02:#2D2F33;--f-text-03:#424347;--f-text-04:#5A5E66;--f-text-05:#6080AD;--f-text-06:#747B8B;--f-text-07:#848C9A;--f-text-08:#A8ADB8;--f-text-09:#B4BCCC;--f-text-10:#C7CFDD;--f-text-11:#ffffff;--f-text-12:#C7D4EE;--f-text-13:rgba(255, 255, 255, 0.85);--f-semantic-info-01:#4D9AFF;--f-semantic-info-02:#AED1FF;--f-semantic-info-03:#EEF5FF;--f-semantic-info-04:linear-gradient(135deg, #657CFF 0%, #4190FF 100%);--f-semantic-submit-01:#62CBCD;--f-semantic-submit-02:#A7E0E1;--f-semantic-submit-03:#F3FBFB;--f-semantic-submit-04:linear-gradient(135deg, #12BFD3 0%, #41D5B9 100%);--f-semantic-success-01:#6CC77F;--f-semantic-success-02:#B5E3BF;--f-semantic-success-03:#F0FAF4;--f-semantic-success-04:linear-gradient(135deg, #3CA78D 0%, #7BCA8B 100%);--f-semantic-warning-01:#F5A144;--f-semantic-warning-02:#FAD0A1;--f-semantic-warning-03:#FEF5EC;--f-semantic-warning-04:linear-gradient(135deg, #FC8249 0%, #FE9539 100%);--f-semantic-warning-06:#F7B500;--f-semantic-danger-01:#F46160;--f-semantic-danger-02:#F9B0AF;--f-semantic-danger-03:#FDEFEF;--f-semantic-danger-04:linear-gradient(135deg, #E55875 0%, #FF7878 100%)}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}.popover-tips,body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif}body{margin:0;font-size:.8125rem;font-weight:400;line-height:1.4286;color:var(--f-text-02);background-color:#fff}.text-monospace,code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}p{margin-bottom:1rem}abbr[data-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{padding:0}li{list-style:none}dt{font-weight:700}blockquote,figure{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--f-theme-03);text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:var(--f-theme-05);text-decoration:none}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-size:1em}pre{margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:var(--f-text-08);caption-side:bottom}th{text-align:inherit}label{margin-bottom:.3125rem}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.display-1,.display-2,.display-3,.display-4{line-height:1.2}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:400;color:inherit}.blockquote,.table,hr{margin-bottom:1rem}.display-1,.display-2,.display-3,.display-4,.lead{font-weight:300}.h1,h1{font-size:1.625rem}.h2,h2{font-size:1.5rem}.h3,h3{font-size:1.375rem}.h4,h4{font-size:1.25rem}.accordion .card .card-header .panel-item-title,.farris-panel .card .card-header .panel-item-title,.h5,h5{font-size:1rem;line-height:1.375rem}.h5,h5{font-size:1rem}.btn-lg,.h6,h6{font-size:.875rem}.lead{font-size:1.015625rem}.display-1{font-size:6rem}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-4{font-size:3.5rem}hr{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.015625rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"— "}.clearfix::after,.custom-control-label::after,.custom-control-label::before{content:""}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:var(--f-theme-03)!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:var(--f-semantic-success-01)!important}.bg-info{background-color:var(--f-semantic-info-01)!important}.bg-warning{background-color:var(--f-semantic-warning-01)!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#343a40!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid var(--f-neutral-06)!important}.border-top{border-top:1px solid var(--f-neutral-06)!important}.border-right{border-right:1px solid var(--f-neutral-06)!important}.border-bottom{border-bottom:1px solid var(--f-neutral-06)!important}.border-left{border-left:1px solid var(--f-neutral-06)!important}.border-0{border:0!important}.rounded-right,.rounded-top{border-top-right-radius:6px!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:6px!important}.rounded-left,.rounded-top{border-top-left-radius:6px!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:6px!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:var(--f-theme-03)!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:var(--f-semantic-success-01)!important}.border-info{border-color:var(--f-semantic-info-01)!important}.border-warning{border-color:var(--f-semantic-warning-01)!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:6px!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:888px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media (min-width:1690px){.d-el-none{display:none!important}.d-el-inline{display:inline!important}.d-el-inline-block{display:inline-block!important}.d-el-block{display:block!important}.d-el-table{display:table!important}.d-el-table-row{display:table-row!important}.d-el-table-cell{display:table-cell!important}.d-el-flex{display:flex!important}.d-el-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.flex-row{flex-direction:row!important}.f-utils-flex-column,.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:888px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:888px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{position:fixed;top:0}.fixed-bottom{position:fixed;bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.f-max-width-auto,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .farris-title-auto{max-width:none!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:888px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width:1690px){.flex-el-row{flex-direction:row!important}.flex-el-column{flex-direction:column!important}.flex-el-row-reverse{flex-direction:row-reverse!important}.flex-el-column-reverse{flex-direction:column-reverse!important}.flex-el-wrap{flex-wrap:wrap!important}.flex-el-nowrap{flex-wrap:nowrap!important}.flex-el-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-el-fill{flex-grow:1!important;flex-shrink:1!important;flex-basis:auto!important}.flex-el-grow-0{flex-grow:0!important}.flex-el-grow-1{flex-grow:1!important}.flex-el-shrink-0{flex-shrink:0!important}.flex-el-shrink-1{flex-shrink:1!important}.justify-content-el-start{justify-content:flex-start!important}.justify-content-el-end{justify-content:flex-end!important}.justify-content-el-center{justify-content:center!important}.justify-content-el-between{justify-content:space-between!important}.justify-content-el-around{justify-content:space-around!important}.align-items-el-start{align-items:flex-start!important}.align-items-el-end{align-items:flex-end!important}.align-items-el-center{align-items:center!important}.align-items-el-baseline{align-items:baseline!important}.align-items-el-stretch{align-items:stretch!important}.align-content-el-start{align-content:flex-start!important}.align-content-el-end{align-content:flex-end!important}.align-content-el-center{align-content:center!important}.align-content-el-between{align-content:space-between!important}.align-content-el-around{align-content:space-around!important}.align-content-el-stretch{align-content:stretch!important}.align-self-el-auto{align-self:auto!important}.align-self-el-start{align-self:flex-start!important}.align-self-el-end{align-self:flex-end!important}.align-self-el-center{align-self:center!important}.align-self-el-baseline{align-self:baseline!important}.align-self-el-stretch{align-self:stretch!important}.float-el-left{float:left!important}.float-el-right{float:right!important}.float-el-none{float:none!important}.m-el-0{margin:0!important}.mt-el-0,.my-el-0{margin-top:0!important}.mr-el-0,.mx-el-0{margin-right:0!important}.mb-el-0,.my-el-0{margin-bottom:0!important}.ml-el-0,.mx-el-0{margin-left:0!important}.m-el-1{margin:.25rem!important}.mt-el-1,.my-el-1{margin-top:.25rem!important}.mr-el-1,.mx-el-1{margin-right:.25rem!important}.mb-el-1,.my-el-1{margin-bottom:.25rem!important}.ml-el-1,.mx-el-1{margin-left:.25rem!important}.m-el-2{margin:.5rem!important}.mt-el-2,.my-el-2{margin-top:.5rem!important}.mr-el-2,.mx-el-2{margin-right:.5rem!important}.mb-el-2,.my-el-2{margin-bottom:.5rem!important}.ml-el-2,.mx-el-2{margin-left:.5rem!important}.m-el-3{margin:1rem!important}.mt-el-3,.my-el-3{margin-top:1rem!important}.mr-el-3,.mx-el-3{margin-right:1rem!important}.mb-el-3,.my-el-3{margin-bottom:1rem!important}.ml-el-3,.mx-el-3{margin-left:1rem!important}.m-el-4{margin:1.5rem!important}.mt-el-4,.my-el-4{margin-top:1.5rem!important}.mr-el-4,.mx-el-4{margin-right:1.5rem!important}.mb-el-4,.my-el-4{margin-bottom:1.5rem!important}.ml-el-4,.mx-el-4{margin-left:1.5rem!important}.m-el-5{margin:3rem!important}.mt-el-5,.my-el-5{margin-top:3rem!important}.mr-el-5,.mx-el-5{margin-right:3rem!important}.mb-el-5,.my-el-5{margin-bottom:3rem!important}.ml-el-5,.mx-el-5{margin-left:3rem!important}.p-el-0{padding:0!important}.pt-el-0,.py-el-0{padding-top:0!important}.pr-el-0,.px-el-0{padding-right:0!important}.pb-el-0,.py-el-0{padding-bottom:0!important}.pl-el-0,.px-el-0{padding-left:0!important}.p-el-1{padding:.25rem!important}.pt-el-1,.py-el-1{padding-top:.25rem!important}.pr-el-1,.px-el-1{padding-right:.25rem!important}.pb-el-1,.py-el-1{padding-bottom:.25rem!important}.pl-el-1,.px-el-1{padding-left:.25rem!important}.p-el-2{padding:.5rem!important}.pt-el-2,.py-el-2{padding-top:.5rem!important}.pr-el-2,.px-el-2{padding-right:.5rem!important}.pb-el-2,.py-el-2{padding-bottom:.5rem!important}.pl-el-2,.px-el-2{padding-left:.5rem!important}.p-el-3{padding:1rem!important}.pt-el-3,.py-el-3{padding-top:1rem!important}.pr-el-3,.px-el-3{padding-right:1rem!important}.pb-el-3,.py-el-3{padding-bottom:1rem!important}.pl-el-3,.px-el-3{padding-left:1rem!important}.p-el-4{padding:1.5rem!important}.pt-el-4,.py-el-4{padding-top:1.5rem!important}.pr-el-4,.px-el-4{padding-right:1.5rem!important}.pb-el-4,.py-el-4{padding-bottom:1.5rem!important}.pl-el-4,.px-el-4{padding-left:1.5rem!important}.p-el-5{padding:3rem!important}.pt-el-5,.py-el-5{padding-top:3rem!important}.pr-el-5,.px-el-5{padding-right:3rem!important}.pb-el-5,.py-el-5{padding-bottom:3rem!important}.pl-el-5,.px-el-5{padding-left:3rem!important}.m-el-auto{margin:auto!important}.mt-el-auto,.my-el-auto{margin-top:auto!important}.mr-el-auto,.mx-el-auto{margin-right:auto!important}.mb-el-auto,.my-el-auto{margin-bottom:auto!important}.ml-el-auto,.mx-el-auto{margin-left:auto!important}}.f-cmp-pt,.f-cmp-py{padding-top:.875rem!important}.f-cmp-pb,.f-cmp-py{padding-bottom:.875rem!important}.f-cmp-mr,.f-cmp-mx{margin-right:.875rem!important}.f-cmp-ml,.f-cmp-mx{margin-left:.875rem!important}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:888px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:var(--f-theme-03)!important}.text-secondary{color:#6c757d!important}.text-success{color:var(--f-semantic-success-01)!important}.text-warning{color:var(--f-semantic-warning-01)!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#343a40!important}.text-body{color:var(--f-text-02)!important}.text-muted{color:var(--f-text-08)!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}body{background:#f0f3f6}input::-ms-clear{display:none}input::-webkit-contacts-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;position:absolute;right:0}.f-utils-fill-flex-column,.f-utils-flex-column,.f-utils-flex-row,.f-utils-flex-row-wrap{display:flex!important;overflow:hidden}.h1,h1{line-height:2.125rem}.h2,h2{line-height:2}.h3,h3{line-height:1.875rem}.h4,h4{line-height:1.75rem}.btn-link,.h6,h6{line-height:1.25rem}.text-dark{color:var(--f-text-01)}.text-danger{color:var(--f-semantic-danger-01)!important}.text-info{color:var(--f-theme-05)!important}.font-small{font-size:12px!important}.font-middle{font-size:16px!important}.font-large{font-size:18px!important}.font-exlarge{font-size:24px!important}::-webkit-scrollbar{width:7px;height:7px;background-color:var(--f-neutral-14)}::-webkit-scrollbar-track{border-radius:0;background-color:var(--f-neutral-14);border:none;background-clip:padding-box}::-webkit-scrollbar-thumb{background-color:var(--f-neutral-03);border:none;background-clip:content-box;opacity:.6;border-radius:7px}::-webkit-scrollbar-thumb:hover{background:var(--f-text-06)}.f-cmp-mt{margin-top:.875rem!important}.f-cmp-mb{margin-bottom:.875rem!important}.f-cmp-mx-minus{margin-left:-.875rem!important;margin-right:-.875rem!important}.f-cmp-px{padding-left:.875rem!important;padding-right:.875rem!important}.f-cmp-p{padding:.875rem!important}.f-cmp-gutter{border-bottom:10px solid #EFF2F4}.f-split-border-b{border-bottom:1px solid var(--f-neutral-08)}.f-common-px{padding-left:.875rem;padding-right:.875rem}.f-col-h1,.f-col-h10,.f-col-h11,.f-col-h12,.f-col-h2,.f-col-h3,.f-col-h4,.f-col-h5,.f-col-h6,.f-col-h7,.f-col-h8,.f-col-h9,.f-col-w1,.f-col-w10,.f-col-w11,.f-col-w12,.f-col-w2,.f-col-w3,.f-col-w4,.f-col-w5,.f-col-w6,.f-col-w7,.f-col-w8,.f-col-w9{padding-right:14px;padding-left:14px}.f-common-py{padding-top:.875rem;padding-bottom:.875rem}.f-common-py-form{padding-top:.875rem;padding-bottom:.5rem}.f-utils-absolute-all{top:0;bottom:0;position:absolute;right:0;left:0}.accordion .card .card-header,.f-col-h1,.f-col-h10,.f-col-h11,.f-col-h12,.f-col-h2,.f-col-h3,.f-col-h4,.f-col-h5,.f-col-h6,.f-col-h7,.f-col-h8,.f-col-h9,.f-col-w1,.f-col-w10,.f-col-w11,.f-col-w12,.f-col-w2,.f-col-w3,.f-col-w4,.f-col-w5,.f-col-w6,.f-col-w7,.f-col-w8,.f-col-w9,.farris-panel .card .card-header,.rtv-container .toolbar .btns .btn-group button i.f-icon{position:relative}.f-utils-fill-flex-column{flex-shrink:1;flex-grow:1;flex-basis:0;flex-direction:column!important}.f-utils-flex-row{flex-direction:row!important;flex-wrap:nowrap}.f-utils-flex-row-wrap{flex-direction:row!important;flex-wrap:wrap!important}.f-utils-fill-flex-row,.f-utils-fill-flex-row-wrap{flex-shrink:1;display:flex!important;overflow:hidden}.f-utils-fill-flex-row{flex-grow:1;flex-basis:0;flex-direction:row!important;flex-wrap:nowrap!important}.f-utils-fill-flex-row-wrap{flex-grow:1;flex-basis:0;flex-direction:row!important;flex-wrap:wrap!important}.f-utils-fill{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden}.f-utils-overflow-xhya{overflow-x:hidden!important;overflow-y:auto!important}.f-utils-overflow-xayh{overflow-y:hidden!important;overflow-x:auto!important}.f-utils-overflow-xaya{overflow:auto!important}.f-utils-overflow-hidden{overflow:hidden!important}.f-utils-overflow-auto{overflow:auto!important}.f-utils-hcenter-vcenter{display:flex;align-items:center;justify-content:center}.f-overflow-y-auto{overflow-y:auto!important}.f-overflow-y-hidden{overflow-y:hidden!important}.f-overflow-x-auto{overflow-x:auto!important}.f-overflow-x-hidden{overflow-x:hidden!important}@media (min-width:576px){.f-overflow-sm-y-auto{overflow-y:auto!important}.f-overflow-sm-y-hidden{overflow-y:hidden!important}.f-overflow-sm-x-auto{overflow-x:auto!important}.f-overflow-sm-x-hidden{overflow-x:hidden!important}}@media (min-width:768px){.f-overflow-md-y-auto{overflow-y:auto!important}.f-overflow-md-y-hidden{overflow-y:hidden!important}.f-overflow-md-x-auto{overflow-x:auto!important}.f-overflow-md-x-hidden{overflow-x:hidden!important}}@media (min-width:888px){.f-overflow-lg-y-auto{overflow-y:auto!important}.f-overflow-lg-y-hidden{overflow-y:hidden!important}.f-overflow-lg-x-auto{overflow-x:auto!important}.f-overflow-lg-x-hidden{overflow-x:hidden!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}.f-overflow-xl-y-auto{overflow-y:auto!important}.f-overflow-xl-y-hidden{overflow-y:hidden!important}.f-overflow-xl-x-auto{overflow-x:auto!important}.f-overflow-xl-x-hidden{overflow-x:hidden!important}}@media (min-width:1690px){.text-el-left{text-align:left!important}.text-el-right{text-align:right!important}.text-el-center{text-align:center!important}.f-overflow-el-y-auto{overflow-y:auto!important}.f-overflow-el-y-hidden{overflow-y:hidden!important}.f-overflow-el-x-auto{overflow-x:auto!important}.f-overflow-el-x-hidden{overflow-x:hidden!important}}.farris-overflow-y-auto{overflow-x:hidden!important;overflow-y:auto!important}.farris-overflow-y-hidden{overflow-x:hidden!important;overflow-y:hidden!important}.farris-overflow-hidden{overflow:hidden!important}.f-col-w1{min-height:1px;width:8.3333333333%}.f-col-w2{min-height:1px;width:16.6666666667%}.f-col-w3{min-height:1px;width:25%}.f-col-w4{min-height:1px;width:33.3333333333%}.f-col-w5{min-height:1px;width:41.6666666667%}.f-col-w6{min-height:1px;width:50%}.f-col-w7{min-height:1px;width:58.3333333333%}.f-col-w8{min-height:1px;width:66.6666666667%}.f-col-w9{min-height:1px;width:75%}.f-col-w10{min-height:1px;width:83.3333333333%}.f-col-w11{min-height:1px;width:91.6666666667%}.f-col-w12{min-height:1px;width:100%}.f-col-h1{min-height:1px;height:8.3333333333%}.f-col-h2{min-height:1px;height:16.6666666667%}.f-col-h3{min-height:1px;height:25%}.f-col-h4{min-height:1px;height:33.3333333333%}.f-col-h5{min-height:1px;height:41.6666666667%}.f-col-h6{min-height:1px;height:50%}.f-col-h7{min-height:1px;height:58.3333333333%}.f-col-h8{min-height:1px;height:66.6666666667%}.f-col-h9{min-height:1px;height:75%}.f-col-h10{min-height:1px;height:83.3333333333%}.f-col-h11{min-height:1px;height:91.6666666667%}.f-col-h12{min-height:1px;height:100%}.f-utils-text-break{white-space:normal!important;word-break:break-all!important}.f-text-emphasize{color:var(--f-text-01)!important}.f-text-light{color:var(--f-text-04)!important}.f-text-lighter{color:var(--f-text-08)!important}.f-text-mute{color:var(--f-text-09)!important}.f-text-two-line{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.5rem}.f-min-width-auto{min-width:auto!important}.f-width-auto{width:auto!important}.win11Scroll{overflow:overlay;scroll-behavior:smooth}.win11Scroll::-webkit-scrollbar{width:14px;height:14px;border-radius:7px}.win11Scroll::-webkit-scrollbar-thumb{display:none;background-clip:padding-box;border:6px solid transparent;border-radius:14px}.win11Scroll::-webkit-scrollbar-thumb:hover{border:4px solid transparent}.win11Scroll::-webkit-scrollbar-button:single-button{height:14px}.win11Scroll:hover::-webkit-scrollbar-thumb{display:block}.win11Scroll.show::-webkit-scrollbar-thumb{display:block}.win11Scroll::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.win11Scroll::-webkit-scrollbar-track{background-color:transparent}.win11Scroll.nobtn::-webkit-scrollbar:vertical{background:0 0}.win11Scroll.nobtn::-webkit-scrollbar:horizontal{background:0 0}.win11Scroll.nobtn::-webkit-scrollbar-button:single-button{height:0;width:0}.accordion,.farris-panel{border:1px solid var(--f-neutral-13)}.accordion .card,.farris-panel .card{border-top:0;background:var(--f-neutral-00);border-color:var(--f-neutral-13)}.accordion .card .card-header,.farris-panel .card .card-header{border-width:0;background-color:var(--f-neutral-00);color:var(--f-text-02);padding:.5265rem .875rem}.accordion .card .card-header:hover,.accordion .card.f-state-hover,.farris-panel .card .card-header:hover,.farris-panel .card.f-state-hover{color:var(--f-theme-05);border-color:var(--f-neutral-13);background-color:var(--f-neutral-00)}.accordion .card .card-body,.farris-panel .card .card-body{padding:.9375rem}.accordion .card.f-state-disabled .card-header,.farris-panel .card.f-state-disabled .card-header{color:var(--f-text-07);background-color:var(--f-neutral-00);border-color:var(--f-neutral-02)}.accordion .card.f-state-disabled .f-icon,.farris-panel .card.f-state-disabled .f-icon{display:none}.accordion .card.f-state-disabled .accordion-title,.farris-panel .card.f-state-disabled .accordion-title{color:var(--f-text-07)}.accordion .card.f-state-selected .card-header,.farris-panel .card.f-state-selected .card-header{color:var(--f-theme-01);background-color:var(--f-neutral-00);border-color:var(--f-neutral-13)}.accordion .accordion-title,.farris-panel .accordion-title{color:var(--f-text-02)}.accordion .f-accordion-collapse,.accordion .f-accordion-expand,.farris-panel .f-accordion-collapse,.farris-panel .f-accordion-expand{margin-top:-.3125rem;color:var(--f-neutral-01);font-size:1.25rem;width:1.25rem;height:1.25rem;vertical-align:middle}.accordion .f-accordion-collapse::before,.farris-panel .f-accordion-collapse::before{font-family:FarrisIcons;content:"\e013"}.accordion .f-accordion-expand::before,.f-btn-collapse-expand::after,.farris-panel .f-accordion-expand::before{font-family:FarrisIcons;content:"\e015"}.accordion .card-header,.farris-panel .card-header{cursor:pointer}.accordion .panel-item-title,.farris-panel .panel-item-title{float:left}.accordion .panel-item-tool,.farris-panel .panel-item-tool{float:right}.accordion .panel-item-clear,.farris-panel .panel-item-clear{clear:both}.accordion .f-state-disabled,.farris-panel .f-state-disabled{pointer-events:none}.accordion .card,.farris-panel .card{border-left:0;border-right:0}.accordion .active,.farris-panel .active{height:initial;transition:height .35s ease}.accordion .inactive,.farris-panel .inactive{height:0;overflow:hidden;transition:height .35s ease}.farris-panel .card:not(:first-of-type) .card-header:first-child,.farris-panel .card:not(:first-of-type):not(:last-of-type){border-radius:0}.farris-panel .card:first-of-type{border-bottom-right-radius:0;border-bottom-left-radius:0}.farris-panel .card:last-of-type{border-bottom:0;border-top-left-radius:0;border-top-right-radius:0}.f-cmp-panel-pt-card-subgrid .card,.farris-panel-dividing-line .card{border-width:0}.f-cmp-panel-pt-card-subgrid .card .card-header,.farris-panel-dividing-line .card .card-header{border-width:0 0 1px;background:var(--f-neutral-00);border-color:var(--f-neutral-13)}.f-cmp-panel-pt-card-subgrid .card.f-state-selected .card-header,.farris-panel-dividing-line .card.f-state-selected .card-header{background-color:var(--f-neutral-00);border-color:var(--f-neutral-13);color:var(--f-theme-01)}.accordion .card .card-header .f-icon,.btn-secondary,.farris-panel .card .card-header .f-icon{color:var(--f-text-02)}.f-cmp-panel-pt-card-subgrid{margin:0}.f-cmp-panel-has-form .card .card-body{padding:0}.accordion .card .card-header:hover .f-icon,.btn-secondary:hover,.farris-panel .card .card-header:hover .f-icon{color:var(--f-theme-05)}.accordion .card.f-state-selected .card-header .f-icon,.farris-panel .card.f-state-selected .card-header .f-icon{color:var(--f-theme-01)}.rtv-container{width:100%;height:100%;display:flex;flex-direction:column;background:#fff}.rtv-container .room-subject{border-radius:2px}.rtv-container .room-subject dt{font-size:13px;text-overflow:ellipsis;overflow:hidden}.rtv-container .room-subject_category{padding:0 4px;border-radius:4px;margin-right:8px;font-size:12px;display:inline-block;line-height:20px;background:var(--f-aid-02);border:1px solid var(--f-theme-01)}.rtv-container .room-subject dd.other-info{margin:0;line-height:18px;color:var(--f-text-07);text-overflow:ellipsis;overflow:hidden;padding-top:3px}.rtv-container .text-center{align-items:center;justify-content:center}.rtv-container .toolbar{height:50px;width:100%;border-bottom:1px solid var(--f-neutral-07);display:flex;align-items:center;padding-left:20px}.rtv-container .toolbar .view-type{width:131px;height:32px;line-height:32px;background:var(--f-aid-04);border-radius:32px;display:flex;align-items:center}.rtv-container .toolbar .view-type .btn-day,.rtv-container .toolbar .view-type .btn-week{width:64px;height:30px;border-radius:32px;background:0 0;border:0;font-weight:400;cursor:pointer}.rtv-container .toolbar .view-type .btn-active{background:rgba(255,255,255,.75);box-shadow:0 4px 18px 0 rgba(2,75,193,.2);color:var(--f-theme-03);cursor:default}.rtv-container .toolbar .line{height:20px;width:20px;display:inline-block;border-right:1px solid var(--f-neutral-06);margin-right:20px}.rtv-container .toolbar .btns{display:flex;width:112px;margin-right:20px}.rtv-container .toolbar .btns button{height:26px;background:#FFF;border:1px solid #e8ebf2;box-shadow:0 2px 6px 0 rgba(31,35,41,.06);border-radius:6px;outline:0;cursor:pointer}.rtv-container .toolbar .btns .btn-today{width:50px;margin-right:5px}.rtv-container .toolbar .btns .btn-group{width:53px;flex-grow:1;display:flex}.rtv-container .toolbar .btns .btn-group button{width:26px}.rtv-container .toolbar .btns .btn-group button i.f-icon{left:-2px;top:2px}.rtv-container .toolbar .btns .btn-prev{border-radius:6px 0 0 6px}.rtv-container .toolbar .btns .btn-next{border-radius:0 6px 6px 0}.rtv-container .main{flex-grow:1;display:flex;flex-direction:column;overflow:hidden}.rtv-container .main .fixed-left{position:sticky!important;left:0;z-index:9;flex:none!important;width:300px}.rtv-container .main .roomname{align-items:center;justify-content:start;background-color:#fff!important}.rtv-container .main .header{height:40px;overflow:hidden;border-bottom:1px solid #E6E9F0}.rtv-container .main .body .room-cell,.rtv-container .main .header-cell{height:100%;border-right:1px solid var(--f-neutral-06);border-bottom:1px solid var(--f-neutral-06);display:flex}.rtv-container .main .header-row{display:flex;flex-direction:row;width:2700px;height:100%}.rtv-container .main .header-cell>span.time{margin-left:-20px;font-size:14px;color:var(--f-text-04);font-weight:500}.rtv-container .main .time-cell{width:100px;align-items:center}.rtv-container .main .body{flex-grow:1;height:100%}.rtv-container .main .body .room-row{min-height:62px;display:flex;flex-direction:row;width:2700px}.rtv-container .main .body .room-cell{position:relative}.rtv-container .main .body .room-cell .item-content{width:100px;position:absolute;left:0;flex-wrap:nowrap;display:flex;flex-direction:column;line-height:20px;justify-content:center;z-index:1;word-break:normal;white-space:nowrap;overflow:hidden;height:calc(100% - 4px);cursor:pointer}.rtv-container .main .body .room-cell .item-content:hover{box-shadow:2px 2px 7px #bebebe}.rtv-container .main .body .room-cell .item-content .item-content-wrap{border-radius:6px;background:var(--f-aid-02);width:100%;height:100%}.rtv-container .main .body .room-cell .item-content .item-content-wrap.gray{background-color:#f0f0f0}.rtv-container .main .body .room-cell .item-content .item-content-wrap.gray .room-subject_category{border:1px solid #ccc;background:#F2F3F5;color:#878d99}.rtv-container .main .body .room-cell .item-content .item-content-wrap.blue{background:#dae9ff}.rtv-container .main .body .room-cell .item-content .item-content-wrap.blue .room-subject_category{border:1px solid #9bf;background:#9bf;color:#fff}.rtv-container .main .body .room-cell .item-content .item-content-wrap.orange{background:#ffedda}.rtv-container .main .body .room-cell .item-content .item-content-wrap.orange .room-subject_category{border:1px solid #ff772e;background:#ff772e;color:#fff5ea}.rtv-container .main .body .room-cell .item-content .item-content-wrap.mintgreen{background:#daffe0}.rtv-container .main .body .room-cell .item-content .item-content-wrap.mintgreen .room-subject_category{border:1px solid #42fc57;background:#42fc57;color:#449e00}.rtv-container .main .body .room-cell .item-content .item-content-wrap.red{background:#ffdada}.rtv-container .main .body .room-cell .item-content .item-content-wrap.red .room-subject_category{border:1px solid #ff8383;background:#ffa4a4;color:#ae0000}.rtv-container .main .body .room-cell .item-content .item-content-wrap.pink{background:#f6daff}.rtv-container .main .body .room-cell .item-content .item-content-wrap.pink .room-subject_category{border:1px solid #f867d6;background:#f867d6;color:#ffe2ef}.rtv-container .main .body .room-cell .item-content .item-content-wrap.bluegreen{background:#dafffe}.rtv-container .main .body .room-cell .item-content .item-content-wrap.bluegreen .room-subject_category{border:1px solid #2ac3ac;background:#2ac3ac;color:#efffe5}.rtv-container .main .body .room-cell .item-content .selected{outline:var(--f-theme-05) solid 2px;outline-offset:-2px;border-radius:6px}.rtv-container.rtv-container-week .header-cell,.rtv-container.rtv-container-week .room-cell{flex:1}.rtv-container.rtv-container-week .header-row,.rtv-container.rtv-container-week .room-row{width:auto!important}.rtv-container.rtv-container-week .time-cell{line-height:20px;width:150px}.rtv-container.rtv-container-week .time-cell .week-day-subject{cursor:pointer;transition:all .1s ease}.rtv-container.rtv-container-week .time-cell .week-day-subject:hover{background-color:var(--f-aid-02)}.rtv-container.rtv-container-week .time-cell li.selected{border:1px solid var(--f-theme-01);border-radius:4px;background:var(--f-aid-02)}.rtv-container.rtv-container-week .time-cell .rtv-week-day{text-align:center;border-radius:10px;width:20px;margin:0 5px;font-size:13px}.rtv-container.rtv-container-week .time-cell .rtv-week-day.active{background-image:linear-gradient(135deg,var(--f-aid-10) 0,var(--f-theme-05) 100%);color:#fff}.rtv-container.rtv-container-week .time-cell .rtv-week-day-item:before{content:"●";margin-right:3px;top:-2px;position:relative}.reserve-detail-container{display:flex;flex-direction:column;background:#FFF;box-shadow:0 4px 12px 2px rgba(31,35,41,.1);border-radius:16px;width:368px;height:436px;transition:all .12s ease}.reserve-detail-container .detail-header{height:185px;background-image:linear-gradient(116deg,var(--f-aid-10) 0,var(--f-theme-05) 100%);border-radius:16px 16px 0 0}.reserve-detail-container .detail-header.gray{color:#fff;background-image:linear-gradient(116deg,#bcbebf 0,#909293 100%)}.reserve-detail-container .detail-header.blue{color:#fff;background-image:linear-gradient(116deg,#09F 0,#0AF 100%)}.reserve-detail-container .detail-header.orange{color:#fff;background-image:linear-gradient(116deg,#ffc78c 0,#ffab58 100%)}.reserve-detail-container .detail-header.mintgreen{color:#fff;background-image:linear-gradient(116deg,#72cc89 0,#00a804 100%)}.reserve-detail-container .detail-header.red{color:#fff;background-image:linear-gradient(116deg,#ff9797 0,#ff3939 100%)}.reserve-detail-container .detail-header.pink{color:#fff;background-image:linear-gradient(116deg,#f1b9fb 0,#d458ff 100%)}.reserve-detail-container .detail-header.bluegreen{color:#fff;background-image:linear-gradient(116deg,#59ddc9 0,#1694c5 100%)}.reserve-detail-container .detail-header .detail-toolbar{height:44px;justify-content:flex-end;align-items:center;padding-right:15px;display:flex}.reserve-detail-container .detail-header .detail-toolbar span.f-icon{font-size:14px;cursor:pointer;width:32px;height:32px;text-align:center;line-height:32px;border-radius:6px}.reserve-detail-container .detail-header .detail-toolbar span.f-icon:hover{background:rgba(255,255,255,.2)}.reserve-detail-container .detail-header .detail-title{flex:1;padding:0 24px;overflow:hidden}.reserve-detail-container .detail-header .detail-title .detail-place{font-size:16px}.reserve-detail-container .detail-header .detail-title div.title-content{margin:6px 0 16px;font-size:20px;line-height:28px}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge{height:18px;border-radius:4px;display:inline-block;font-size:12px;text-align:center;line-height:18px;padding:0 5px}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.gray{border:1px solid #ccc;background:#F2F3F5;color:#878d99}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.blue{border:1px solid #9bf;background:#9bf;color:#fff}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.pink{border:1px solid #f867d6;background:#f867d6;color:#ffe2ef}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.red{border:1px solid #ff8383;background:#ffa4a4;color:#ae0000}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.mintgreen{border:1px solid #42fc57;background:#42fc57;color:#449e00}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.orange{border:1px solid #ff772e;background:#ff772e;color:#fff5ea}.reserve-detail-container .detail-header .detail-title div.title-content span.detail-badge.bluegreen{border:1px solid #48fce0;background:#5efee6;color:#00b8bd}.reserve-detail-container .detail-header .detail-title .detail-timer{height:30px;font-size:14px;line-height:30px}.reserve-detail-container .detail-info-content{flex:1;padding:2px 2px 10px;color:#666;border-radius:0 0 16px 16px}.reserve-detail-container .detail-info-content ul{list-style:none;margin:0;padding:16px;font-size:14px}.reserve-detail-container .detail-info-content ul li{line-height:28px;display:flex;flex-direction:row}.f-calendar-day-view-header-primary,.reserve-detail-container .detail-info-content ul li span.detail-content{flex:1}.reserve-detail-container .detail-info-content ul li span.detail-subtitle{width:70px;display:inline-block}.shading-border-top{border-top:1px solid #fff!important}.f-avatar{position:relative;cursor:pointer;overflow:hidden}.f-avatar.f-avatar-readonly{cursor:default}.f-avatar.f-avatar-circle{border-radius:100%;overflow:hidden}.f-avatar.f-avatar-square{border-radius:0}.f-avatar .f-avatar-defult,.f-avatar .f-avatar-image{display:inline-block;width:100%;height:100%}.f-avatar .f-avatar-icon{display:none;position:absolute;left:0;right:0;top:0;bottom:0;align-items:center;justify-content:center;background:rgba(0,0,0,.3)}.f-avatar .f-avatar-icon .f-icon{font-size:24px;color:#fff}.f-avatar.f-avatar-circle .f-avatar-icon{border-radius:100%}.f-avatar.f-avatar-square .f-avatar-icon{border-radius:0}.f-avatar .f-avatar-upload-loading{position:absolute;left:0;top:0;display:inline-block;width:100%;height:100%;background-color:rgba(0,0,0,.15)}.f-avatar .f-avatar-upload-loading .loading-inner{position:absolute;width:100%;left:0;top:50%;margin-top:-25px;height:50px;line-height:50px;text-align:center;font-size:16px;color:#fff}.f-avatar:hover .f-avatar-icon{display:flex}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:1px solid transparent;padding:.1875rem .875rem;font-size:.8125rem;line-height:1.4286;border-radius:6px;transition:none}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn.disabled,.btn:disabled{opacity:1;box-shadow:none}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled).active:focus,.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled):active:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:var(--f-text-00);background:var(--f-theme-04);border-color:var(--f-theme-03);box-shadow:0 4px 10px 0 rgba(var(--f-theme-03),.2);position:relative;z-index:20}.btn-primary:hover,.btn-primary:not(:disabled):not(.disabled).focus,.btn-primary:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-primary:hover{color:var(--f-text-00);background:linear-gradient(135deg,#529DFF 0,#559FFF 100%);border-color:var(--f-theme-05)}.btn-primary.disabled,.btn-primary:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:var(--f-text-00);background:var(--f-theme-02);border-color:var(--f-theme-01);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-secondary,.btn-secondary:hover,.btn-secondary:not(:disabled):not(.disabled).focus,.btn-secondary:not(:disabled):not(.disabled):focus{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-secondary{background:var(--f-neutral-12);border-color:var(--f-neutral-08)}.btn-secondary:hover{background:var(--f-neutral-12);border-color:var(--f-theme-05)}.btn-secondary.disabled,.btn-secondary:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:var(--f-theme-01);background:var(--f-neutral-12);border-color:var(--f-theme-01);box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-danger,.btn-danger:hover{color:var(--f-semantic-danger-01);box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-danger,.f-btn-icon::before,.f-cmp-inputgroup .input-append-button,.f-cmp-text-input-append .input-append-button,.f-component-text .input-append-button,.input-append-button{background:var(--f-neutral-00)}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-danger{border-color:#F9B0AF}.btn-danger:hover{background:rgba(var(--f-semantic-danger-01),.06);border-color:var(--f-semantic-danger-01)}.btn-danger:not(:disabled):not(.disabled).focus,.btn-danger:not(:disabled):not(.disabled):focus{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-danger.disabled,.btn-danger:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:var(--f-semantic-danger-01);background:rgba(var(--f-semantic-danger-01),.1);border-color:var(--f-semantic-danger-01);box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.btn-success,.btn-success:hover,.btn-success:not(:disabled):not(.disabled).focus,.btn-success:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-success,.btn-success:hover{color:var(--f-text-00);background:var(--f-semantic-success-01);border-color:var(--f-semantic-success-01)}.btn-success.disabled,.btn-success:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:var(--f-text-00);background:var(--f-semantic-success-01);border-color:var(--f-semantic-success-01);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning,.btn-warning:hover{color:var(--f-text-00);background:var(--f-semantic-warning-01);border-color:var(--f-semantic-warning-01);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning:not(:disabled):not(.disabled).focus,.btn-warning:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning.disabled,.btn-warning:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-dark,.btn-dark:hover,.btn-dark:not(:disabled):not(.disabled).focus,.btn-dark:not(:disabled):not(.disabled):focus,.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:var(--f-text-00);background:var(--f-semantic-warning-01);border-color:var(--f-semantic-warning-01)}.btn-dark{color:var(--f-text-00);background:#343a40;border-color:#343a40}.btn-dark:hover{color:var(--f-text-00);background:#23272b;border-color:#23272b}.btn-dark.disabled,.btn-dark:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:var(--f-text-00);background:#1d2124;border-color:#171a1d;box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light,.btn-light:hover{color:#212529;box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light{background:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{background:#e2e6ea;border-color:#dae0e5}.btn-light:not(:disabled):not(.disabled).focus,.btn-light:not(:disabled):not(.disabled):focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light.disabled,.btn-light:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-info,.btn-info:hover,.btn-info:not(:disabled):not(.disabled).focus,.btn-info:not(:disabled):not(.disabled):focus,.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background:#dae0e5;border-color:#d3d9df}.btn-info{background:var(--f-theme-03);border-color:var(--f-theme-03)}.btn-info:hover{color:var(--f-text-00);background:linear-gradient(135deg,#529DFF 0,#559FFF 100%);border-color:var(--f-theme-05)}.btn-info.disabled,.btn-info:disabled{color:var(--f-text-07);background:var(--f-neutral-08);border-color:var(--f-neutral-05);box-shadow:none}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:var(--f-text-00);background:var(--f-theme-02);border-color:var(--f-theme-02);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-link,.btn-link:hover{background-color:transparent}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-link{font-weight:400;color:var(--f-theme-03);padding:0;border:0}.btn-lg,.btn-sm{line-height:1.4286;border-radius:6px}.btn-link:hover{color:var(--f-theme-05);text-decoration:none;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:none;border-color:transparent;color:var(--f-theme-01);box-shadow:none}.btn-link.active,.btn-link:active{box-shadow:none!important;color:var(--f-theme-01)}.btn-link.disabled,.btn-link:disabled{color:var(--f-text-07);pointer-events:none}.btn-link+.btn-link{margin-right:.875rem}.btn-lg{padding:.25rem 1.125rem}.btn-sm{padding:.125rem .5rem;font-size:.75rem}.custom-control-label::before,.f-btn-collapse-expand::after{line-height:1;vertical-align:middle;font-variant:normal;font-style:normal;text-transform:none}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-warning{color:var(--f-text-00)}.btn-outline-danger.disabled,.btn-outline-danger:disabled,.btn-outline-dark.disabled,.btn-outline-dark:disabled,.btn-outline-info.disabled,.btn-outline-info:disabled,.btn-outline-light.disabled,.btn-outline-light:disabled,.btn-outline-link.disabled,.btn-outline-link:disabled,.btn-outline-primary.disabled,.btn-outline-primary:disabled,.btn-outline-secondary.disabled,.btn-outline-secondary:disabled,.btn-outline-success.disabled,.btn-outline-success:disabled,.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:var(--f-text-07);border-color:var(--f-neutral-05);background:0 0}.dropdown-toggle-split{padding-right:.125rem;padding-left:.125rem}.btn-info{color:var(--f-text-00)}.f-cursor-pointer{cursor:pointer!important}.f-btn-collapse-expand{color:var(--f-text-03);background-color:transparent;box-shadow:none}.dropdown-submenu .dropdown-toggle,.f-btn-collapse-expand:active,.f-btn-collapse-expand:focus,.f-btn-icon.f-bare,.f-response-content .dropdown-item{box-shadow:none!important}.f-btn-collapse-expand:hover{color:var(--f-theme-05)}.f-btn-collapse-expand:active{color:var(--f-theme-01)}.f-btn-collapse-expand::after{width:1em;height:1em;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1rem;font-weight:400;speak:none;display:inline-block;margin-left:.25rem}.f-btn-collapse-expand.f-state-expand::after{content:"\e013"}.f-toolbar .f-btn-collapse-expand{padding-right:0}.f-pretend-link{color:var(--f-theme-03)!important;cursor:pointer;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}.f-pretend-link:hover{color:var(--f-theme-05);text-decoration:none}.btn.btn-px{padding-left:2.25rem;padding-right:2.25rem}.f-btn-ml{margin-left:.5rem!important}.f-btn-link-ml,.f-btn-link-mr{margin-left:.875rem!important}.f-btn-mr{margin-right:.625rem!important}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex-grow:0;flex-shrink:1;flex-basis:auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group-sm>.btn{padding:.125rem .5rem;font-size:.75rem;line-height:1.4286;border-radius:6px}.btn-group-lg>.btn{padding:.25rem 1.125rem;font-size:.875rem;line-height:1.4286;border-radius:6px}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropright-top .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropup-left .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before,.dropleft-up .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split{padding-right:.84375rem;padding-left:.84375rem}.btn-group.show .dropdown-toggle{box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.f-btn-group .f-btn-group-links .btn-link{margin-left:.375rem;margin-right:.375rem}.f-btn-group .f-btn-group-links .btn-link:first-child{margin-left:0}.f-btn-group .f-btn-group-links .btn-link:last-child{margin-right:.1875rem}.f-btn-group .f-btn-group-links .btn-icontext{color:var(--f-theme-03);padding:0 3px;margin:0 0 0 .375rem}.f-btn-group .f-btn-group-links .btn-icontext .f-icon{margin:0}.f-btn-group .f-btn-group-links .btn-icontext:last-child{margin-right:0}.f-btn-group .f-btn-group-dropdown{padding:0 3px;margin-left:.375rem}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown{display:inline-block;border:none;outline:0;background:var(--f-aid-04);color:var(--f-theme-03);width:1rem;height:1rem;line-height:1rem;text-align:center;border-radius:100%;padding:0}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown:hover{cursor:pointer;color:var(--f-theme-03);background:var(--f-aid-03)}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown:focus{color:var(--f-text-00);background:var(--f-theme-02)}.f-btn-group .f-btn-group-dropdown .f-btn-dropdown .f-icon{font-size:.75rem}.f-btn-group .f-btn-group-dropdown .dropdown-menu{min-width:5rem}.f-btn-group-dropdown-menu{z-index:1300!important}.f-btn-group-dropdown-menu .dropdown-item .dropdown-item-icon{margin:0 8px 0 0}.f-button-edit .farris-tags.form-control{padding:0}.f-button-edit .farris-tag-input-box,.f-button-edit .farris-tag-item{line-height:1!important;margin:2px 6px 2px 0!important}.f-button-edit .farris-tag-input-box .form-control{height:inherit!important;padding:1px 0!important}.f-button-edit-nowrap .input-group{flex-wrap:nowrap!important}.f-button-edit-nowrap .farris-tags{overflow:hidden}.f-button-edit-nowrap .farris-tags-item-container{display:flex;flex-wrap:nowrap;overflow:hidden}.f-button-edit .input-group:not(.f-state-disabled,.f-state-readonly) .form-control,.f-cmp-number-spinner:not(.f-state-disabled,.f-state-readonly,.number-range,.spinner-hidden) .form-control{border-top-right-radius:0;border-bottom-right-radius:0}.fv-calculator-standard-main{background-color:#f1f1f1;margin:0 auto;box-shadow:0 0 15px #4d4d4d}.fv-calculator-standard-main ul{list-style:none;margin:0;padding:0}.fv-calculator-standard-main li{float:left;text-align:center;cursor:pointer}.fv-calculator-standard-main li img{height:14px}.fv-calculator-standard-main .fv-calculator-title{padding:5px 0;height:30px;line-height:30px;font-size:18px;margin-left:10px}.fv-calculator-standard-main .fv-calculator-result{height:140px;text-align:right;width:100%}.fv-calculator-standard-main .fv-calculator-result-out{margin:0 5px;height:48px;overflow:hidden}.fv-calculator-standard-main .fv-calculator-second{font-size:42px;font-weight:700;overflow-y:auto;white-space:nowrap;text-align:right}.fv-calculator-standard-main .fv-calculator-pre{color:#A7A7A7;padding:0 20px;font-size:16px;height:24px;width:100%;overflow:hidden;position:relative;z-index:99}.fv-calculator-standard-main .fv-calculator-pre .fv-calculator-pre-left{width:16px;text-align:center;line-height:20px;height:24px;position:absolute;z-index:101;left:0;top:0;font-weight:600;cursor:pointer;background:#f1f1f1}.fv-calculator-standard-main .fv-calculator-pre .fv-calculator-pre-right{width:16px;text-align:center;line-height:20px;height:24px;position:absolute;z-index:101;right:0;top:0;font-weight:600;cursor:pointer;background:#f1f1f1}.fv-calculator-pre .fv-calculator-pre-content{text-align:right;height:24px;line-height:24px;white-space:nowrap;overflow-y:auto;overflow-x:hidden}.fv-calculator-pre-left:hover,.fv-calculator-pre-right:hover{color:#1853d1;background:#9b9b9b}.fv-calculator-standard-main .fv-calculator-type{height:auto;text-align:left;font-weight:700;margin:10px 0 20px 10px;font-size:22px}.fv-calculator-standard-main .fv-calculator-type-bar{height:90px;width:100px;position:absolute;top:110px;background-color:#E6E6E6}.fv-calculator-standard-main .fv-calculator-type-bar li{float:left;width:100px;text-align:center;line-height:30px}.fv-calculator-standard-main .active{background-color:#CFCFCF}.fv-calculator-standard-main .fv-calculator-number{font-weight:700;border:1px solid #fff!important;background:#fff!important}.fv-calculator-standard-main .fv-calculator-number:hover{border:1px solid #f1f1f1!important;background:#c6c6c6!important}.fv-calculator-standard-main .fv-calculator-operator:hover{border:1px solid #f1f1f1!important;background:#82bceb!important;color:#fff}.fv-calculator-standard-main .fv-calculator-letter{font-size:16px}.fv-calculator-standard-main{width:500px;height:460px}#fv-calculator-num-symbol{height:270px;font-size:20px;display:flex;flex-wrap:wrap;justify-content:center}#fv-calculator-num-symbol li{line-height:48px;width:23%;margin:5px 0 0 5px;background:#dedede;border:1px solid #dedede;list-style-type:none}#fv-calculator-num-symbol li:hover{background:#c6c6c6;border:1px solid #f1f1f1}.f-calendar-day-view-header,.f-calendar-day-view-item{border-bottom:1px solid #e9e9e9;display:flex}.f-calendar-day-view-item,.f-calendar-day-view-item-lower,.f-calendar-day-view-item-upper,.f-calendar-day-view-item-upper:first-child,.f-calendar-day-view-item:first-child{border-top:1px solid transparent}.f-calendar-day-view{background-color:#fff;display:flex;flex-direction:column;min-width:860px;height:530px}.f-calendar-day-view-header-corner{width:44px;height:24px}.f-calendar-day-view-header-columns{display:flex}.f-calendar-day-view-header-cell{display:flex;flex:1;padding:4px 4px 8px;font-size:14px;color:rgba(0,0,0,.75);line-height:22px;font-weight:500}.f-calendar-day-view-header-cell .f-calendar-day-view-date{border-radius:20px;width:24px;height:24px;text-align:center;margin-right:4px}.f-calendar-day-view-header-cell .f-calendar-day-view-current{background:#0093f5;color:#fff}.f-calendar-day-view-content{display:flex;flex:1;overflow-y:scroll}.f-calendar-day-view-content-side{width:44px}.f-calendar-day-view-item{height:22px}.f-calendar-day-view-item-upper{border-bottom:1px solid transparent}.f-calendar-day-view-item-lower{border-bottom:1px solid #e9e9e9}.f-calendar-day-view-item-cell{flex:1;height:22px;border-left:1px solid transparent;border-right:1px solid #e9e9e9}.f-calendar-day-view-item-cell:first-child{border-left:1px solid #e9e9e9;border-right:1px solid #e9e9e9}.f-calendar-day-view-item-cell:last-child{border-left:1px solid transparent;border-right:1px solid transparent}.f-calendar-header{display:flex;background-color:#fff}.f-calendar-header>.f-calendar-title{font-weight:600;font-size:24px;line-height:32px;margin:14px 0;padding:0 14px;border-right:1px solid #e9e9e9;width:144px}.f-calendar-header>.f-calendar-navigator{flex:1;display:flex}.f-calendar-header .f-calendar-view-switch{margin:16px 14px;position:relative}.f-calendar-header .f-calendar-view-switch-panel{background-color:#eff5ff;width:200px;height:28px;border-radius:28px;display:flex;font-weight:500}.f-calendar-header .f-calendar-view-switch-panel>span{flex:1;line-height:28px;text-align:center}.f-calendar-header .f-calendar-view-switch>.f-calendar-view-switch-active-view{height:24px;width:62px;position:absolute;background:#fff;box-shadow:0 4px 18px 0 rgba(2,75,193,.2);border-radius:24px;line-height:24px;text-align:center;color:#0091da;font-weight:500;transition:.3s ease-out all}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-today{background:#fff;border:1px solid #e8ebf2;box-shadow:0 2px 6px 0 rgba(31,35,41,.06);border-radius:6px;font-size:13px;color:#2d2f33;font-weight:400;margin:auto 6px auto 14px}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-button-group{box-shadow:0 2px 6px 0 rgba(31,35,41,.06);border-radius:6px;font-size:13px;color:#2d2f33;font-weight:400;margin:auto 14px auto 0}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-button-group>.f-calendar-navigator-previous{background:#fff;border:1px solid #e8ebf2;border-right-color:transparent;border-radius:6px 0 0 6px;padding:.1875rem .375rem}.f-calendar-header>.f-calendar-navigator>.f-calendar-navigator-button-group>.f-calendar-navigator-next{background:#fff;border:1px solid #e8ebf2;border-radius:0 6px 6px 0;padding:.1875rem .375rem}.f-calendar-month-view{min-width:860px;display:flex}.f-calendar-month-view table{display:table!important;margin:initial!important;flex:1;table-layout:fixed;width:-moz-fit-content;width:fit-content}.f-calendar-month-view tr{border-top:initial!important;transition:initial!important}.f-calendar-month-view th{border:initial!important;background-color:initial!important;font-size:14px!important;color:rgba(0,0,0,.75);line-height:22px;font-weight:500!important}.f-calendar-month-view{background-color:#fff}.f-calendar-month-view td{border:1px solid #e9e9e9!important;padding:4px!important;height:100px}.f-calendar-week-view-header,.f-calendar-week-view-item{display:flex;border-bottom:1px solid #e9e9e9}.f-calendar-month-view .f-calendar-month-view-title{display:flex}.f-calendar-month-view .f-calendar-month-view-title>.f-calendar-month-view-date{border-radius:20px;width:24px;height:24px;line-height:24px;text-align:center;font-size:14px}.f-calendar-month-view .f-calendar-month-view-title>.f-calendar-month-view-date-month{flex:1;border-radius:20px;width:24px;height:24px;line-height:24px;text-align:right;font-size:14px}.f-calendar-month-view .f-calendar-month-view-current{background:#0093f5;color:#fff}.f-calendar-month-view .f-calendar-month-view-event-item{background-color:#ebf3ff;font-size:12px;color:#0e6ded;line-height:18px;margin:2px 0;padding:2px 4px}.f-calendar-week-view{background-color:#fff;display:flex;flex-direction:column;min-width:860px;height:530px}.f-calendar-week-view-header-corner{width:44px;height:24px}.f-calendar-week-view-header-primary{flex:1}.f-calendar-week-view-header-columns{display:flex}.f-calendar-week-view-header-cell{flex:1;padding:4px 4px 8px;display:flex;font-size:14px;color:rgba(0,0,0,.75);line-height:22px;font-weight:500}.f-calendar-week-view-header-cell .f-calendar-week-view-date{border-radius:20px;width:24px;height:24px;text-align:center;margin-right:4px}.f-calendar-week-view-header-cell .f-calendar-week-view-current{background:#0093f5;color:#fff}.f-calendar-week-view-content{display:flex;flex:1;overflow-y:scroll}.f-calendar-week-view-content-side{width:44px}.f-calendar-content-primary{flex:1}.f-calendar-side{margin-top:-11px}.f-calendar-side-row{height:22px;padding-right:4px;text-align:end}.f-calendar-side-row-number{height:22px;line-height:22px}.f-calendar-week-view-item{height:22px;border-top:1px solid transparent}.f-calendar-week-view-item:first-child{border-top:1px solid #e9e9e9}.f-calendar-week-view-item-lower,.f-calendar-week-view-item-upper,.f-calendar-week-view-item-upper:first-child{border-top:1px solid transparent}.f-calendar-week-view-item-upper{border-bottom:1px solid transparent}.f-calendar-week-view-item-lower{border-bottom:1px solid #e9e9e9}.f-calendar-week-view-item-cell{flex:1;height:22px;border-left:1px solid transparent;border-right:1px solid #e9e9e9}.f-calendar-week-view-item-cell:first-child{border-left:1px solid #e9e9e9;border-right:1px solid #e9e9e9}.f-calendar-week-view-item-cell:last-child{border-left:1px solid transparent;border-right:1px solid transparent}.f-calendar-event{background:#ebf3ff;border-radius:2px;margin:2px;font-size:12px;color:#0e6ded;padding:2px 4px}.f-capsule-container{color:#6080AD;position:relative;display:inline-block;box-sizing:content-box;padding:0;margin:0;cursor:pointer;white-space:nowrap;min-width:2.5rem;height:1.8rem;overflow:hidden}.f-capsule-container .f-capsule-pane .f-capsule-item.f-capsule-disabled,.f-combo-list-item.f-un-select{color:var(--f-text-09)}.f-capsule-container.primary .f-capsule-board{background-color:#eff5ff}.f-capsule-container.secondary .f-capsule-board{background-color:#f2f4f8}.f-capsule-container .f-capsule-pane{display:flex;height:100%;min-height:100%;justify-content:flex-start;align-items:center;top:0;position:relative}.f-capsule-container .f-capsule-pane .f-capsule-item{opacity:1;display:inline-block;font-size:12px;line-height:1.8rem;padding-left:24px;padding-right:24px;z-index:2}.f-capsule-container .f-capsule-pane .f-capsule-item.f-capsule-active-item{font-weight:700}.f-capsule-container.primary .f-capsule-pane .f-capsule-item.f-capsule-active-item{color:#2a87ff}.f-capsule-container .f-capsule-pane .f-capsule-item>i{margin-right:2px;font-size:12px}.f-capsule-container .f-capsule-board{background-color:#f2f4f8;border-radius:1.8rem;height:1.8rem;position:absolute;top:0;z-index:0}.f-capsule{height:calc(100% - 4px);border-radius:1.8rem;position:absolute;background:#fff;left:2px;top:2px;opacity:1;display:inline-block;font-size:12px;padding-left:22px;padding-right:22px;z-index:1}.custom-checkbox .custom-control-input:checked~.custom-control-label::after,.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:none}.custom-control{position:relative;display:block;min-height:1.1607375rem;padding-left:0}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;clip:rect(0,0,0,0);overflow:hidden;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:var(--f-theme-03);background-color:var(--f-neutral-00);box-shadow:none}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 4px 2px rgba(99,136,255,.12);color:var(--f-theme-03)}.custom-control-input:active~.custom-control-label::before{color:var(--f-text-00);background-color:var(--f-theme-03);box-shadow:none}.custom-checkbox .custom-control-input:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before,.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before,.custom-control-label::before,.custom-radio .custom-control-input:checked~.custom-control-label::before,.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:var(--f-neutral-00)}.custom-control-input:disabled~.custom-control-label{color:var(--f-neutral-06)}.custom-control-label{position:relative}.custom-control-label::before{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 0 0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-control-label::after{position:absolute;top:.08036875rem;left:-1.5rem;width:1rem;height:1rem;background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-control-label::before,.f-icon{width:1em;-moz-osx-font-smoothing:grayscale;speak:none;font-family:FarrisIcons;-webkit-font-smoothing:antialiased}.custom-checkbox .custom-control-label::before{top:2px;border-radius:0}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before{transition:none}}.custom-control.custom-checkbox,.custom-control.custom-radio{padding-right:.8125rem;margin-bottom:.25rem}.custom-control .custom-control-label::before{color:var(--f-neutral-02)}.custom-control .custom-control-label:hover{cursor:pointer}.custom-control .custom-control-input:disabled~.custom-control-label:hover,.custom-control .custom-control-input[readonly]~.custom-control-label:hover{cursor:default}.custom-control .custom-control-label:hover::before{color:var(--f-theme-05)}.custom-control .custom-control-input:checked~.custom-control-label::before{color:var(--f-theme-03)}.custom-control .custom-control-input[readonly]~.custom-control-label{color:var(--f-text-02)}.custom-control .custom-control-input[readonly]~.custom-control-label::before{color:var(--f-neutral-06)}.custom-control .custom-control-input:disabled~.custom-control-label{color:var(--f-text-02)}.custom-control .custom-control-input:disabled~.custom-control-label::before{color:var(--f-neutral-06)}.custom-control .custom-control-input[disabled]:checked~.custom-control-label::before,.custom-control .custom-control-input[readonly]:checked~.custom-control-label::before{color:rgba(var(--f-theme-03),.2)}.custom-control-label{padding-left:1.5rem;color:var(--f-text-02);display:inline}.custom-control-label::before{height:1em;font-weight:400;display:inline-block;color:var(--f-neutral-02);font-size:14px;top:3px;left:0;position:absolute}.custom-control-label::after{display:none}.custom-checkbox .custom-control-label::before{content:"\e304"}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{box-shadow:none;font-family:FarrisIcons;content:"\e306";color:var(--f-theme-03)}.custom-checkbox .custom-control-input:checked~.custom-control-label::before,.custom-radio .custom-control-input:checked~.custom-control-label::before{content:"";background-repeat:no-repeat;background-size:contain;background-position:center center;box-shadow:0 2px 6px 0 rgba(var(--f-theme-03),.2)}.custom-checkbox .custom-control-input[disabled]:checked~.custom-control-label::before,.custom-checkbox .custom-control-input[readonly]:checked~.custom-control-label::before,.custom-radio .custom-control-input[disabled]:checked~.custom-control-label::before,.custom-radio .custom-control-input[readonly]:checked~.custom-control-label::before{box-shadow:none;opacity:.4}.f-radio-button-danger:hover,.f-radio-button-primary:hover,.f-radio-button-success:hover,.f-radio-button-warning:hover{box-shadow:0 2px 6px 0 rgba(31,35,41,.06)}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjE0cHgiIGhlaWdodD0iMTRweCIgdmlld0JveD0iMCAwIDE0IDE0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgIDx0aXRsZT7nvJbnu4QgMjc8L3RpdGxlPg0KICAgIDxkZWZzPg0KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9Ijg3LjE4OTcwNjUlIiB5MT0iMCUiIHgyPSIxOC4yNDA0NDkyJSIgeTI9IjEwMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4NCiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzRjY1RkYiIG9mZnNldD0iMCUiPjwvc3RvcD4NCiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM0RDlBRkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPg0KICAgICAgICA8L2xpbmVhckdyYWRpZW50Pg0KICAgIDwvZGVmcz4NCiAgICA8ZyBpZD0i5paw54mIIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4NCiAgICAgICAgPGcgaWQ9Iue8lue7hC0yNyI+DQogICAgICAgICAgICA8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTE0IiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHJ4PSIzIj48L3JlY3Q+DQogICAgICAgICAgICA8cGF0aCBkPSJNMTAuNjkwOTE2NCw0LjEzNjA2NjY0IEwxMS4zNTMzNzY5LDQuNzU0MDk0OTIgQzExLjQzNDE0MzMsNC44Mjk0NDQyNCAxMS40Mzg1MzQ3LDQuOTU2MDAxMDcgMTEuMzYzMTg1NCw1LjAzNjc2NzUxIEMxMS4zNjMwNjY2LDUuMDM2ODk0ODYgMTEuMzYyOTQ3Niw1LjAzNzAyMjA2IDExLjM2MjgyODUsNS4wMzcxNDkxMSBMNi42MTYzOTg1OSwxMC4wOTgyNDI1IEM2LjU0MDgzODUyLDEwLjE3ODgxMTggNi40MTQyNzA2NSwxMC4xODI4NzI2IDYuMzMzNzAxMzQsMTAuMTA3MzEyNSBDNi4zMzE3ODIyMSwxMC4xMDU1MTI3IDYuMzI5ODk4NzgsMTAuMTAzNjc1MiA2LjMyODA1MjE1LDEwLjEwMTgwMSBMMy4xNDA3NDAxNiw2Ljg2NzAxODkyIEMzLjA2MzIxNDc1LDYuNzg4MzM4ODggMy4wNjQxNTA3NSw2LjY2MTcwOTM0IDMuMTQyODMwNzksNi41ODQxODM5MyBDMy4xNDI5NTUxMSw2LjU4NDA2MTQzIDMuMTQzMDc5Niw2LjU4MzkzOTA5IDMuMTQzMjA0MjQsNi41ODM4MTY5MiBMMy43OTAxMjUxOCw1Ljk0OTcxODg4IEMzLjg2ODg2OTM1LDUuODcyNTM1NTQgMy45OTUyMjY2Myw1Ljg3MzY0MzM2IDQuMDcyNjA1NCw1Ljk1MjE5NTQ5IEw2LjQ1MDE0NjI0LDguMzY1Nzg4ODIgTDYuNDUwMTQ2MjQsOC4zNjU3ODg4MiBMMTAuNDA4NjEwMiw0LjE0NTQ4MzUzIEMxMC40ODQwMzI2LDQuMDY1MDcyMTYgMTAuNjEwMzAzLDQuMDYwODYwMTYgMTAuNjkwOTE2NCw0LjEzNjA2NjY0IFoiIGlkPSLot6/lvoQtMTPlpIfku70iIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPg0KICAgICAgICA8L2c+DQogICAgPC9nPg0KPC9zdmc+)}.farris-checkradio-ver{display:flex!important;flex-direction:column}.farris-checkradio-hor{flex-wrap:wrap;display:inline-flex}.farris-input-wrap.farris-checkradio-hor{display:inline-flex}.custom-radio .custom-control-label::before{border-radius:50%;content:"\e309"}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:none}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjE0cHgiIGhlaWdodD0iMTRweCIgdmlld0JveD0iMCAwIDE0IDE0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgIDx0aXRsZT5SZWN0YW5nbGUgMjcxIENvcHkgMTHlpIfku70gMjwvdGl0bGU+DQogICAgPGRlZnM+DQogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iODcuMTg5NzA2NSUiIHkxPSIwJSIgeDI9IjE4LjI0MDQ0OTIlIiB5Mj0iMTAwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzNGNjVGRiIgb2Zmc2V0PSIwJSI+PC9zdG9wPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzREOUFGRiIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+DQogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPC9kZWZzPg0KICAgIDxnIGlkPSLmlrDniYgiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTI3MS1Db3B5LTEx5aSH5Lu9LTIiIHN0cm9rZT0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgc3Ryb2tlLXdpZHRoPSI0IiB4PSIyIiB5PSIyIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSI1Ij48L3JlY3Q+DQogICAgPC9nPg0KPC9zdmc+)}.farris-checkradio-hor .farris-radio-button .btn{border-radius:0}.farris-checkradio-hor .farris-radio-button:first-child .btn{border-top-left-radius:6px;border-bottom-left-radius:6px}.farris-checkradio-hor .farris-radio-button:last-child .btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.f-radio-button,.f-radio-tag{color:#2d2f33;background:#fff;border:1px solid #e8ebf2}.f-radio-button-success:hover{color:#6cc77f;background:#fff;border-color:#6cc77f}.f-radio-button-warning:hover{color:#f5a144;background:#fff;border-color:#f5a144}.f-radio-button-danger:hover{color:#f46160;background:#fff;border-color:#f46160}.f-radio-button-primary:hover{color:#2a87ff;background:#fff;border-color:#2a87ff}.f-radio-button-success.active{color:#fff;background:#6cc77f;border-color:#6cc77f}.f-radio-button-warning.active{color:#fff;background:#f5a144;border-color:#f5a144}.f-radio-button-danger.active{color:#fff;background:#f46160;border-color:#f46160}.f-radio-button-primary.active{color:#fff;background:#2a87ff;border-color:#2a87ff}.f-radio-tag{display:inline-block;position:relative;margin-right:8px;padding:3px 16px;border:1px solid rgba(0,0,0,.15);border-radius:2px;overflow:hidden;cursor:pointer;margin-bottom:0}.f-radio-icon,.f-radio-tag>.tip{position:absolute;display:block}.f-radio-icon{right:-4px;bottom:-3px;font-size:12px;color:#fff}.f-radio-tag>.tip{right:0;bottom:0;width:14px;height:14px;border:7px solid #dadada;border-top:7px solid transparent;border-left:7px solid transparent}.f-radio-tag-success.active{color:#6cc77f;border-color:#6cc77f;background:rgba(108,199,127,.05)}.f-radio-tag-warning.active{color:#f5a144;border-color:#f5a144;background:rgba(245,161,68,.05)}.f-radio-tag-danger.active{color:#f46160;border-color:#f56161;background:rgba(245,97,97,.05)}.f-radio-tag-primary.active{color:#2a87ff;border-color:#2a87ff;background:rgba(42,135,255,.05)}.f-radio-tag-success.active>.tip{border-right-color:#6cc77f;border-bottom-color:#6cc77f}.f-radio-tag-warning.active>.tip{border-right-color:#f5a144;border-bottom-color:#f5a144}.f-radio-tag-danger.active>.tip{border-right-color:#f46160;border-bottom-color:#f46160}.f-radio-tag-primary.active>.tip{border-right-color:#2a87ff;border-bottom-color:#2a87ff}.f-color-picker-component{display:inline-block;position:relative;line-height:normal}.f-color-picker-component .color-picker-wrapper{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.f-color-picker-component .color-picker-wrapper .color-picker-input{border-top-right-radius:0;border-bottom-right-radius:0;flex:1 1 auto;width:1%;min-width:200px}.f-color-picker-component .color-picker-wrapper .color-picker-trigger{display:inline-block;box-sizing:border-box;height:calc(1.62503rem + 2px);width:calc(1.62503rem + 2px);padding:.1875rem;border:1px solid #e6e6e6;border-left:none;border-top-right-radius:4px;border-bottom-right-radius:4px;font-size:0;position:relative;cursor:pointer}.f-color-picker-component .color-picker-wrapper .color-picker-trigger .color-picker-trigger-inner{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.f-color-picker-component .color-picker-wrapper .color-picker-trigger .color-picker-trigger-inner.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.f-color-picker-component .color-picker-wrapper .color-picker-trigger .color-picker-trigger-inner div{width:100%;height:100%}.f-color-picker-component .color-picker-panel{display:block;position:absolute;width:300px;z-index:3000;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.f-color-picker-component .color-picker-panel.disabled{display:none}.f-color-picker-component .color-picker-panel .color-picker-main{padding-bottom:6px}.f-color-picker-component .color-picker-panel .input-btn{margin-top:6px;text-align:right}.f-color-picker-component .color-picker-panel .input-btn input{float:left;width:180px;height:28px;line-height:28px;cursor:pointer;-webkit-appearance:none;background-color:#fff;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;font-size:inherit;outline:0;padding:0 7px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.f-color-picker-component .color-picker-panel .input-btn input:focus{border-color:#409eff}.f-color-picker-component .color-picker-panel .input-btn .btn-clear{background-color:#fff;border:none;outline:0;color:#409eff}.color-picker-wrapper .color-picker-trigger{border-color:var(--f-neutral-04)!important;height:calc(1.5rem + .125rem)!important}.f-alpha-component{display:flex;flex-direction:column;position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.f-alpha-component .color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,69,0,0) 0,#ff4500 100%);height:100%}.f-alpha-component .color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:189px;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.f-hue-component{position:relative;box-sizing:border-box;width:12px;height:180px;background-color:red;padding:2px 0;float:right}.f-hue-component .color-hue-slider__bar{position:relative;background:linear-gradient(red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.f-hue-component .color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;top:10px;left:0;width:100%;height:4px;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.f-preset-component{display:flex;font-size:12px;margin-top:8px;width:280px}.f-preset-component .color-preset__colors{display:flex;flex:1;flex-wrap:wrap}.f-preset-component .color-preset__colors .color-preset__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.f-preset-component .color-preset__colors .color-preset__color-selector:nth-child(10n+1){margin-left:0}.f-preset-component .color-preset__colors .color-preset__color-selector.selected{box-shadow:0 0 3px 2px #409eff}.f-preset-component .color-preset__colors .color-preset__color-selector div{display:flex;height:100%;border-radius:3px}.f-sv-panel-component{display:inline-block;position:relative;width:280px;height:180px}.f-sv-panel-component .color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.f-sv-panel-component .color-svpanel__black{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(0deg,#000,transparent)}.f-sv-panel-component .color-svpanel__cursor{position:absolute}.f-sv-panel-component .color-svpanel__cursor div{cursor:pointer;width:6px;height:6px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-3px,-3px)}input-group.actived .input-group{box-shadow:0 0 4px 2px rgba(99,136,255,.12);border-color:var(--f-theme-08)}.popover.f-combo-list-wrapper{background:var(--f-neutral-20)}.f-combo-list-container{overflow:auto;z-index:9;padding:.25rem}.f-combo-list-container .f-empty-title,.f-combo-list-container .f-list-view-group{margin:0}.f-combo-list-container .f-combo-list-search-box{margin:.25rem .5rem}.f-combo-list-container .f-combo-list-search-box .f-combo-list-item{padding:.125rem .5rem}.f-combo-list-item{position:relative;display:block;padding:.3125rem .5rem;background-color:#fff;border-radius:6px}.f-combo-list-item:not(.f-un-select):hover{background:var(--f-neutral-11);color:var(--f-text-02)}.f-combo-list-item.f-listview-active{color:var(--f-text-02);background:var(--f-neutral-10)}.f-combo-tree-container .fv-tree,.f-combo-tree-container .fv-tree-content{overflow:auto}.condition-list{width:100%;display:flex;flex-direction:column;overflow-y:hidden;resize:vertical;min-height:50px}.condition-list .condition-list-body{height:calc(100% - 32px);overflow-y:auto}.condition-list .condition-list-body-maxh{max-height:380px}.condition-list .condition-list-bottom{position:relative;margin:14px 0 14px 6px}.condition-list .condition-list-reset{position:absolute;right:32px;bottom:4px}.condition-list .add-group-btn{width:100%;background:rgba(239,245,255,.65);border:1px solid #dbe9ff;border-radius:6px;color:#2a87ff;font-size:13px}.condition-list .add-condition-btn{color:#2A87FF;font-size:13px;display:inline-block}.condition-list .add-condition-btn:hover{cursor:pointer}.condition-list .add-condition-btn .f-icon{vertical-align:text-bottom;position:relative;width:16px;height:16px;border-radius:50%}.condition-list .add-condition-btn .f-icon-filter-add::before{position:relative;bottom:3px;left:2px;font-size:12px}.condition-list .add-condition-btn .f-icon-filter-grouping::before{position:relative;bottom:3px;left:1px;font-size:12px}.condition-list .condition-list-content{display:flex}.condition-list .condition-list-content-group{flex:0 0 auto}.condition-list .condition-list-item{padding:4px;display:flex;height:40px}.condition-list .condition-list-item-type{width:200px}.condition-list .condition-list-type button{text-align:left;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.condition-list .condition-list-item-compare{width:134px}.condition-list .condition-list-compare button{text-align:left;position:relative}.condition-list .condition-list-compare .f-icon-arrow-chevron-down::before,.condition-list .condition-list-compare .f-icon-arrowhead-s::before,.condition-list .condition-list-type .f-icon-arrow-chevron-down::before,.condition-list .condition-list-type .f-icon-arrowhead-s::before{position:absolute;right:8px;bottom:4px}.condition-list .condition-list-content .dropdown-toggle::after{display:none}.condition-list .condition-list-item-control{line-height:26px;width:200px}.condition-list .condition-list-item-extend .f-icon{vertical-align:text-bottom}.condition-list .condition-list-item-extend .f-icon:hover{cursor:pointer}.condition-list .condition-list-item-extend .f-icon-plus-sm::before,.condition-list .condition-list-item-extend .f-icon-splus::before{font-size:14px;color:#2a87ff;background-color:#e8f2ff;border-radius:50%;position:relative;top:1px}.condition-list .condition-list-item-extend .f-icon-minus-sm::before,.condition-list .condition-list-item-extend .f-icon-sminus::before{font-size:14px;color:#f46160;background-color:#fadcdd;border-radius:50%;position:relative;top:1px}.condition-list .condition-list-relation{margin:2px 0 2px 12px;border-left:1px solid #dee3f0;position:relative;display:flex;align-items:center;padding-left:12px;font-size:13px;color:#2a87ff;text-align:center;cursor:pointer}.condition-list .condition-list-relation:hover .condition-list-relation-close{display:inline}.condition-list .condition-list-relation-close{position:absolute;top:-4px;display:none}.fv-grid,.fv-grid-header,.fv-grid-header-cell{display:flex;overflow:hidden}.condition-list .condition-list-relation:hover .condition-list-relation-text{text-decoration:underline}.condition-list .condition-list-item .custom-control-label:before{position:relative;top:2px}.condition-list .condition-list-relation button{width:20px}.fv-grid{position:relative;flex-direction:column;border-style:solid;border-width:1px;border-color:transparent;flex:1;color:#424347}.fv-grid-header{position:relative;z-index:2;color:#5a5e66;font-weight:400;border-bottom:1px solid #e4e7ef;background-color:#f4f5f9}.fv-grid-header-corner{background-color:#f4f5f9;border-style:solid;border-width:1px;border-color:transparent;padding:.375rem 0}.fv-grid-header-left-fixed,.fv-grid-header-right-fixed{position:relative;overflow:hidden;background-color:#f4f5f9;z-index:1}.fv-grid-header-left-fixed{box-shadow:4px 0 10px 0 rgba(31,35,41,.06)}.fv-grid-header-right-fixed{box-shadow:-4px 0 10px 0 rgba(31,35,41,.06)}.fv-grid-header-primary{flex:1;position:relative;overflow:hidden;background-color:#f4f5f9}.fv-grid-header-columns{position:relative}.fv-grid-header-cell{position:absolute;border:1px solid transparent;top:0;padding:.4375rem .75rem;line-height:18px;color:#2d2f33;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.fv-grid-header-cell::after{content:"";position:absolute;left:0;top:50%;margin-top:-.5625rem;display:block;height:1.125rem;width:1px;background-color:#e6e9f0}.fv-grid-header-group-columns .fv-grid-header-cell{border-bottom-color:#eaecf3;border-right-color:#eaecf3;padding:0 .75rem;text-align:center}.fv-grid-header-group-columns .fv-grid-header-cell::after{display:none}.fv-grid-content{flex:1;display:flex;position:relative;overflow:hidden;z-index:0;background:#fff}.fv-grid-content-hover{cursor:pointer}.fv-grid-content-side{position:relative}.fv-grid-content-primary{flex:1;position:relative;overflow:hidden}.fv-grid-content-left-fixed,.fv-grid-content-right-fixed{position:relative;overflow:hidden;z-index:1}.fv-grid-content-left-fixed{box-shadow:4px 0 10px 0 rgba(31,35,41,.06);background-color:#fff}.fv-grid-content-right-fixed{box-shadow:-6px 0 6px -4px rgba(0,0,0,.12);background-color:#fff}.fv-grid-data{height:100%}.fv-grid-merge-date{position:absolute;top:0}.fv-grid-row{left:0;position:absolute}.fv-datagrid-strip .fv-grid-row-odd{background-color:#fff}.fv-datagrid-strip .fv-grid-row-even{background-color:#f7f8fb}.fv-grid-row-hover{cursor:pointer;color:#424347;background:#edf5ff!important;border-color:#eaecf3}.fv-grid-row-selected{color:#424347!important;border-color:#95bef1;background-color:#dae9ff!important}.fv-grid-cell,.fv-grid-group-row,.fv-grid-summary-row{border-color:transparent;background-color:transparent;border-style:solid;border-width:1px;position:absolute}.fv-grid-group-row,.fv-grid-summary-row{left:0;font-weight:600}.fv-grid-group-row-icon{width:28px;height:28px;flex-shrink:0;color:rgba(0,0,0,.45);line-height:24px;padding:.25rem .75rem}@keyframes rotate-group-collapse{0%{transform:rotate(0)}100%{transform:rotate(-90deg)}}.fv-grid-group-row-icon-collapse{transform:rotate(-90deg)}.fv-grid-cell{line-height:26px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;top:0;padding:0 .75rem}.fv-grid-wrap-content .fv-grid-cell{text-overflow:initial;overflow:initial;white-space:initial}.fv-grid-cell .f-form-control-textarea,.fv-grid-cell textarea.form-control{min-height:initial}.fv-grid-merged-cell{border-left-color:#eaecf3;background-color:#fff;text-align:center}.fv-grid-sidebar-row{left:0;position:absolute;line-height:24px;border-style:solid;border-width:1px;border-color:transparent;background-color:transparent}.fv-datagrid-strip .fv-grid-sidebar-row-odd{background-color:#fff}.fv-datagrid-strip .fv-grid-sidebar-row-even{background-color:#f7f8fb}.fv-grid-sidebar-row-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.fv-grid-sidebar-row-selected{color:#424347!important;background-color:#dae9ff!important}.fv-grid-sidebar-row-checkbox{vertical-align:middle;margin:.25rem .5rem .25rem 1rem}.fv-grid-sidebar-row-number{display:inline-flex;width:32px;padding:0 .25rem}.fv-grid-content-hover .fv-grid-vertical-scroll{opacity:1}.fv-grid-vertical-scroll{opacity:0;position:absolute;background-color:transparent;right:0;left:auto!important;width:10px;cursor:default;transition:width .2s linear,opacity .2s linear,background-color .2s linear;height:288px;z-index:1}.fv-grid-vertical-scroll-thumb{transition:background-color .2s linear;width:10px;right:0;background-color:rgba(0,0,0,.25);border-radius:10px;position:absolute}.fv-grid-content-hover .fv-grid-horizontal-scroll{opacity:1}.fv-grid-horizontal-scroll{opacity:0;position:absolute;background-color:transparent;bottom:0;top:auto!important;height:10px;cursor:default;transition:width .2s linear,opacity .2s linear,background-color .2s linear;width:812px;z-index:1}.fv-grid-horizontal-scroll-thumb{transition:background-color .2s linear,width .2s ease-in-out;height:10px;bottom:0;background-color:rgba(0,0,0,.25);border-radius:10px;position:absolute}.fv-grid-header-cell>.fv-column-title{flex:1;text-overflow:ellipsis;overflow:hidden;word-break:break-all;white-space:nowrap}.fv-grid-header-cell>.fv-column-resize-bar{display:block;position:absolute!important;top:-2px;bottom:-2px;right:0;margin:0;width:5px;padding:0;cursor:e-resize;border:1px solid transparent}.fv-grid-header-cell:hover>.fv-column-resize-bar{border-right:3px solid #2a87ff;border-top:none}.fv-grid-header-cell:hover>.fv-column-handler{display:block}.fv-grid-header-cell>.fv-column-handler{float:right;cursor:pointer;display:none;color:#2a87ff}.fv-grid-header-cell>.fv-column-handler.fv-column-handler-active{display:block!important;color:#2a87ff}.fv-grid-header-cell>.fv-column-handler:hover{color:#2a87ff}.fv-grid-header-cell>.fv-grid-settings-icon{display:block;cursor:pointer;margin-left:8px}.fv-datagrid-resize-overlay{z-index:98;width:100%;height:100%;cursor:e-resize;background:0 0;position:absolute}.fv-datagrid-resize-proxy{width:1px;border-left:1px dashed #2a87ff;left:0;display:none;position:absolute;height:100%;z-index:99}.fv-datagrid-summary{padding:3px;background-color:#fff}.fv-datagrid-summary .fv-datagird-summary-panel{height:40px;background:linear-gradient(90deg,#eff8f8 0,#fffbeb 100%);border-radius:8px;display:flex;justify-content:space-between}.fv-datagrid-summary-title{line-height:40px;width:100px;padding:0 16px;font-size:14px;font-weight:500}.fv-datagrid-summary-content{display:flex;line-height:40px}.fv-datagrid-summary-field{line-height:40px;margin-right:10px}.fv-datagrid-summary-field-title{font-size:14px;margin:0 16px}.fv-datagrid-summary-field-value{color:#ff6c29;font-size:18px;font-weight:700}.fv-datagrid-pagination{display:flex;flex-direction:row-reverse;background-color:#fff}.fv-column-handler-popover .popover-body{max-width:none}.fv-column-sort-filter-container{width:300px}.fv-column-sort-filter-container .fv-column-filter-section .fv-column-filter-section-title{font-size:15px;margin:10px 0}.fv-column-sort-filter-container .fv-column-filter-section .fv-column-filter-section-editor{margin-bottom:10px;max-height:240px;overflow:hidden;display:flex;flex-direction:column}.fv-column-sort-filter-container .fv-column-sort-filter-footer{display:flex}.fv-column-sort-filter-container .fv-column-sort-filter-footer .fv-column-confirm-section{flex:1;display:flex;flex-direction:row-reverse}.fv-grid-filter-panel{padding:0 6px 4px}.fv-grid-settings{min-width:800px;min-height:480px}.fv-grid-settings .f-btn-icon{color:#878d99!important}.fv-grid-settings .f-btn-icon:hover{color:#529dff!important}.fv-grid-settings .farris-tabs-header-pre{color:#000;font-weight:500}.fv-grid-settings .farris-tabs-header-post,.fv-grid-settings .farris-tabs-header-pre{padding:.75rem .5rem .75rem 1.125rem}.fv-grid-settings .farris-tabs-header{margin:0!important}.fv-grid-settings .container{padding-left:24px;padding-right:24px}.fv-grid-group-panel{border-bottom:1px solid #e4e7ef;background-color:#f4f5f9;height:40px}.fv-grid-bordered{border:1px solid #EAECF3}.fv-grid-bordered .fv-grid-cell{border-right-color:#EAECF3}.fv-grid-bordered .fv-grid-cell:last-child{border-right-color:transparent}.fv-grid-horizontal-bordered .fv-grid-cell,.fv-grid-horizontal-bordered .fv-grid-group-row,.fv-grid-horizontal-bordered .fv-grid-merged-cell,.fv-grid-horizontal-bordered .fv-grid-sidebar-row,.fv-grid-horizontal-bordered .fv-grid-summary-row{border-bottom-color:#eaecf3}.fv-grid-hierarchy-cell .custom-checkbox{display:flex;padding-right:0!important;margin:auto 0}.fv-grid-hierarchy-cell .fv-tree-node-toggle,.fv-grid-hierarchy-cell .fv-tree-node-toggle-minus{padding-right:6px}.fv-grid-hierarchy-cell .custom-label{padding-left:1.2rem}.fv-grid-hierarchy-cell div#treeNodeIcons{margin:auto 5px auto 0;color:#a5a6ab}.fv-grid-hierarchy-cell .fv-tree-node-toggle::before{font-family:FarrisIcons;color:#2D2F33;content:"\e11f"}.fv-grid-hierarchy-cell .fv-tree-node-toggle-minus::before{font-family:FarrisIcons;color:#2D2F33;content:"\e122"}.fv-grid-hierarchy-cell .fv-tree-node-toggle:hover::before{color:#59a1ff}.f-datepicker-container{display:flex;position:absolute;margin:.25rem 0 0;padding:0;box-shadow:0 2px 20px 0 rgba(3,18,51,.12);background:var(--f-neutral-20);border-radius:10px;z-index:9999;animation:selectorfadein 60ms;box-sizing:border-box;color:var(--f-text-01);flex-wrap:wrap;font-family:PingFangSC-Regular,Arial}.f-datepicker-container:focus{border:none;outline:0}.f-datepicker-container .arrow{display:none;width:1rem;height:6px;margin:0;position:absolute;left:8px}.f-datepicker-container .arrow::after,.f-datepicker-container .arrow::before{content:"";border-color:transparent;border-style:solid;position:absolute;display:block;border-width:0 6px 6px}.f-datepicker-container .arrow::after{top:1px}.f-datepicker-container .arrow::before{top:0}.f-datepicker-container.container-position-bottom .arrow{top:-6px}.f-datepicker-container.container-position-bottom .arrow::after,.f-datepicker-container.container-position-bottom .arrow::before{border-width:0 6px 6px;border-bottom-color:#fff}.f-datepicker-container.container-position-top{margin:-6px}.f-datepicker-container.container-position-top .arrow{top:auto;bottom:-6px}.f-datepicker-container.container-position-top .arrow::after,.f-datepicker-container.container-position-top .arrow::before{border-width:6px 6px 0;border-top-color:#fff}.f-datepicker-container .f-datepicker-sidebar{position:absolute;top:0;bottom:0;width:100px;border-right:1px solid var(--f-neutral-13);box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.f-datepicker-container .f-datepicker-sidebar button{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.f-datepicker-container .f-datepicker-sidebar button:hover{color:#409eff}.f-datepicker-container .f-datepicker-content{width:287px}.f-datepicker-container .f-datepicker-content .f-datepicker-header{display:flex;justify-content:space-between;border-bottom:1px solid var(--f-neutral-13)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-prev-btn{padding-left:1rem}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-prev-btn .f-datepicker-header-btn{color:var(--f-text-02);padding:1px 8px 1px 0}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-next-btn{padding-right:1rem}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-next-btn .f-datepicker-header-btn{color:var(--f-text-02);padding:1px 0 1px 8px}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn{height:40px;outline:0;border:0;background:var(--f-neutral-20);line-height:35px;font-size:14px;padding:1px 4px;cursor:pointer}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn:hover{color:var(--f-theme-05)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn:active{color:var(--f-theme-01)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn.f-datepicker-header-btn-disabled,.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn.f-datepicker-header-btn-disabled:active,.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-header-btn.f-datepicker-header-btn-disabled:hover{color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-header .f-datepicker-monthYearText .f-datepicker-header-btn{color:var(--f-text-02)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper{width:100%;height:254px;padding:8px 12px}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table{width:100%;height:100%;max-width:100%;background-color:transparent;border-collapse:collapse;text-align:center;border:0}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table th{font-weight:400;color:var(--f-text-08)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table tr.f-datepicker-selectWeek{cursor:pointer;transition:all .3s}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table tr.f-datepicker-selectWeek:not(.f-datepicker-selectedWeek):hover{background:var(--f-neutral-10)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table tr.f-datepicker-selectedWeek{background:var(--f-neutral-09)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td{padding:0;position:relative}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td:focus{border:0;outline:0;box-shadow:none}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td.f-datepicker-weeknbr{color:var(--f-text-05)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date:hover,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month:hover,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year:hover,.f-datepicker-container .f-datepicker-select-btn:hover{color:var(--f-theme-05)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td.f-datepicker-range::before{position:absolute;top:3px;right:0;bottom:3px;left:0;display:block;background:var(--f-neutral-10);border:0;border-radius:0;content:""}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-markdate{position:absolute;top:5px;left:5px;width:4px;height:4px;border-radius:50%}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year{display:block;padding:0;margin:0 auto;text-align:center;background:0 0;border-radius:2px;transition:all .3s ease;cursor:pointer}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date:active,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month:active,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year:active{color:var(--f-theme-01)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-date{width:28px;height:28px;line-height:28px;position:relative;z-index:1;border:1px solid transparent;border-radius:100%}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-month-cell,.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-year-cell{display:inline-block;padding:3px 8px;line-height:20px;border-radius:100%;border:1px solid transparent}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-current{border:1px solid var(--f-theme-03);color:var(--f-theme-03);background:#fff;box-shadow:0 0 4px 2px rgba(var(--f-theme-03),.12)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-range{color:var(--f-theme-03);border:1px solid var(--f-aid-02);background:var(--f-aid-02)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-selected{border:1px solid transparent;background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);color:#fff;border-radius:100%;box-shadow:0 2px 6px 0 rgba(var(--f-theme-03),.4)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-selected:hover{color:#fff}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-highlight{background:#75abf2;color:#fff}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-highlight:hover{color:#fff}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td.f-datepicker-no-currmonth{color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-disabled{background:var(--f-neutral-09);color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-disabled:hover{color:var(--f-text-07)}.f-datepicker-container .f-datepicker-content .f-datepicker-table-wrapper .f-datepicker-table td .f-datepicker-disabled.f-datepicker-selected{background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);color:#fff;opacity:.5}.f-datepicker-container .datepicker-content-has-timer{display:flex;flex-direction:column}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel{display:flex;flex:1 0 0;overflow:hidden;bottom:0}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker{display:flex;flex:1 1 0}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker .time-picker-panel-inner{box-shadow:none;display:flex;flex:1 1 0}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker .time-picker-panel-inner .time-picker-panel-combobox{flex:1 1 0;overflow:hidden}.f-datepicker-container .datepicker-content-has-timer .time-picker-panel .farris-timer-picker .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select{height:100%;max-height:none}.f-datepicker-container .f-datepicker-commitBtn-wrapper{width:100%;text-align:right;height:2.8125rem;display:flex;align-items:center;padding:0 1.5rem;border-top:1px solid var(--f-neutral-13)}.f-datepicker-container .f-datepicker-select-btn{outline:0;border:0;cursor:pointer;flex-shrink:1;flex-grow:1;flex-basis:0}.f-datepicker-container .datepicker-multi-days-wrapper{border-left:1px solid var(--f-neutral-13)}.f-datepicker-multi-selectdays-header{border-bottom:1px solid var(--f-neutral-13)}.f-datepicker-multi-selectdays-clear{color:var(--f-text-09)}.f-datepicker-multi-selectdays-clear:hover{color:var(--f-theme-05)}.f-datepicker-multi-selectdays{color:var(--f-text-02)}.f-datepicker-multi-selectdays:hover{background:var(--f-neutral-10);color:var(--f-text-02)}.f-datepicker-multi-selectdays .remove{color:var(--f-text-09)}.f-datepicker-multi-selectdays .remove:hover{color:var(--f-theme-05)}.f-cmp-datepicker .date-range-wrapper{display:flex;padding-top:0;padding-bottom:0;align-items:center;flex-shrink:1;flex-grow:1;flex-basis:0%;background:0 0}.f-cmp-datepicker .date-range-wrapper .sub-input{outline:0;border:0;height:100%;display:block;width:100%}.f-cmp-datepicker .date-range-wrapper .sub-input.form-control{width:100%;padding:0}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper-end{flex:1 1 auto}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper{position:relative}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper::after{content:"";position:absolute;height:1px;background:var(--f-theme-04);left:0;bottom:0;width:0;transition:all .3s linear}.dropdown,.dropdown-left,.dropdown-submenu,.dropleft,.dropleft-up,.dropright,.dropright-up,.dropup,.dropup-left{position:relative}.f-cmp-datepicker .date-range-wrapper .sub-input-spliter{margin:0 4px;flex-shrink:0;line-height:1;font-size:12px;color:var(--f-text-04)}.f-cmp-datepicker .date-range-wrapper .sub-input-wrapper.f-state-focus::after{width:100%}.f-cmp-datepicker .input-group{display:flex}.f-cmp-datepicker .input-group.f-state-focus{border-color:var(--f-theme-08);box-shadow:0 0 0 2px rgba(var(--f-theme-03),.14)}.f-cmp-datepicker .input-group.f-state-disabled,.f-cmp-datepicker .input-group.f-state-readonly{box-shadow:none}@keyframes selectorfadein{from{opacity:0}to{opacity:1}}.f-datepicker-footer{display:flex;justify-content:space-between;border-top:1px solid #e4e7ef}.f-datepicker-footer .f-datepicker-redirect{margin:4px auto;line-height:32px;font-size:1rem}.f-datepicker-footer .f-datepicker-redirect>button{font-size:14px;font-weight:800}.f-daterange-select-timerange .calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox{width:100%!important}.f-dial .f-dial-range,.f-dial .f-dial-value{fill:none}.f-dial .f-dial-text{font-size:1.3rem;text-align:center}.f-discussion-group-edit{border:1px solid var(--f-neutral-04)!important;background:var(--f-neutral-12)!important}.f-discussion-group-edit .f-discussion-group-edit-container .textarea-editor a{color:var(--f-theme-03)}.f-discussion-group-edit .f-discussion-group-edit-footer{background:var(--f-neutral-09)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-item{color:var(--f-text-06)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-item .toolbar-icon{color:var(--f-text-08)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown{background:var(--f-neutral-20)!important;box-shadow:0 2px 20px 0 rgba(3,18,51,.12)!important}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-discussion-group-about-dropdown-list-detail .about-list-detail-text{color:var(--f-text-02)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-discussion-group-about-dropdown-list-detail .about-list-detail-subtext{color:var(--f-text-06)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-icon-check,.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .f-icon-tick::before{border:1px solid var(--f-neutral-02);color:#fff}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item.active .f-icon-check,.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item.active .f-icon-tick::before{background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item .about-list-item-avatar-tip{background-color:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);color:#fff}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-discussion-group-about-dropdown-list-item:not(.about-dropdown-list-item-empty):hover{background:var(--f-neutral-11)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-about .f-discussion-group-about-dropdown .f-about-list-btns{border-top:1px solid var(--f-neutral-06)!important;background:var(--f-neutral-09)!important}.f-discussion-dialog-content-left .f-discussion-tab-content,.f-discussion-dialog-content-right{border:1px solid var(--f-neutral-04)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-dropdown .toolbar-icon{color:var(--f-text-09)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-dropdown .toolbar-dropdown-list{background:0 2px 20px 0 rgba(3,18,51,.12);box-shadow:var(--f-neutral-20)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-toolbar .f-discussion-group-edit-toolbar-dropdown .toolbar-dropdown-list ul li:hover{background:var(--f-neutral-11)}.f-discussion-group-edit .f-discussion-group-edit-footer .f-discussion-group-edit-btns .f-discussion-cancel,.farris-discussion-group-reply-tip{color:var(--f-text-04)}.f-discussion-dialog-content-left .f-discussion-tab-content .f-discussion-personnel-content .f-discussion-personnel-crumbs .crumbs-list-item{color:var(--f-text-02)}.f-discussion-dialog-content-left .f-discussion-tab-content .f-discussion-personnel-content .f-discussion-personnel-crumbs .crumbs-list-item.crumbs-list-item-disabled{color:var(--f-text-07)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-header{background:var(--f-neutral-09)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item-text .f-discussion-selected-name{color:var(--f-text-02)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item-tip{color:var(--f-text-09)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item-remove{color:var(--f-theme-05)}.f-discussion-dialog-content-right .f-discussion-selected-personnel-content .f-discussion-selected-list .f-discussion-selected-item:hover{background:var(--f-neutral-11)}.f-discussion-dialog-content .f-discussion-personnel-item:hover,.f-listview-active .f-tmpl-card--header-multicontent01,.f-listview-active .f-tmpl-list--columns01{background:var(--f-aid-03)}.f-discussion-dialog-content .f-discussion-personnel-item-text .f-discussion-personnel-name{color:var(--f-text-01)}.f-discussion-dialog-content .f-discussion-personnel-item-text .f-discussion-personnel-mail{color:var(--f-text-06)}.f-discussion-dialog-content .f-discussion-personnel-item.active,.f-discussion-dialog-content .f-discussion-personnel-item.selected{background:var(--f-aid-02)}.f-discussion-dialog-content .f-discussion-personnel-item.selected .f-discussion-personnel-mail,.f-discussion-dialog-content .f-discussion-personnel-item.selected .f-discussion-personnel-name{color:#c1c1c1}.f-discussion-dialog-content .f-discussion-section-list-empty .f-icon{color:var(--f-text-08)}.f-discussion-dialog-content .f-discussion-section-list-empty .section-list-empty-text{color:var(--f-text-09)}.f-discussion-dialog-content .f-discussion-personnel-item-tip{color:#fff;background-color:#4796FF}.f-discussion-dialog-content .f-discussion-section-list .section-list-item-name{color:var(--f-text-02);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-discussion-dialog-content .f-discussion-section-list .section-list-item-next{color:var(--f-theme-03)}.f-discussion-dialog-content .f-discussion-section-list .section-list-item-next::before{background:var(--f-neutral-06)}.f-discussion-dialog-content .f-discussion-section-list .section-list-item:hover{background:var(--f-neutral-11)}.f-discussion-dialog-content .f-discussion-section-list .person-list-item-content .section-list-item-name{color:var(--f-text-02)}.f-discussion-dialog-content .f-discussion-section-list .person-list-item-content .section-list-item-tip{color:var(--f-text-09)}.f-discussion-person-list-page .section-page-text{color:var(--f-text-05)}.f-discussion-person-list-page:hover .section-page-text{color:var(--f-text-02)}.f-discussion-group-content-item .discussion-item-avatar-tip{color:var(--f-text-00);background-color:var(--f-theme-05)}.dropdown-menu,.f-discussion-group-content-item .discussion-item-inner .discussion-item-username{color:var(--f-text-02)}.f-discussion-group-content-item .discussion-item-inner{border-bottom:1px solid var(--f-neutral-06)}.dropdown-item,.f-discussion-group-content-item .discussion-item-inner .discussion-item-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply-content,.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply-title{color:var(--f-text-04)}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply{background:var(--f-neutral-09)!important;border-radius:6px!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text-reply-title .discussion-item-text-reply-name{color:rgba(var(--f-theme-05),.8)}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-time{color:var(--f-text-09)}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start .discussion-item-btns-start-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start .f-icon{color:var(--f-text-12)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:hover .discussion-item-btns-start-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:hover .f-icon{color:var(--f-theme-05)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:active .discussion-item-btns-start-text,.f-discussion-group-content-item .discussion-item-inner .discussion-item-footer .discussion-item-btns .discussion-item-btns-start:active .f-icon{color:var(--f-theme-01)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text .discussion-item-text-message a{color:var(--f-theme-03)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text .discussion-item-text-message a:hover{color:var(--f-theme-05)!important}.f-discussion-group-content-item .discussion-item-inner .discussion-item-text .discussion-item-text-message a:active{color:var(--f-theme-01)!important}.dropdown-toggle::after{width:1.125em;height:1em;font-variant:normal;font-family:FarrisIcons;font-style:normal;text-transform:none;font-size:1rem;font-weight:400;line-height:1.2;text-align:center;border:none;display:inline-block;margin-left:.125rem;margin-right:-.375rem;vertical-align:.125rem;content:"\e015"}.dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropdown-menu{position:absolute;top:100%;left:0;z-index:300;display:none;float:left;min-width:10rem;padding:.25rem;margin:.25rem 0;font-size:.8125rem;text-align:left;list-style:none;background-color:var(--f-neutral-20);background-clip:padding-box;border:0 solid rgba(0,0,0,.15);border-radius:6px;box-shadow:0 2px 20px 0 rgba(3,18,51,.12)}.dropright .dropdown-toggle::after,.dropright-up .dropdown-toggle::after,.dropup .dropdown-toggle::after,.dropup-left .dropdown-toggle::after{width:1.125em;font-variant:normal;font-family:FarrisIcons;font-style:normal;font-size:1rem;font-weight:400;line-height:1.2;text-align:center;border:none;display:inline-block;height:1em}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.25rem}.dropup .dropdown-toggle::after{text-transform:none;margin-left:.125rem;margin-right:-.375rem;vertical-align:.125rem;content:"\e013"}.dropup .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropup-left .dropdown-menu{top:auto;right:0;left:auto;bottom:100%;margin-top:0;margin-bottom:.25rem}.dropup-left .dropdown-toggle::after{text-transform:none;margin-left:.125rem;margin-right:-.375rem;vertical-align:.125rem;content:"\e013"}.dropleft .dropdown-toggle::before,.dropleft-up .dropdown-toggle::before,.dropright .dropdown-toggle::after,.dropright-up .dropdown-toggle::after{content:"\e016";text-transform:none}.dropup-left .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.25rem}.dropright .dropdown-toggle::after{margin-left:.125rem;margin-right:-.375rem}.dropright .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropright .dropdown-toggle::after{vertical-align:0}.dropright-up .dropdown-menu{top:auto;right:auto;left:100%;bottom:0;margin-top:0;margin-left:.25rem}.dropright-up .dropdown-toggle::after{margin-left:.125rem;margin-right:-.375rem}.dropright-up .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropleft .dropdown-toggle::after,.dropleft-up .dropdown-toggle::after{content:"\e015";margin-right:-.375rem;width:1.125em;font-size:1rem;line-height:1.2;text-align:center;border:none;margin-left:.125rem;font-weight:400;font-variant:normal;font-style:normal;font-family:FarrisIcons}.dropright-up .dropdown-toggle::after{vertical-align:0}.dropleft-up .dropdown-menu{top:auto;right:100%;left:auto;bottom:0;margin-top:0;margin-bottom:.25rem}.dropleft-up .dropdown-toggle::after{height:1em;text-transform:none;vertical-align:.125rem;display:none}.dropleft-up .dropdown-toggle::before{width:1.125em;height:1em;font-variant:normal;font-family:FarrisIcons;font-style:normal;font-size:1rem;font-weight:400;line-height:1.2;text-align:center;border:none;display:inline-block;margin-left:.125rem}.dropleft-up .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropleft-up .dropdown-toggle::before{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.25rem}.dropleft .dropdown-toggle::after{height:1em;text-transform:none;vertical-align:.125rem;display:none}.dropleft .dropdown-toggle::before{width:1.125em;height:1em;font-variant:normal;font-family:FarrisIcons;font-style:normal;font-size:1rem;font-weight:400;line-height:1.2;text-align:center;border:none;display:inline-block;margin-left:.125rem}.dropdown-header,.dropdown-item,.dropdown-item-text,.dropdown-item.btn-icontext,.dropdown-menu.show,.f-filter{display:block}.dropleft .dropdown-toggle:empty::after{margin-left:0;margin-right:0;vertical-align:-.125rem}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;overflow:hidden;border-top:1px solid var(--f-neutral-06)}.dropdown-item{line-height:1.25rem;clear:both;font-weight:400;text-align:inherit;white-space:nowrap;background-color:transparent;border:0;cursor:pointer;border-radius:6px}.dropdown-item:focus,.dropdown-item:hover{color:var(--f-text-02);text-decoration:none;background-color:var(--f-neutral-11)}.dropdown-item.active,.dropdown-item:active{color:var(--f-text-02);text-decoration:none;background-color:var(--f-neutral-10)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--f-text-09);background-color:transparent;cursor:default}.dropdown-header{padding:.25rem .5rem;margin-bottom:0;font-size:.75rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{padding:.3125rem .5rem;color:var(--f-text-04)}.dropdown-divider{margin:.25rem 0}.btn-group .btn+.dropdown-toggle-split{margin-left:-1px}.btn-group .btn-info+.dropdown-toggle-split,.btn-group .btn-primary+.dropdown-toggle-split,.btn-group .btn-success+.dropdown-toggle-split,.btn-group .btn-warning+.dropdown-toggle-split{margin-left:-1px;border-left-color:var(--f-neutral-06)}.dropdown-item{padding:.25rem .5rem}.dropdown-left>.dropdown-menu{right:0;left:auto}.dropleft>.dropdown-menu{top:0;right:100%;left:auto!important;margin-right:-1px}.dropdown-submenu .dropdown-item{padding-right:24px}.dropdown-submenu .dropdown-item.dropdown-toggle{padding-right:1rem}.dropdown-submenu>.dropdown-toggle.dropdown-toggle-split{position:absolute;width:24px;height:24px;top:50%;right:0;left:auto;margin-top:-12px;cursor:pointer;border-radius:4px;text-align:center}.dropdown-submenu>.dropdown-toggle.dropdown-toggle-split:hover{color:var(--f-text-04);background:var(--f-aid-02)}.dropdown-item .btn-link,.dropdown-item .btn-link:hover,.f-btn-icon.f-bare,.f-btn-icon.f-bare.f-state-active,.f-btn-icon.f-bare.f-state-hover,.f-btn-icon.f-bare:active,.f-btn-icon.f-bare:hover,.f-btn-icon.f-bare:hover.f-state-active,.f-btn-icon.f-bare:hover:active{color:inherit}.dropdown-submenu .dropdown-toggle:empty:after{line-height:1.5}.dropdown-submenu .dropdown-toggle:after{content:"\e014"}.dropdown-submenu>.dropdown-item.dropdown-toggle::after,.dropdown-submenu>.dropdown-item.dropdown-toggle::before{position:absolute;top:50%;right:9px;left:auto;margin-top:-.5em}.dropdown-submenu.dropleft>.dropdown-item.dropdown-toggle::before,.dropdown-submenu.dropright>.dropdown-item.dropdown-toggle::before{margin-top:-.25rem}.btn-group .btn-secondary+.dropdown-toggle-split,.dropright>.dropdown-menu{margin-left:-1px}.f-response-content .dropdown-item.f-rt-btn,.f-response-content .dropdown-item.f-rt-toggle{cursor:pointer}.f-response-content .dropdown-item.f-rt-btn.disabled,.f-response-content .dropdown-item.f-rt-toggle.disabled{cursor:default}.farris-dropdown.btn-group .dropdown-menu{max-height:unset!important;width:unset!important}.f-filter-footer .footer-container,.f-sort-editor .footer-container{height:2rem;min-height:2rem;background-color:var(--f-neutral-07);line-height:2rem;flex-shrink:0}.f-list-filter .filter-expand{color:var(--f-text-07);cursor:pointer}.f-list-filter .filter-expand:hover{color:var(--f-theme-05)}.f-list-filter .filter-expand.active{color:var(--f-theme-03);background:rgba(var(--f-theme-05),.1)}.f-list-filter .filter-expand .filter-expand-tag{background-color:var(--f-semantic-danger-01)}.f-list-filter .filter-inputs-extend{border:none;background:var(--f-neutral-20)}.f-filter-wrapper .f-filter-inputs-extend .f-filter-typelist-arrow,.f-list-filter .filter-inputs-extend .filter-typelist-arrow{border-top-color:var(--f-neutral-20);border-right-color:transparent;border-bottom-color:transparent;border-left-color:var(--f-neutral-20)}.f-list-filter .filter-inputs-extend .filter-typelist-arrow{background:0 0;box-shadow:-2px -2px 5px rgba(0,0,0,.08)}.f-list-filter .filter-inputs-extend .filter-form-btns .filter-form-btn-reset::after{background:var(--f-neutral-06)}.f-list-filter .filter-search-btn-reset{color:var(--f-text-04)}.f-list-filter .filter-search-btn-reset:hover{color:var(--f-theme-05)}.f-list-filter .filter-inputs-extend{box-shadow:0 0 5px 0 rgba(0,0,0,.15)!important;border-radius:10px}.f-filter{flex-grow:1;flex-shrink:1;flex-basis:0;max-width:100%}.f-filter-wrapper{display:flex;align-items:flex-start;position:relative}.f-filter-wrapper .f-filter-wrapper-inner{display:flex;align-items:flex-start}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn{display:flex;align-items:center;flex-shrink:0;height:26px;line-height:26px;padding-left:10px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn .extend-btn-text{margin-right:2px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn .extend-btn-arrow{margin-left:8px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced{flex-shrink:0;width:24px;height:24px;margin-left:21px;line-height:24px;color:var(--f-text-07);cursor:pointer}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced:hover{color:var(--f-theme-05)}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced.active{box-shadow:0 2px 5px 0 rgba(0,0,0,.15);color:var(--f-theme-01);background:rgba(var(--f-theme-03),.1);border-radius:2px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced .f-icon{display:block;line-height:24px;margin:0 auto;font-size:18px}.f-filter-wrapper .f-filter-wrapper-inner .f-filter-extend-btn-advanced .filter-expand-tag{position:absolute;right:0;top:0;display:block;width:6px;height:6px;background-color:#f5222d;border-radius:50%}.f-filter-wrapper .f-filter-inputs-extend{width:429px;right:0;top:38px;border-radius:10px;background-color:var(--f-neutral-20);box-shadow:0 0 5px 0 rgba(0,0,0,.15);z-index:101;padding:20px 0}.f-filter-wrapper .f-filter-inputs-extend .f-filter-typelist-arrow{display:block;position:absolute;right:7px;top:-4px;width:8.49px;height:8.49px;background:0 0;border-style:solid;border-width:4.24px;box-shadow:-2px -2px 5px rgba(0,0,0,.08);transform:translateX(-50%) rotate(45deg)}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns{margin-top:6px;padding:0 14px}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns .btn{margin-left:6px}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns .filter-form-btn-reset{position:relative;padding-right:10px;margin-right:4px}.f-filter-wrapper .f-filter-inputs-extend .f-filter-form-btns .filter-form-btn-reset::after{content:"";position:absolute;right:0;top:50%;width:1px;height:16px;margin-top:-8px;background:#d9d9d9}.f-filter-wrapper .f-filter-main{display:flex;justify-content:space-between}.f-filter-wrapper .f-filter-main .f-filter-list-wrapper{max-width:100%;margin-right:26px;overflow:hidden}.f-filter-wrapper .f-filter-list{display:flex;align-items:center;flex-wrap:nowrap;height:26px}.f-filter-wrapper .f-filter-list .f-filter-item{display:flex;align-items:center;flex-shrink:0;position:relative;height:26px;line-height:26px;margin-right:8px;font-size:13px;color:var(--f-text-02);border:1px solid #fff;border-radius:3px;cursor:pointer}.f-filter-wrapper .f-filter-list .f-filter-item-text{flex-shrink:0;color:var(--f-text-04)}.f-filter-wrapper .f-filter-list .f-filter-item-content{margin-left:4px;color:var(--f-text-02);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-filter-wrapper .f-filter-list .f-filter-item-arrow{flex-shrink:0;margin-left:8px;color:var(--f-text-04)}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-edit,.f-filter-wrapper .f-filter-list .f-filter-item:hover{background:rgba(var(--f-aid-05),.35);border-color:var(--f-aid-05)}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-actived{background:rgba(var(--f-aid-05),.35);border:1px solid var(--f-aid-05);border-radius:3px}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-actived:hover .f-filter-item-clear{display:flex}.f-filter-wrapper .f-filter-list .f-filter-item.f-filter-item-actived:hover .f-filter-item-arrow{opacity:0}.f-filter-wrapper .f-filter-list .f-filter-item-clear{display:none;flex-direction:column;justify-content:center;position:absolute;right:2px;top:0;bottom:0;cursor:pointer}.f-filter-wrapper .f-filter-list .f-filter-item-clear .f-icon{font-size:12px;color:#6388FF}.f-filter-wrapper .f-filter-list .f-filter-item-required{flex-shrink:0;margin-right:2px}.f-filter-wrapper .f-filter-list.f-filter-list-extend .f-filter-item-last,.f-filter-wrapper .f-filter-toolbars .btn,.form-group--has-tips .farris-input-wrap{margin-right:18px}.f-filter-wrapper .f-filter-list .f-filter-item-inner{display:flex;align-items:center;max-width:286px}.f-filter-wrapper .f-filter-list.f-filter-list-extend{height:auto;flex-wrap:wrap}.f-filter-wrapper .f-filter-list.f-filter-list-extend .f-filter-item{margin-bottom:6px}.f-filter-wrapper .f-filter-list-ellipsis{flex-shrink:0;width:48px;height:26px;line-height:20px;padding-right:18px;text-align:center;cursor:pointer}.f-filter-wrapper .f-filter-toolbars{flex-shrink:0;display:flex;align-items:center;padding:3px 0}.f-filter-wrapper .f-filter-list-extend .f-filter-toolbars{margin-bottom:8px}.f-filter-wrapper .f-filter-item-reminder{position:absolute;top:calc(100% - 6px);left:0;padding-top:11px;z-index:100}.f-filter-wrapper .f-filter-item-reminder .reminder-arrow{position:absolute;top:2px;left:10%}.f-filter-wrapper .f-filter-item-reminder .reminder-arrow::after{position:absolute;top:2px;display:block;content:"";border-color:transparent;border-style:solid;border-width:0 6px 8px;border-bottom-color:var(--f-theme-03)}.f-filter-wrapper .f-filter-item-reminder .reminder-inner{padding:8px 12px;font-size:13px;color:#fff;white-space:nowrap;background:linear-gradient(46deg,#2E77FF 0,#2A87FF 100%);box-shadow:2px 2px 8px 0 rgba(0,0,0,.14);border-radius:10px}.f-filter-wrapper .f-filter-item-reminder .reminder-inner .f-icon{margin-right:6px;font-size:13px}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio{margin-bottom:0;margin-top:0}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox:last-child,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio:last-child{margin-bottom:0}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox .custom-control-label,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio .custom-control-label{display:block;width:100%;line-height:30px}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox .custom-control-label::before,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio .custom-control-label::before{top:8px}.f-filter-panel-form .filter-type-checkboxgroup .farris-form-group .farris-input-wrap .custom-checkbox:hover,.f-filter-panel-form .filter-type-radio .farris-form-group .farris-input-wrap .custom-radio:hover{background-color:var(--f-neutral-11)}.f-sidebar-filter-main .f-sidebar-filter-footer{display:flex;align-items:center;justify-content:space-between!important;height:72px!important;padding:10px 24px!important;border-top:1px dashed #eaedf3!important;background:var(--f-neutral-00)!important}.f-sidebar-filter-main .f-sidebar-header .f-tmpl-for-title-withline::before{display:none}.f-sidebar-filter-main .f-sidebar-filter-content{padding:24px 48px 24px 12px!important}.f-sidebar-filter-main .f-sidebar-filter-content .farris-form-controls-inline .farris-group-wrap .form-group{margin-bottom:10px}.f-sidebar-filter-main .f-sidebar-filter-btns .btn{height:32px;margin-right:12px}.f-sidebar-filter-main .f-sidebar-filter-btns .f-sidebar-filter-btn-confirm{padding-left:66px;padding-right:66px;margin-right:0}.f-filter-inputs-extend-list .form-group,.f-sidebar-filter-list .form-group{display:block}.f-filter-inputs-extend-list.farris-form-controls-inline .form-group,.f-sidebar-filter-list.farris-form-controls-inline .form-group{display:flex}.f-filter-panel-flexible-icon{flex-shrink:0;margin:0 6px;font-size:14px;color:#999}.f-filter-panel-wrapper{position:fixed;z-index:1050;top:0;left:0;height:100%;width:100%;pointer-events:auto}.f-filter-panel{position:absolute;z-index:100;padding-top:14px}.f-filter-panel-header{display:flex;justify-content:space-between;align-items:center}.f-filter-panel-header .panel-header-title{line-height:22px;font-size:15px;color:rgba(0,0,0,.85);font-weight:600}.f-filter-panel-content{padding-top:8px}.f-filter-panel-content .filter-type-checkboxgroup{max-height:216px;padding:6px 8px 6px 0;border-radius:2px;overflow-y:auto}.f-filter-panel-content .filter-type-checkboxgroup .custom-checkbox{padding-left:14px}.f-filter-panel-footer{display:flex;justify-content:space-between;padding-top:16px;align-items:center}.f-filter-panel-footer .filter-panel-submit{padding-left:22px;padding-right:22px;margin-left:8px}.f-filter-panel-footer .btn-link{padding-right:8px}.f-filter-panel-footer .btn-empty{position:relative;padding-left:8px}.f-filter-panel-footer .btn-empty::before{position:absolute;left:0;top:50%;width:1px;height:16px;margin-top:-8px;background-color:var(--f-neutral-08);content:""}.f-filter-panel .f-filter-panel-inner{position:relative;min-width:380px;padding:14px 24px 18px;background:var(--f-neutral-20);box-shadow:0 2px 12px 0 rgba(31,35,41,.1);border-radius:10px}.f-filter-panel .f-filter-panel-inner.f-filter-panel-inner-xs{padding:10px 4px 16px}.f-filter-panel .f-filter-panel-inner.f-filter-panel-inner-auto{min-width:auto;padding:0}.f-filter-panel-arrow{position:absolute;top:-12px;left:26px}.f-filter-panel-arrow::after{position:absolute;top:2px;display:block;content:"";border-color:transparent;border-style:solid;border-width:0 8px 10px;border-bottom-color:var(--f-neutral-20)}.f-filter-panel.f-filter-panel-radio .f-filter-panel-inner{min-width:230px}.f-filter-panel .f-panel-filter-tip{display:flex;align-items:center;margin-bottom:12px}.f-filter-panel .f-panel-filter-tip .panel-filter-tip-text{margin-right:8px}.f-filter-panel .panel-flexible-range-wrapper{align-items:center}.f-filter-panel .panel-flexible-range-wrapper .f-icon{flex-shrink:0;margin:0 8px;font-size:14px;color:#999}.f-filter-panel .panel-flexible-range-wrapper .f-cmp-datepicker,.f-filter-panel .panel-flexible-range-wrapper .f-cmp-number-spinner{width:150px}.f-filter-panel-date-tags{display:flex;flex-direction:row;align-items:center;padding-top:12px}.f-filter-panel-date-tags .panel-date-tag{height:24px;line-height:22px;padding:0 14px;margin-right:8px;font-size:12px;background-color:var(--f-neutral-00);border:1px solid var(--f-neutral-08);border-radius:13px;cursor:pointer}.f-filter-panel-date-tags .panel-date-tag.active{background:rgba(var(--f-theme-03),.09);border:1px solid}.filter-panel-checkbox{width:100%;height:30px;line-height:30px;margin:0;padding-right:0;background:var(--f-neutral-09)}.filter-panel-checkbox .custom-control-label{display:block;cursor:pointer;width:100%}.filter-panel-checkbox .custom-control-label::before{top:50%;transform:translateY(-50%)}.f-filter-panel-radiogroup .panel-radiogroup-item{display:flex;align-items:center;padding:.5rem 1.375rem;border:0;cursor:pointer}.f-filter-panel-radiogroup .panel-radiogroup-item.panel-radiogroup-item-active{color:var(--f-text-02);background:var(--f-neutral-10);border-radius:3px}.f-filter-panel-radiogroup .panel-radiogroup-item-text{font-size:14px;line-height:18px}.f-filter-panel-radiogroup .panel-radiogroup-item:hover{color:var(--f-text-02);background-color:var(--f-neutral-11)}.f-filter-search-result-panel{position:absolute;left:0;top:26px;z-index:100;width:200px;padding:8px;color:rgba(0,0,0,.85);background-color:#fff;box-shadow:0 2px 12px 0 rgba(31,35,41,.1);border-radius:4px}.f-filter-search-result-panel .search-result-title{line-height:22px;font-size:14px;font-weight:600}.f-filter-search-result-panel .search-result-list .search-result-item{line-height:26px;font-size:14px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.f-filter-search-result-panel .search-result-list .search-result-item:hover{background:rgba(42,135,255,.06)}.f-filter-panel-search-tags{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;max-width:320px;padding-top:12px}.f-filter-panel-search-tags .panel-search-tag{display:flex;align-items:center;height:24px;line-height:22px;margin-right:8px;margin-bottom:8px;font-size:12px;color:#333;background-color:#fff;border:1px solid rgba(216,220,230,.6);border-radius:2px;cursor:pointer}.f-filter-panel-search-tags .panel-search-tag:last-child{margin-right:0}.f-filter-panel-search-tags .panel-search-tag .panel-search-tag-text{max-width:72px;padding-left:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.f-filter-panel-search-tags .panel-search-tag .panel-search-tag-remove{height:22px;line-height:22px;margin-left:6px;margin-right:8px;font-size:14px;color:#999;cursor:pointer}.f-filter-panel-search-tags .panel-search-tag:active{background:rgba(42,135,255,.06);border:1px solid rgba(42,135,255,.16)}.f-filter-container{padding-bottom:12px}.f-filter-wrapper .f-filter-list .f-filter-item{padding:0 20px 0 12px!important}.f-filter-wrapper .f-filter-list .f-filter-item-clear{padding:0 2px!important}.container,.container-fluid{padding-right:14px;padding-left:14px;margin-right:auto;margin-left:auto;width:100%}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:888px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-14px;margin-left:-14px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-el,.col-el-1,.col-el-10,.col-el-11,.col-el-12,.col-el-2,.col-el-3,.col-el-4,.col-el-5,.col-el-6,.col-el-7,.col-el-8,.col-el-9,.col-el-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:14px;padding-left:14px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}.f-area-response [class*=col-xs]{flex:none;max-width:none}.f-area-response.f-area-response--xs .col-xs-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--xs .col-xs-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--xs .col-xs-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--xs .col-xs-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--xs .col-xs-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--xs .col-xs-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--xs .col-xs-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--xs .col-xs-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--xs .col-xs-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--xs .col-xs-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--xs .col-xs-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--xs .col-xs-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-sm-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-sm-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-sm-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-sm-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}.f-area-response [class*=col-sm]{flex:none;max-width:none}.f-area-response.f-area-response--sm .col-sm-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--sm .col-sm-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--sm .col-sm-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--sm .col-sm-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--sm .col-sm-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--sm .col-sm-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--sm .col-sm-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--sm .col-sm-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--sm .col-sm-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--sm .col-sm-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--sm .col-sm-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--sm .col-sm-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-md-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-md-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-md-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-md-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-md-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-md-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-md-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-md-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-md-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-md-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-md-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-md-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}.f-area-response [class*=col-md]{flex:none;max-width:none}.f-area-response.f-area-response--md .col-md-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--md .col-md-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--md .col-md-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--md .col-md-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--md .col-md-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--md .col-md-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--md .col-md-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--md .col-md-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--md .col-md-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--md .col-md-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--md .col-md-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--md .col-md-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:888px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-lg-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-lg-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-lg-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-lg-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}.f-area-response [class*=col-lg]{flex:none;max-width:none}.f-area-response.f-area-response--lg .col-lg-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--lg .col-lg-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--lg .col-lg-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--lg .col-lg-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--lg .col-lg-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--lg .col-lg-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--lg .col-lg-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--lg .col-lg-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--lg .col-lg-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--lg .col-lg-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--lg .col-lg-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--lg .col-lg-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-xl-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-xl-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-xl-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-xl-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.f-area-response [class*=col-xl]{flex:none;max-width:none}.f-area-response.f-area-response--xl .col-xl-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--xl .col-xl-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--xl .col-xl-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--xl .col-xl-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--xl .col-xl-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--xl .col-xl-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--xl .col-xl-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--xl .col-xl-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--xl .col-xl-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--xl .col-xl-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--xl .col-xl-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--xl .col-xl-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@media (min-width:1690px){.col-el{flex-basis:0;flex-grow:1;max-width:100%}.col-el-auto{flex-grow:0;flex-shrink:0;flex-basis:auto;width:auto;max-width:none}.col-el-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.col-el-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.col-el-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.col-el-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.col-el-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.col-el-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.col-el-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.col-el-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.col-el-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.col-el-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.col-el-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.col-el-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}.order-el-first{order:-1}.order-el-last{order:13}.order-el-0{order:0}.order-el-1{order:1}.order-el-2{order:2}.order-el-3{order:3}.order-el-4{order:4}.order-el-5{order:5}.order-el-6{order:6}.order-el-7{order:7}.order-el-8{order:8}.order-el-9{order:9}.order-el-10{order:10}.order-el-11{order:11}.order-el-12{order:12}.offset-el-0{margin-left:0}.offset-el-1{margin-left:8.3333333333%}.offset-el-2{margin-left:16.6666666667%}.offset-el-3{margin-left:25%}.offset-el-4{margin-left:33.3333333333%}.offset-el-5{margin-left:41.6666666667%}.offset-el-6{margin-left:50%}.offset-el-7{margin-left:58.3333333333%}.offset-el-8{margin-left:66.6666666667%}.offset-el-9{margin-left:75%}.offset-el-10{margin-left:83.3333333333%}.offset-el-11{margin-left:91.6666666667%}}.f-area-response [class*=col-el]{flex:none;max-width:none}.f-area-response.f-area-response--el .col-el-1{flex-grow:0;flex-shrink:0;flex-basis:8.3333333333%;max-width:8.3333333333%}.f-area-response.f-area-response--el .col-el-2{flex-grow:0;flex-shrink:0;flex-basis:16.6666666667%;max-width:16.6666666667%}.f-area-response.f-area-response--el .col-el-3{flex-grow:0;flex-shrink:0;flex-basis:25%;max-width:25%}.f-area-response.f-area-response--el .col-el-4{flex-grow:0;flex-shrink:0;flex-basis:33.3333333333%;max-width:33.3333333333%}.f-area-response.f-area-response--el .col-el-5{flex-grow:0;flex-shrink:0;flex-basis:41.6666666667%;max-width:41.6666666667%}.f-area-response.f-area-response--el .col-el-6{flex-grow:0;flex-shrink:0;flex-basis:50%;max-width:50%}.f-area-response.f-area-response--el .col-el-7{flex-grow:0;flex-shrink:0;flex-basis:58.3333333333%;max-width:58.3333333333%}.f-area-response.f-area-response--el .col-el-8{flex-grow:0;flex-shrink:0;flex-basis:66.6666666667%;max-width:66.6666666667%}.f-area-response.f-area-response--el .col-el-9{flex-grow:0;flex-shrink:0;flex-basis:75%;max-width:75%}.f-area-response.f-area-response--el .col-el-10{flex-grow:0;flex-shrink:0;flex-basis:83.3333333333%;max-width:83.3333333333%}.f-area-response.f-area-response--el .col-el-11{flex-grow:0;flex-shrink:0;flex-basis:91.6666666667%;max-width:91.6666666667%}.f-area-response.f-area-response--el .col-el-12{flex-grow:0;flex-shrink:0;flex-basis:100%;max-width:100%}@font-face{font-family:FarrisIcons;font-style:normal;font-weight:400;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI2JE+JAAABjAAAAGBjbWFwTohH7gAAC/AAACWUZ2x5ZqfrFDEAADaIAAH0DGhlYWQnvvaKAAAA4AAAADZoaGVhCNUHTgAAALwAAAAkaG10eApz/50AAAHsAAAKBGxvY2GWVxNEAAAxhAAABQRtYXhwA6wBEAAAARgAAAAgbmFtZchH0mwAAiqUAAACi3Bvc3QSpDltAAItIAAAK3cAAQAAA4D/gABcBVX/9v/3BQAAAQAAAAAAAAAAAAAAAAAAAoEAAQAAAAEAAGP+/t1fDzz1AAsEAAAAAADh1NlIAAAAAOHU2Uj/9v9xBQADjAAAAAgAAgAAAAAAAAABAAACgQEEACEAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQEAgGQAAUAAAKJAswAAACPAokCzAAAAesAMgEIAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOAA7LcDgP+AAAAD3ACPAAAAAQAAAAAAAAAAAAAAAAACBAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQA//8EAP//BAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAQAABAD/+QQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/5BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/2BAD/9gQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//kEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAP//BAD//wQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEVQAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABEQAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEkgAABJIAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAASSAAAEAAAABJIAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAP/9BAAAAAQAAAAEAAAABAD//wQA//8EAP/9BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAREAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//8EAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQ8AAAENf/+BAAAAAQA//8EAAAABAD//wQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//4ETgAABAAAAAVVAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE/wAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAAHMAABAAAAAAYqAAMAAQAAACwAAwAKAAAHMAAEBf4AAAA4ACAABAAY4DLhSeIO4wrlKuYr5kPmmua85tfnBegs6SLrGOs/60/rb+t/64nrqeu568nr2evp6/nsqey3//8AAOAA4QDiAOMA5QDmAOYt5kXmvObX5wDoAOkA6wTrGutB61HrceuB65rrsOvA69Dr4evw7KDssP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAOACcAS4BSgFeAbICCAI0At4C3gLeAugDQAOEA6wD9gQSBE4EagR6BJgEqgS8BM4E3gTwBQIAAAGPAGsAZgBhAoACfgJ/An0AZwBlAGIAZAJzAnECcgJwAngAYwBsAnwCegJ7AnkAbQBoAGkAagBeAA8AEQAVABMAEgBYAFMCdgJ3AnUBrwBSAFYAUQBZAF0AXwBgAFoCbwBOAFUCXgAEAE8AWwA5ABQAOgA9AAMBrwA/AFwASwJ0AEYAQgBKADwANwA7ADgAPgAKAAgABwBAACECawJsAEgCagHpAm0AKgHoAm4AIwAkACkAJgAWAA0AJQBBAEUATABJAEQARwAoACcAIAAiADYALgAvADIBsAA1Ak4ATQBDAAkCaQBXADQAFwAMADEALQAsADMAMAArAB0AGgAZAAsAHwAbABwAGAAeAAYABQAQAFAAVAGOAYUBiQGMAmgCZwHnAkkCQAGHAYsCSAJHAY0BiAGGAYoBfAGDAX8BgQGCAYABewGEAX4BfQF1AXMBcQFyAXkBdwF6AXQBeAF2AWoBbQFvAWcBaQFsAW4BcAFoAWsBZgFiAV0BZAFfAWEBYwFeAWUBYAFDAUgBSQFAAUIBRgFHAUUBQQFPAVABTQFLAU4BTAFEAVwBWgFbAVYBVAFXAVgBVQFZAVIBUwFKAVEBAAECAQEA/wD6ASYBPQEsATsBOQEvAPsBKgE0APwBBwEJAREBCgEIAQ0BBgEFAQ4BAwEQATMBIQEgAPUAkAE3ARkBMgD4AI4AigEkAI8AiwEXAP0BOgE+AT8BMQD+ARUBEwESAR8A+QEbARQBGAEaATUBIgDzASMBKwELARwBHgEoAScBJQEtATgBNgEEAQwBFgD3APIBKQD0AS4BMAE8AR0BDwCMAI0AngCXAJ8AkQCTAJ0AqACmAKAApwClAKsAnACWAJIAlACbAJoAlQCYAH4AfACjAKQAqgCtAK4AoQB9AIEAiQCHAIQAiACAAIYAhQB7AKkB5wD2AIIAfwCDAG4AegB5AHgAdwB2AHMAdAB1AHIAcQBvAHAArACiAJkA5gDsAOsA7gDpAOoA7wDnAOMA5ADwAO0A5QDoAPEA2QDbANoA4gDcAN4A3QDfAOAA4QDXANAA0wDRANYA1QDUANIAzwDYAMYAzADIAMkAxQDOAMoAxwDNAMsAwQDAAMMAvADCALsAxAC/AL0AvgCwALkArwC1ALQAtgCyALgAsQC6ALcAswJfAlwCYAJmAmUCZAJjAmICYQJdAlsCWgJZAlMCVgJRAlICVAJVAlcCWAJQAk8CTgJNAkwBsAJLAkoCRQJGAkECQgJDAkQCMQIwAj8CPgI9AjwCOwI4AjkCOgIzAjQCNQI2AjcCMgIvAi4CLQIsAisCKgIpAigCJwImAiUCJAIjAiICIAIhAh8CHgIdAhwCGwIaAhkCGAIXAhYCFQIUAhMCEgIRAhACDwIOAg0CDAILAgoCCQIIAgcCBgIFAgQCAwICAgECAAH/Af4B/QH8AfsB+gH5AfgB9wH2AfUB9AHzAfIB8QHwAe8B7gHtAewBrwHrAeoB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdIB0QHQ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AAAAhAAA5pUAAOaVAAAAiAAA5pYAAOaWAAAAgAAA5pcAAOaXAAAAhgAA5pgAAOaYAAAAhQAA5pkAAOaZAAAAewAA5poAAOaaAAAAqQAA5rwAAOa8AAAB5wAA5tcAAObXAAAA9gAA5wAAAOcAAAAAggAA5wEAAOcBAAAAfwAA5wIAAOcCAAAAgwAA5wMAAOcDAAAAbgAA5wQAAOcEAAAAegAA5wUAAOcFAAAAeQAA6AAAAOgAAAAAeAAA6AEAAOgBAAAAdwAA6AIAAOgCAAAAdgAA6AMAAOgDAAAAcwAA6AQAAOgEAAAAdAAA6AUAAOgFAAAAdQAA6AYAAOgGAAAAcgAA6AcAAOgHAAAAcQAA6AgAAOgIAAAAbwAA6AkAAOgJAAAAcAAA6AoAAOgKAAAArAAA6AsAAOgLAAAAogAA6AwAAOgMAAAAmQAA6A0AAOgNAAAA5gAA6A4AAOgOAAAA7AAA6A8AAOgPAAAA6wAA6BAAAOgQAAAA7gAA6BEAAOgRAAAA6QAA6BIAAOgSAAAA6gAA6BMAAOgTAAAA7wAA6BQAAOgUAAAA5wAA6BUAAOgVAAAA4wAA6BYAAOgWAAAA5AAA6BcAAOgXAAAA8AAA6BgAAOgYAAAA7QAA6BkAAOgZAAAA5QAA6BoAAOgaAAAA6AAA6BsAAOgbAAAA8QAA6BwAAOgcAAAA2QAA6B0AAOgdAAAA2wAA6B4AAOgeAAAA2gAA6B8AAOgfAAAA4gAA6CAAAOggAAAA3AAA6CEAAOghAAAA3gAA6CIAAOgiAAAA3QAA6CMAAOgjAAAA3wAA6CQAAOgkAAAA4AAA6CUAAOglAAAA4QAA6CYAAOgmAAAA1wAA6CcAAOgnAAAA0AAA6CgAAOgoAAAA0wAA6CkAAOgpAAAA0QAA6CoAAOgqAAAA1gAA6CsAAOgrAAAA1QAA6CwAAOgsAAAA1AAA6QAAAOkAAAAA0gAA6QEAAOkBAAAAzwAA6QIAAOkCAAAA2AAA6QMAAOkDAAAAxgAA6QQAAOkEAAAAzAAA6QUAAOkFAAAAyAAA6QYAAOkGAAAAyQAA6QcAAOkHAAAAxQAA6QgAAOkIAAAAzgAA6QkAAOkJAAAAygAA6QoAAOkKAAAAxwAA6QsAAOkLAAAAzQAA6QwAAOkMAAAAywAA6Q0AAOkNAAAAwQAA6Q4AAOkOAAAAwAAA6Q8AAOkPAAAAwwAA6RAAAOkQAAAAvAAA6REAAOkRAAAAwgAA6RIAAOkSAAAAuwAA6RMAAOkTAAAAxAAA6RQAAOkUAAAAvwAA6RUAAOkVAAAAvQAA6RYAAOkWAAAAvgAA6RcAAOkXAAAAsAAA6RgAAOkYAAAAuQAA6RkAAOkZAAAArwAA6RoAAOkaAAAAtQAA6RsAAOkbAAAAtAAA6RwAAOkcAAAAtgAA6R0AAOkdAAAAsgAA6R4AAOkeAAAAuAAA6R8AAOkfAAAAsQAA6SAAAOkgAAAAugAA6SEAAOkhAAAAtwAA6SIAAOkiAAAAswAA6wQAAOsEAAACXwAA6wUAAOsFAAACXAAA6wYAAOsGAAACYAAA6wcAAOsHAAACZgAA6wgAAOsIAAACZQAA6wkAAOsJAAACZAAA6woAAOsKAAACYwAA6wsAAOsLAAACYgAA6wwAAOsMAAACYQAA6w0AAOsNAAACXQAA6w4AAOsOAAACWwAA6w8AAOsPAAACWgAA6xAAAOsQAAACWQAA6xEAAOsRAAACUwAA6xIAAOsSAAACVgAA6xMAAOsTAAACUQAA6xQAAOsUAAACUgAA6xUAAOsVAAACVAAA6xYAAOsWAAACVQAA6xcAAOsXAAACVwAA6xgAAOsYAAACWAAA6xoAAOsaAAACUAAA6xsAAOsbAAACTwAA6xwAAOscAAACTgAA6x0AAOsdAAACTQAA6x4AAOseAAACTAAA6x8AAOsfAAABsAAA6yAAAOsgAAACSwAA6yEAAOshAAACSgAA6yIAAOsiAAACRQAA6yMAAOsjAAACRgAA6yQAAOskAAACQQAA6yUAAOslAAACQgAA6yYAAOsmAAACQwAA6ycAAOsnAAACRAAA6ygAAOsoAAACMQAA6ykAAOspAAACMAAA6yoAAOsqAAACPwAA6ysAAOsrAAACPgAA6ywAAOssAAACPQAA6y0AAOstAAACPAAA6y4AAOsuAAACOwAA6y8AAOsvAAACOAAA6zAAAOswAAACOQAA6zEAAOsxAAACOgAA6zIAAOsyAAACMwAA6zMAAOszAAACNAAA6zQAAOs0AAACNQAA6zUAAOs1AAACNgAA6zYAAOs2AAACNwAA6zcAAOs3AAACMgAA6zgAAOs4AAACLwAA6zkAAOs5AAACLgAA6zoAAOs6AAACLQAA6zsAAOs7AAACLAAA6zwAAOs8AAACKwAA6z0AAOs9AAACKgAA6z4AAOs+AAACKQAA6z8AAOs/AAACKAAA60EAAOtBAAACJwAA60IAAOtCAAACJgAA60MAAOtDAAACJQAA60QAAOtEAAACJAAA60UAAOtFAAACIwAA60YAAOtGAAACIgAA60cAAOtHAAACIAAA60gAAOtIAAACIQAA60kAAOtJAAACHwAA60oAAOtKAAACHgAA60sAAOtLAAACHQAA60wAAOtMAAACHAAA600AAOtNAAACGwAA604AAOtOAAACGgAA608AAOtPAAACGQAA61EAAOtRAAACGAAA61IAAOtSAAACFwAA61MAAOtTAAACFgAA61QAAOtUAAACFQAA61UAAOtVAAACFAAA61YAAOtWAAACEwAA61cAAOtXAAACEgAA61gAAOtYAAACEQAA61kAAOtZAAACEAAA61oAAOtaAAACDwAA61sAAOtbAAACDgAA61wAAOtcAAACDQAA610AAOtdAAACDAAA614AAOteAAACCwAA618AAOtfAAACCgAA62AAAOtgAAACCQAA62EAAOthAAACCAAA62IAAOtiAAACBwAA62MAAOtjAAACBgAA62QAAOtkAAACBQAA62UAAOtlAAACBAAA62YAAOtmAAACAwAA62cAAOtnAAACAgAA62gAAOtoAAACAQAA62kAAOtpAAACAAAA62oAAOtqAAAB/wAA62sAAOtrAAAB/gAA62wAAOtsAAAB/QAA620AAOttAAAB/AAA624AAOtuAAAB+wAA628AAOtvAAAB+gAA63EAAOtxAAAB+QAA63IAAOtyAAAB+AAA63MAAOtzAAAB9wAA63QAAOt0AAAB9gAA63UAAOt1AAAB9QAA63YAAOt2AAAB9AAA63cAAOt3AAAB8wAA63gAAOt4AAAB8gAA63kAAOt5AAAB8QAA63oAAOt6AAAB8AAA63sAAOt7AAAB7wAA63wAAOt8AAAB7gAA630AAOt9AAAB7QAA634AAOt+AAAB7AAA638AAOt/AAABrwAA64EAAOuBAAAB6wAA64IAAOuCAAAB6gAA64MAAOuDAAAB5gAA64QAAOuEAAAB5QAA64UAAOuFAAAB5AAA64YAAOuGAAAB4wAA64cAAOuHAAAB4gAA64gAAOuIAAAB4QAA64kAAOuJAAAB4AAA65oAAOuaAAAB3wAA65sAAOubAAAB3gAA65wAAOucAAAB3QAA650AAOudAAAB3AAA654AAOueAAAB2wAA658AAOufAAAB2gAA66AAAOugAAAB2QAA66EAAOuhAAAB2AAA66IAAOuiAAAB1wAA66MAAOujAAAB1gAA66QAAOukAAAB1QAA66UAAOulAAAB1AAA66YAAOumAAAB0wAA66cAAOunAAAB0gAA66gAAOuoAAAB0QAA66kAAOupAAAB0AAA67AAAOuwAAABzwAA67EAAOuxAAABzgAA67IAAOuyAAABzQAA67MAAOuzAAABzAAA67QAAOu0AAABywAA67UAAOu1AAABygAA67YAAOu2AAAByQAA67cAAOu3AAAByAAA67gAAOu4AAABxwAA67kAAOu5AAABxgAA68AAAOvAAAABxQAA68EAAOvBAAABxAAA68IAAOvCAAABwwAA68MAAOvDAAABwgAA68QAAOvEAAABwQAA68UAAOvFAAABwAAA68YAAOvGAAABvwAA68cAAOvHAAABvgAA68gAAOvIAAABvQAA68kAAOvJAAABvAAA69AAAOvQAAABuwAA69EAAOvRAAABugAA69IAAOvSAAABuQAA69MAAOvTAAABuAAA69QAAOvUAAABtwAA69UAAOvVAAABtgAA69YAAOvWAAABtQAA69cAAOvXAAABtAAA69gAAOvYAAABswAA69kAAOvZAAABsgAA6+EAAOvhAAABsQAA6+IAAOviAAABsAAA6+MAAOvjAAABrwAA6+QAAOvkAAABrgAA6+UAAOvlAAABrQAA6+YAAOvmAAABrAAA6+cAAOvnAAABqwAA6+gAAOvoAAABqgAA6+kAAOvpAAABqQAA6/AAAOvwAAABqAAA6/EAAOvxAAABpwAA6/IAAOvyAAABpgAA6/MAAOvzAAABpQAA6/QAAOv0AAABpAAA6/UAAOv1AAABowAA6/YAAOv2AAABogAA6/cAAOv3AAABoQAA6/gAAOv4AAABoAAA6/kAAOv5AAABnwAA7KAAAOygAAABngAA7KEAAOyhAAABnQAA7KIAAOyiAAABnAAA7KMAAOyjAAABmwAA7KQAAOykAAABlgAA7KUAAOylAAABlQAA7KYAAOymAAABlAAA7KcAAOynAAABkwAA7KgAAOyoAAABkgAA7KkAAOypAAABkQAA7LAAAOywAAABkAAA7LEAAOyx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Ad8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCAAphLWNodWxpcmVuCmNsb2NrLWVjYjUKY2xvY2stZTEwNwllMTAwLXVuZG8OZTIwOS1zdWJ0aXRsZXMHZTIwOC1oZBJlMTE3LWNhbmNlbC1jaXJjbGUTZTExNi1jYW5jZWwtb3V0bGluZQxlMTNkLXByZXZpZXcLZTExNS1jYW5jZWwEc3RvcApjYWxjdWxhdG9yDHNvcnQtZGVzYy1zbQ5lbmNsb3N1cmVfZWRpdBJlMDFjLWFycm93LXBhcmVudDENZTIwYS1wbGF5bGlzdBBlMDFkLWFycm93LXJvb3QxEWUwMjAtYXJyb3dzLXN3YXAxF2UwMWYtYXJyb3dzLWRpbWVuc2lvbnMxE2UxMDQtbm9uLXJlY3VycmVuY2UVZTAxZS1hcnJvd3MtcmVzaXppbmcxEGUxMjctc29ydC1hc2Mtc20IZTE0MS1wYW4OZTIwNi12b2x1bWUtdXAKZTIwMS1wYXVzZQllMjAwLXBsYXkMZTIwNC1mb3J3YXJkEGUyMDUtdm9sdW1lLWRvd24UZTE0OS1rcGktc3RhdHVzLW9wZW4PZTIwNy12b2x1bWUtb2ZmC2UyMDMtcmV3aW5kDWUxMzItZG93bmxvYWQSZTExOS1jaGVjay1vdXRsaW5lC2UxMzMtdXBsb2FkEmUxMjMtbWludXMtY2lyY2xlMQ1lMTI0LXNvcnQtYXNjC2UxMjktZmlsdGVyC2UxMjYtdW5zb3J0C2UxMzEtbG9nb3V0CmUxMzAtbG9naW4OZTEyNS1zb3J0LWRlc2MQZTEyMC1wbHVzLWNpcmNsZRRlMTQ4LWtwaS1zdGF0dXMtaG9sZAxlMTQ1LXBsdXMtc20OZTE0NC1jb25uZWN0b3IWZTEzNS1oeXBlcmxpbmstb3Blbi1zbQtlMTM2LWxhdW5jaBRlMTQ3LWtwaS1zdGF0dXMtZGVueQllMTQzLWNhcnQLZTEzNy13aW5kb3cNZTE0Ni1taW51cy1zbQ1lMTQwLXpvb20tb3V0FGUxMzktd2luZG93LW1pbmltaXplE2UxMzQtaHlwZXJsaW5rLW9wZW4SZTExMS1saW5rLXZlcnRpY2FsCWUxMTMtbG9jawtlMTAzLXJlbG9hZA1lMTA1LXJlc2V0LXNtFGUxMTItdW5saW5rLXZlcnRpY2FsFmUxMTAtdW5saW5rLWhvcml6b250YWwOZTEwNi1yZWxvYWQtc20LZTExNC11bmxvY2sLZTEwOS1mbG9wcHkKZTExOC1jaGVjaxFlMTJhLWZpbHRlci1jbGVhchJlMTBlLWF0dGFjaG1lbnQtNDULZTEzYy13cmVuY2gaZTEyZS1maWx0ZXItYWRkLWV4cHJlc3Npb24OZTEyYi1maWx0ZXItc20PZTEwZC1hdHRhY2htZW50FWUxMmYtZmlsdGVyLWFkZC1ncm91cBJlMTFjLWNsb3NlLW91dGxpbmUYZTEyZC1maWx0ZXItc29ydC1kZXNjLXNtFGUxMGYtbGluay1ob3Jpem9udGFsCGUxMGItZGl0F2UxMmMtZmlsdGVyLXNvcnQtYXNjLXNtCmUxM2ItZ2VhcnMJZTAzMC1tZW51CWUxMDEtcmVkbwplMjBiLWF1ZGlvEmUwMjktbGF5b3V0LTEtYnktNBFlMDI3LWhhbmRsZXItZHJhZw9lMDIyLWNhdGVnb3JpemUMZTIwYy1wbGF5LXNtEmUwMzEtbW9yZS12ZXJ0aWNhbAtlMDI4LWxheW91dAxlMTNmLXpvb20taW4SZTAyMS1kcmFnLWFuZC1kcm9wEmUwMmEtbGF5b3V0LTItYnktMgllMDJlLXJvd3MKZTEwMi1yZXNldAplMTBhLXByaW50GGUwMmItbGF5b3V0LXNpZGUtYnktc2lkZRBlMDFiLWFycm93LWRyaWxsE2UwMmMtbGF5b3V0LXN0YWNrZWQMZTAyZC1jb2x1bW5zFWUwMDMtYXJyb3ctNDUtdXAtbGVmdBNlMDBhLWFycm93LWVuZC1kb3duFWUwMTEtYXJyb3dzLW5vLWNoYW5nZQtlMDBiLXNlZWstdxRlMDA5LWFycm93LWVuZC1yaWdodBdlMDAyLWFycm93LTQ1LWRvd24tbGVmdBFlMDA4LWFycm93LWVuZC11cBBlMDE4LWFycm93LXJpZ2h0D2UwMTktYXJyb3ctZG93bg9lMDFhLWFycm93LWxlZnQYZTAwMS1hcnJvdy00NS1kb3duLXJpZ2h0GGUwMTItYXJyb3ctb3ZlcmZsb3ctZG93bg1lMDE3LWFycm93LXVwFmU3MDMtbWFya2VyLXBpbi10YXJnZXQNZTgwOC1kaWdnLWJveAplODA5LWVtYWlsCWU4MDctZGlnZxJlODA2LWRlbGljaW91cy1ib3gMZTgwMy1ibG9nZ2VyEGU4MDQtYmxvZ2dlci1ib3gOZTgwNS1kZWxpY2lvdXMKZTgwMi1pbmJveAllODAxLXVzZXIKZTgwMC1zaGFyZQplNzA1LXVucGluCGU3MDQtcGluDmU2OTktZm9udC1zaXplEGU2ODktcGFuZS1mcmVlemUcZTY5MC10b2dnbGUtZnVsbC1zY3JlZW4tbW9kZRJlNjg4LXRhYmxlLXVubWVyZ2UKZTcwMS1nbG9iZRJlNjk2LWN1c3RvbS1mb3JtYXQPZTY5MS1mb3JtdWxhLWZ4EmU3MDAtZ2xvYmUtb3V0bGluZQ9lNzAyLW1hcmtlci1waW4LZTY5NC1kb2xsYXIVZTY5OC1kZWNpbWFsLWRlY3JlYXNlFWU2OTctZGVjaW1hbC1pbmNyZWFzZQtlNjkzLXN5bWJvbAxlNjk1LXBlcmNlbnQIZTY5Mi1zdW0TZTY0My10ZXh0Ym94LWhpZGRlbhVlNjQ3LXRlbXBsYXRlLW1hbmFnZXIUZTY3Mi1oeXBlcmxpbmstZ2xvYmUbZTY3My1oeXBlcmxpbmstZ2xvYmUtcmVtb3ZlDGU2NDItdGV4dGJveA9lNjQ2LWVkaXQtdG9vbHMLZTYzZC1idXR0b24KZTY3Ny10YWJsZRFlNjgyLXRhYmxlLWRlbGV0ZRVlNjc4LXRhYmxlLXByb3BlcnRpZXMQZTY4My1jZWxscy1tZXJnZRxlNjg2LWNlbGwtc3BsaXQtaG9yaXpvbnRhbGx5FmU2ODEtdGFibGUtY2VsbC1kZWxldGULZTY3NS1hbmNob3IbZTY4Ny1jY2VsbC1zcGxpdC12ZXJ0aWNhbGx5EWU4MGMtZmFjZWJvb2stYm94G2U2ODUtY2VsbHMtbWVyZ2UtdmVydGljYWxseR1lNjg0LWNlbGxzLW1lcmdlLWhvcml6b250YWxseRVlNjgwLXRhYmxlLXJvdy1kZWxldGUPZTY3OS10YWJsZS1jZWxsFGU2NzQtaHlwZXJsaW5rLWVtYWlsF2U2NzYtdGFibGUtbGlnaHQtZGlhbG9nHmU2N2MtdGFibGUtY29sdW1uLWluc2VydC1yaWdodBRlNjhmLXZhbGlkYXRpb24tZGF0YQ1lODBiLWZjYWVib29rD2U2OGEtcm93LWZyZWV6ZRJlNjhiLWNvbHVtbi1mcmVlemUbZTY3ZS10YWJsZS1yb3ctaW5zZXJ0LWJlbG93HWU2N2ItdGFibGUtY29sdW1uLWluc2VydC1sZWZ0G2U2N2QtdGFibGUtcm93LWluc2VydC1hYm92ZRplNjdhLXRhYmxlLWNlbGwtcHJvcGVydGllcxxlNjlhLWltYWdlLWFic29sdXRlLXBvc2l0aW9uEmU2OGMtdG9vbGJhci1mbG9hdBhlNjdmLXRhYmxlLWNvbHVtbi1kZWxldGUOZTgwYS1lbWFpbC1ib3gSZTY4ZC1zcGVsbC1jaGVja2VyFWU2OGUtdmFsaWRhdGlvbi14aHRtbAhlOTE5LWNzcwplOTE3LWh0bWw1B2U5MWYtdmILZTkxZC12YnByb2oUZTkyMi1maWxlLWhvcml6b250YWwIZTkxYi1leGUHZTkxYS1qcwtlOTFjLWNzcHJvagplOTIxLWNsb3VkB2U5MWUtY3MJZTkxOC1odG1sCGU5MjAtc2xuDmU5MTItZmlsZS1hc2N4D2U5MTAtZmlsZS1mbGFzaAllOTE1LWZpbG0JZTkxNi1jc3MzDWU5MTQtZmlsZS16aXANZTkwZS1maWxlLXBkZg1lOTBkLWZpbGUtcHB0EGU5MTEtZmlsZS1jb25maWcNZTkwZi1maWxlLXBzZA1lOTEzLWZpbGUtYmFjDWU5MDctZmlsZS1hZGQOZTkwMy1mb2xkZXItdXAPZTkwYS1maWxlLWV4Y2VsFWU5MDUtYWdncmVnYXRlLWZpZWxkcwllOTA2LWZpbGUIZTkwOS1jc3YIZTkwYy1tZGIQZTkwNC1mb2xkZXItbW9yZQ5lOTBiLWZpbGUtd29yZA1lOTA4LWZpbGUtdHh0EGU5MDEtZm9sZGVyLW9wZW4IZTgyNy1yc3MKZTgyOS12aW1lbwtlOTAwLWZvbGRlcgxlODI4LXJzcy1ib3gQZTgyYy15b3V0dWJlLWJveAxlODJiLXlvdXR1YmUOZTgyYS12aW1lby1ib3gRZTgyNi1kcmliYmJsZS1ib3gPZTkwMi1mb2xkZXItYWRkFmU4MWMtdGVsbC1hLWZyaWVuZC1ib3gPZTgxZS10dW1ibHItYm94C2U4MWQtdHVtYmxyEGU4MjAtdHdpdHRlci1ib3gPZTgyMi15YW1tZXItYm94C2U4MjEteWFtbWVyDGU4MjMtYmVoYW5jZRBlODI0LWJlaGFuY2UtYm94DWU4MjUtZHJpYmJibGUMZTgxZi10d2l0dGVyDmU4MTUtcGludGVyZXN0EmU4MTYtcGludGVyZXN0LWJveBFlODE5LXN0dW1ibGUtdXBvbgtlODBkLWdvb2dsZRBlODE0LW15c3BhY2UtYm94FWU4MWEtc3R1bWJsZS11cG9uLWJveA1lODExLWxpbmtlZGluEWU4MTItbGlua2VkaW4tYm94EGU4MGYtZ29vZ2xlLXBsdXMPZTgwZS1nb29nbGUtYm94D2U4MTgtcmVkZGl0LWJveBRlODEwLWdvb2dsZS1wbHVzLWJveAxlODEzLW15c3BhY2ULZTgxNy1yZWRkaXQSZTgxYi10ZWxsLWEtZnJpZW5kEHN0cmlwLWNzcy1mb3JtYXQOdmlkZW8tZXh0ZXJuYWwTc3RyaXAtc3Bhbi1lbGVtZW50cwpzZWxlY3QtYWxsGHRhYmxlLWFsaWduLWJvdHRvbS1yaWdodBNzdHJpcC1hbGwtZm9ybWF0aW5nCHRleHRhcmVhCmltYWdlLWVkaXQJdGV4dC13cmFwGHRhYmxlLWFsaWduLW1pZGRsZS1yaWdodBJ0YWJsZS1hbGlnbi1yZW1vdmUNdHJhY2stY2hhbmdlcxh0cmFjay1jaGFuZ2VzLXJlamVjdC1hbGwMYWxpZ24tcmVtb3ZlDGFsaWduLWNlbnRlcg1hbGlnbi1qdXN0aWZ5C2FsaWduLXJpZ2h0CWJvcmRlci1ubwxhcHBseS1mb3JtYXQLYm9yZGVyLWxlZnQNYm9yZGVyLWJvdHRvbQtib3JkZXJzLWFsbBdib3JkZXJzLWluc2lkZS12ZXJ0aWNhbA9ib3JkZXJzLW91dHNpZGUZYm9yZGVycy1pbnNpZGUtaG9yaXpvbnRhbARjb3B5CWNsZWFyLWNzcwpib3JkZXItdG9wDGJvcmRlci1yaWdodBtlNjcxLWh5cGVybGluay1saWdodC1kaWFsb2cRYm9yZGVycy1zaG93LWhpZGUOYm9yZGVycy1pbnNpZGUOZGljdGlvbmFyeS1hZGQLY3VzdG9tLWljb24HY29tbWVudBBkb2N1bWVudC1tYW5hZ2VyC2NvcHktZm9ybWF0D2NoYW5nZS1tYW51YWxseQ5jb21tZW50LXJlbW92ZQ1jYWxlbmRhci1kYXRlE2NvbW1lbnRzLXJlbW92ZS1hbGwQaW1hZ2UtbWFwLWVkaXRvcgNjdXQObW9kdWxlLW1hbmFnZXIFcGFzdGUSaW1hZ2UtbGlnaHQtZGlhbG9nDGNvZGUtc25pcHBldAxmb3JtLWVsZW1lbnQNbWVkaWEtbWFuYWdlcg1mbGFzaC1tYW5hZ2VyDXBhcmFncmFwaC1hZGQacGFzdGUtZnJvbS13b3JkLXN0cmlwLWZpbGUPcnVsZS1ob3Jpem9udGFsD3Bhc3RlLWZyb20td29yZA1wYXN0ZS1hcy1odG1sE3N0cmlwLWZvbnQtZWxlbWVudHMXdGFibGUtYWxpZ24tYm90dG9tLWxlZnQQZmluZC1hbmQtcmVwbGFjZRZ0YWJsZS1hbGlnbi10b3AtY2VudGVyCnBhc3RlLWh0bWwVc3RyaXAtd29yZC1mb3JtYXR0aW5nGXRhYmxlLWFsaWduLW1pZGRsZS1jZW50ZXIRZm9ybWF0LWNvZGUtYmxvY2sUdHJhY2stY2hhbmdlcy1yZWplY3QJZ3JvdXAtYm94BGZvcm0ZdGFibGUtYWxpZ24tYm90dG9tLWNlbnRlcgtzaWx2ZXJsaWdodBBwYXN0ZS1wbGFpbi10ZXh0CnNlbGVjdC1ib3gOcGFzdGUtbWFya2Rvd24XdGFibGUtYWxpZ24tbWlkZGxlLWxlZnQUdHJhY2stY2hhbmdlcy1lbmFibGUVdGFibGUtYWxpZ24tdG9wLXJpZ2h0DXN0eWxlLWJ1aWxkZXIUdGFibGUtYWxpZ24tdG9wLWxlZnQUdHJhY2stY2hhbmdlcy1hY2NlcHQYdHJhY2stY2hhbmdlcy1hY2NlcHQtYWxsEWEtZTYwNGZvbnQtZmFtaWx5EGEtZTYwOXN1Yi1zY3JpcHQWYS1lNjA1Zm9yZWdyb3VuZC1jb2xvcgphLWU2MDFib2xkCGEtZTYxMGg0E2EtZTYwOHN0cmlrZXRocm91Z2gXYS1lNjA2Y29udmVydC1sb3dlcmNhc2UXYS1lNjA3Y29udmVydC11cHBlcmNhc2UMYS1lNjAyaXRhbGljD2EtZTYwM3VuZGVybGluZRJhLWU2MWNhbGlnbi1ib3R0b20IYS1lNjBkaDEIYS1lNjBmaDMJYS1lNjBjYWxsCGEtZTYwZWgyEGEtZTYwYXN1cC1zY3JpcHQJYS1lNjBiZGl2EGEtZTYxZGFsaWduLWxlZnQPYS1lNjFhYWxpZ24tdG9wEmEtZTYxYmFsaWduLW1pZGRsZRVhLWU2MTVpbmRlbnQtaW5jcmVhc2UTYS1lNjE4aW5zZXJ0LW1pZGRsZRRhLWU2MTRsaXN0LXVub3JkZXJlZBVhLWU2MTZpbmRlbnQtZGVjcmVhc2UPYS1lNjE3aW5zZXJ0LXVwEWEtZTYxOWluc2VydC1kb3duCGEtZTYxMmg2EmEtZTYxM2xpc3Qtb3JkZXJlZAhhLWU2MTFoNRNhLWU1MjR0aHVtYm5haWxzLXVwFmEtZTUyOWZ1bGwtc2NyZWVuLWV4aXQVYS1lNTI2dGh1bWJuYWlscy1kb3duFWEtZTYwMHBhZ2UtcHJvcGVydGllcxVhLWU1Mjd0aHVtYm5haWxzLWxlZnQaYS1lNTIzYWxpZ24tYm90dG9tLWVsZW1lbnQRYS1lNTI4ZnVsbC1zY3JlZW4WYS1lNTI1dGh1bWJuYWlscy1yaWdodBFhLWU1MmFyZXNldC1jb2xvchphLWU1MjJhbGlnbi1taWRkbGUtZWxlbWVudBJhLWU1MWJiYWNrLWVsZW1lbnQZYS1lNTIwYWxpZ24tcmlnaHQtZWxlbWVudBVhLWU1MWNmb3J3YXJkLWVsZW1lbnQLYS1lNTE4c2hhcGUXYS1lNTIxYWxpZ24tdG9wLWVsZW1lbnQWYS1lNTFkYmFja3dhcmQtZWxlbWVudBNhLWU1MTlyb3VuZC1jb3JuZXJzGGEtZTUxZWFsaWduLWxlZnQtZWxlbWVudBNhLWU1MWFmcm9udC1lbGVtZW50GmEtZTUxZmFsaWduLWNlbnRlci1lbGVtZW50CmEtZTUxMGxpbmUZYS1lNTExYnJpZ2h0bmVzcy1jb250cmFzdAthLWU1MGZwYWludA9hLWU1MTVncmV5c2NhbGUNYS1lNTBlcGFsZXR0ZQ1hLWU1MTdzaGFycGVuE2EtZTUxM2ludmVydC1jb2xvcnMKYS1lNTE2Ymx1chBhLWU1MTJzYXR1cmF0aW9uEmEtZTUxNHRyYW5zcGVyYW5jeQxhLWU1MGFyb3RhdGUTYS1lNTA0em9vbS1iZXN0LWZpdAthLWU1MGRicnVzaBFhLWU1MGNyb3RhdGUtbGVmdAphLWU1MDZjcm9wE2EtZTUwOWZsaXAtdmVydGljYWwMYS1lNTA3bWlycm9yFWEtZTUwOGZsaXAtaG9yaXpvbnRhbBJhLWU1MDVpbWFnZS1yZXNpemUSYS1lNTBicm90YXRlLXJpZ2h0DWEtZTIwZXN0b3Atc20SYS1lNTAyaW1hZ2UtZXhwb3J0FGEtZTMwN3RyaS1zdGF0ZS1udWxsC2EtZTUwMWltYWdlE2EtZTMwMGhlYXJ0LW91dGxpbmUWYS1lNTAzem9vbS1hY3R1YWwtc2l6ZQxhLWUzMDhjaXJjbGULYS1lMzAxaGVhcnQSYS1lNTAwcGhvdG8tY2FtZXJhDmEtZTIwZHBhdXNlLXNtC2NvbGxhcHNlLW5lCXRodW1idGFjawtzLXRodW1idGFjawZtb3ZldG8NZmlsdGVyX2RlbGV0ZQ9maWx0ZXJfZ3JvdXBpbmcKZmlsdGVyX2FkZBNmaWx0ZXJfY2FuY2VsbGF0aW9uBnZlcm5hdgpjdy1hcnJvd2RlCGN3LWhvdGVsB2N3LXRyaXAFemhhZ2UHZGVuZ2hhbw10aXNoaXNodW9taW5nBERyYWcGYmlhbmppBmNoYWthbgJiZwRsaGp0CGR1bGltaW1hEXFpYW5taW5ncWlhbnpoYW5nBmZhbmt1aRRhLUNGX0Rlc2NlbmRpbmdPcmRlchNhLUNGX0FzY2VuZGluZ09yZGVyBWFib3V0CXl1bnhpYW94aRBlbmNsb3N1cmVfZGVsZXRlEmVuY2xvc3VyZV9kb3dubG9hZBBlbmNsb3N1cmVfdXBsb2FkEGVuY2xvc3VyZV9icm93c2UKdXBsb2FkX2JpZw9jYWxlbmRhcnNfbGluZTEJbW9yZV9saW5lDmRyb3AtZG93bl9saW5lEHBlcnNwZWN0aXZlX3ZpZXcKY2hhcnRfdmlldwlmb3JtX3ZpZXcJbGlzdF92aWV3CWNhcmRfdmlldwtyZW1vdmVfZmFjZQtkdWl6aGFuZ2Rhbg1kaXpoaXNoZW5xaW5nDWppbmd4aWFvcmVud3UHYmFpZmFuZwprZWh1Z3VhbnhpCGZheXVuZGFuCWxpYW54aXJlbg1mdWt1YW50b25nemhpD2thaXBpYW9zaGVucWluZw94aWFvc2hvdWRhY2hlbmcOeGlhb3Nob3VxaWFubGkOeGlhb3Nob3VtdWJpYW8Nc2h1anVzaGFuZ2Jhbwx4dWtlc2hhbmdwaW4Jemhlbmd6aGFvDHhpYW9zaG91eXVjZQ94aWFvc2hvdXR1YW5kdWkFaGVscDELaW5mby1jaXJjbGUKZGVwYXJ0bWVudARjb2RlBHBhdGgPZmxvd2xpbmUtbWFudWFsDWZsb3dsaW5lLW1vcmUSZmxvd2xpbmUtc2NoZWR1bGVkEWZsb3dsaW5lLWNhbmNlbGVkEGZsb3dsaW5lLXBlbmRpbmcMZmxvd2xpbmUtcnVuEGZsb3dsaW5lLWNyZWF0ZWQQZmxvd2xpbmUtcnVubmluZxBmbG93bGluZS13YWl0aW5nEGZsb3dsaW5lLXNraXBwZWQNZmxvd2xpbmUtdmlldxBmbG93bGluZS13YXJuaW5nC29yaWVudGF0aW9uBGxhc3QFZmlyc3QOeXVuaGFuZ3NoaWljb24aQ29sdW1uLWZpbHRlcmFuZGRlc2NlbmRpbmcZQ29sdW1uLWZpbHRlcmFuZGFzY2VuZGluZxxDb2x1bW5zLURlZmF1bHRmaWx0ZXJhbmRzb3J0DUNvbHVtbi1maWx0ZXISQ29sdW1ucy1kZXNjZW5kaW5nEUNvbHVtbnMtYXNjZW5kaW5nE0NvbHVtbnMtRGVmYXVsdHNvcnQPbGF1bmNocGFkLWZhY2UyCmxhdW5jaHBhZDIPZi1pY29uLWNoZWNrYm94DGYtaWNvbi1taW51cwpmLWljb24tYWRkCGRyb3Bkb3duCm5hdmlnYXRpb24Ray1pLW1lc3NhZ2VfZXJyb3ITay1pLW1lc3NhZ2Vfc3VjY2VzcwpzdWRva3UtbmV3CGxpc3QtbmV3CXRpbGVkLW5ldwxxaWVodWFuenV6aGkHcmFkaW8tMgZ0ZW5hbnQGc3Vkb2t1BXRpbGVkBWxpc3QxC3Nob3VjYW5namlhCmNvbGxlY3Rpb24DaWRlDG9jY2x1ZGUtZmFjZQdvY2NsdWRlDmxhdW5jaHBhZC1mYWNlCWxhdW5jaHBhZAtpbmZvcm1hdGlvbgdiYWNrbG9nB21lc3NhZ2UJbWF4aW1pemUxBnNlYXJjaAppbmRleC1mYWNlBWluZGV4CHl4c190ZXh0DXl4c19jb250YWluZXILeXhzX2NvbHVtbnMIeXhzX21vdmUIeXhzX2NvcHkKeXhzX2RlbGV0ZQl5eHNfbGV2ZWwJeXhzX2VhcnRoDXl4c19jdXN0b21pemUIc2lnbl9vdXQLdXNlcl9jZW50ZXIGcmVtb3ZlBnBhY2t1cAZjYW1lcmEGbmFycm93DWFtcGxpZmljYXRpb24JY2xvY2t3aXNlEGNvdW50ZXJjbG9ja3dpc2UGZWRpdG9yBHNraW4EYXJlYQhwYXNzd29yZAhsYW5ndWFnZQViYXNpYwhtaW5pbWl6ZQxtYXhpbWl6YXRpb24NbmV3LWRpbWVuc2lvbhFmaWxlLWZvbGRlci1jbG9zZRBmaWxlLWZvbGRlci1vcGVuCG5ldy1lZGl0CG5ldy1mb3JtBXdvbWFuA21hbgZyZWNvcmQEbW9yZQRsaXN0CXRlbGVwaG9uZQhmdW5jdGlvbgtwcm9kdWN0bGlzdA5hdHRhY2htZW50bGlzdBNkb2N1bWVudGluZm9ybWF0aW9uDG5ldy1maWx0cmF0ZQ5uZXctZnVsbHNjcmVlbgdyb29maW5nDUJvdHRvbXNldHRpbmcPcGFnZS10aXRsZS10YXNrEXBhZ2UtdGl0bGUtcmV2aWV3EHBhZ2UtdGl0bGUtc3RhcnQPcGFnZS10aXRsZS10eXBlEXBhZ2UtdGl0bGUtcmVjb3JkEnBhZ2UtdGl0bGUtdm91Y2hlchBwYWdlLXRpdGxlLXF1ZXJ5EXBhZ2UtdGl0bGUtbnVtYmVyEXBhZ2UtdGl0bGUtbWFuYWdlFnBhZ2UtdGl0bGUtbWFpbnRlbmFuY2UVcGFnZS10aXRsZS1kaWN0aW9uYXJ5GHBhZ2UtdGl0bGUtY29uZmlndXJhdGlvbhVwYWdlLXRpdGxlLWFkbWluaXN0ZXIRcGFnZS10aXRsZS1kZWZpbmUXdHJpLXN0YXRlLWluZGV0ZXJtaW5hdGUQcGFuZWwtcmV0cmFjdGlvbgtlZGl0LWJ1dHRvbg5pbnB1dC1sYW5ndWFnZRdhdHRyaWJ1dGUtY29uZmlndXJhdGlvbgtFbmdpbmVlcmluZwNnaXQTcmFkaW9idXR0b24tY2hlY2tlZAxzaGFwZS1jaXJjbGUQY2hlY2tib3gtY2hlY2tlZBVrLWktaG9tZS13ZWF0aGVyLWxlYWYNay1pLWhvbWUtbW9yZQ1rLWktaG9tZS1yaW5nDGstaS1ob21lLWFkZA5rLWktaG9tZS1zZXR1cA5rLWktaG9tZS13b21hbgxrLWktaG9tZS1tYW4Oay1pLXRvcF9hZ2VuY3kMay1pLXRvcF9uZXdzDGstaS10b3BfaG9tZRJrLWktdG9wX2ltX2RlZmF1bHQXay1pLXRvcF9kZXZlbG9wbWVudHRvb2wMay1pLXRvcF9tZW51DmstaS10b3Bfc2VhcmNoCmstaS10b3BfbXkPay1pLWZsYWdfdXJnZW50DGstaS1uZXh0cGFnZRBrLWktcHJldmlvdXNwYWdlE2staS1tZXNzYWdlX3JvdXRpbmUTay1pLUV4aGFsZS1EaXNjb3VudBNrLWktbW9yZS1ob3Jpem9udGFsEGstaS1tZXNzYWdlX2hlbHATay1pLW1lc3NhZ2Vfd2FybmluZxZrLWktc3RlcHMtZGVsaXZlcmdvb2RzFWstaS1zdGVwcy1yZWNlaXZhYmxlcxFrLWktc3RlcHMtaW52b2ljZRRrLWktc3RlcHMtb3V0b2ZzdG9jaxRrLWktc3RlcHMtc2V0dGxlbWVudBNrLWktc3RlcHMtdHJhbnNwb3J0DGstaS1ib29rbWFyaxBrLWktc3Rhci1vdXRsaW5lCGstaS16b29tEGstaS1jbG9zZS1jaXJjbGUQay1pLWNoZWNrLWNpcmNsZQlrLWktY2xvc2UQay1pLXBsdXMtb3V0bGluZRFrLWktbWludXMtb3V0bGluZQtrLWktcmVvcmRlcg1rLWktcmV3aW5kLXNtDmstaS1mb3J3YXJkLXNtE2staS1hcnJvdy1zZWVrLWRvd24Ray1pLWFycm93LXNlZWstdXAKay1pLWRlbGV0ZQlrLWktZ3JvdXAIay1pLWdyaWQPay1pLWdyaWQtbGF5b3V0DmstaS1hcnJvd3Mta3BpFmstaS1hcnJvdy1jaGV2cm9uLWxlZnQXay1pLWFycm93LWNoZXZyb24tcmlnaHQWay1pLWFycm93LWNoZXZyb24tZG93bhRrLWktYXJyb3ctY2hldnJvbi11cBFrLWktYXJyb3ctNjAtbGVmdAtrLWktYXJyb3ctZRFrLWktYXJyb3ctNjAtZG93bg9rLWktYXJyb3ctNjAtdXAAAAA=) format("truetype")}.f-icon{height:1em;font-size:1rem;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;text-decoration:none;display:inline-block}.f-icon:focus,.f-icon:hover{text-decoration:none}.f-icon-sm{font-size:.75rem}.f-icon-lg{font-size:1.5rem}.f-icon-none::before{content:"";display:none}.f-icon-arrow-45-up-right::before,.f-icon-collapse-ne::before,.f-icon-resize-ne::before{content:"\e000"}.f-icon-arrow-45-down-right::before,.f-icon-collapse-se::before,.f-icon-resize-se::before{content:"\e001"}.f-icon-arrow-45-down-left::before,.f-icon-collapse-sw::before,.f-icon-resize-sw::before{content:"\e002"}.f-icon-arrow-45-up-left::before,.f-icon-collapse-nw::before,.f-icon-resize-new::before,.f-icon-resize-nw::before{content:"\e003"}.f-icon-arrow-60-up::before,.f-icon-arrow-n::before,.f-icon-expand-n::before,.f-icon-kpi-trend-increase::before,.f-icon-sarrow-n::before{content:"\e004"}.f-icon-arrow-60-right::before,.f-icon-arrow-e::before,.f-icon-expand-e::before,.f-icon-expand::before,.f-icon-sarrow-e::before{content:"\e005"}.f-icon-arrow-60-down::before,.f-icon-arrow-s::before,.f-icon-collapse::before,.f-icon-expand-s::before,.f-icon-kpi-trend-decrease::before,.f-icon-sarrow-s::before{content:"\e006"}.f-icon-arrow-60-left::before,.f-icon-arrow-w::before,.f-icon-expand-w::before,.f-icon-sarrow-w::before{content:"\e007"}.f-icon-arrow-end-up::before{content:"\e008"}.f-icon-arrow-end-right::before,.f-icon-seek-e::before{content:"\e009"}.f-icon-arrow-end-down::before{content:"\e00a"}.f-icon-arrow-end-left::before,.f-icon-seek-w::before{content:"\e00b"}.f-icon-arrow-double-60-up::before,.f-icon-arrow-seek-up::before,.f-icon-seek-n::before{content:"\e00c"}.f-icon-arrow-double-60-right::before,.f-icon-arrow-seek-right::before,.f-icon-forward-sm::before{content:"\e00d"}.f-icon-arrow-double-60-down::before,.f-icon-arrow-seek-down::before,.f-icon-seek-s::before{content:"\e00e"}.f-icon-arrow-double-60-left::before{content:"\e00f"}.f-icon-arrow-chevron-up::before,.f-icon-arrowhead-n::before{content:"\e013"}.f-icon-arrow-chevron-right::before,.f-icon-arrowhead-e::before{content:"\e014"}.f-icon-arrow-chevron-down::before,.f-icon-arrowhead-s::before{content:"\e015"}.f-icon-arrow-chevron-left::before,.f-icon-arrowhead-w::before{content:"\e016"}.f-icon-grid::before{content:"\e023"}.f-icon-grid-layout::before{content:"\e024"}.f-icon-group::before{content:"\e025"}.f-icon-ungroup::before{content:"\e026"}.f-icon-undo-large::before,.f-icon-undo::before{content:"\e100"}.f-icon-redo-large::before,.f-icon-redo::before{content:"\e101"}.f-icon-reset::before{content:"\e102"}.f-icon-refresh::before,.f-icon-reload::before{content:"\e103"}.f-icon-clock::before{content:"\ecb5"}.f-icon-calendar::before{content:"\e108"}.f-icon-save::before{content:"\e109"}.f-icon-edit::before,.f-icon-pencil::before{content:"\e10b"}.f-icon-delete::before,.f-icon-trash::before{content:"\e10c"}.f-icon-attachment::before,.f-icon-clip::before{content:"\e10d"}.f-icon-attachment-45::before,.f-icon-clip-45::before{content:"\e10e"}.f-icon-lock::before{content:"\e113"}.f-icon-unlock::before{content:"\e114"}.f-icon-cancel::before{content:"\e115"}.f-icon-cancel-outline::before,.f-icon-deny::before{content:"\e116"}.f-icon-cancel-circle::before{content:"\e117"}.f-icon-check::before,.f-icon-checkmark::before,.f-icon-tick::before{content:"\e118"}.f-icon-check-outline::before,.f-icon-checkmark-outline::before{content:"\e119"}.f-icon-success::before{content:"\eb7d"}.f-icon-check-circle::before,.f-icon-checkmark-circle::before{content:"\e11a"}.f-icon-x::before{content:"\e11b"}.f-icon-close-outline::before,.f-icon-x-outline::before{content:"\e11c"}.f-icon-error::before{content:"\eb7e"}.f-icon-close-circle::before,.f-icon-x-circle::before,.input-group .input-group-append>.input-group-clear .modal_close::before,.input-group .input-group-prepend>.input-group-clear .modal_close::before{content:"\e11d"}.f-icon-add::before,.f-icon-plus::before{content:"\e11e"}.f-icon-plus-outline::before{content:"\e11f"}.f-icon-plus-circle::before{content:"\e120"}.f-icon-kpi-trend-equal::before,.f-icon-minus::before,.k-minus::before{content:"\e121"}.f-icon-minus-outline::before{content:"\e122"}.f-icon-minus-circle::before{content:"\e123"}.f-icon-filter::before{content:"\e129"}.f-icon-filter-clear::before{content:"\e12a"}.f-icon-filter-sort-asc-sm::before{content:"\e12c"}.f-icon-filter-sort-desc-sm::before{content:"\e12d"}.f-icon-download::before{content:"\e132"}.f-icon-upload::before{content:"\e133"}.f-icon-window-minimize::before{content:"\e139"}.f-icon-cog::before,.f-icon-gear::before{content:"\e13a"}.f-icon-cogs::before,.f-icon-gears::before{content:"\e13b"}.f-icon-eye::before,.f-icon-preview::before{content:"\e13d"}.f-icon-search::before,.f-icon-zoom::before{content:"\e13e"}.f-icon-fav-outline::before,.f-icon-favorite-outline::before{content:"\e300"}.f-icon-fav::before,.f-icon-favorite::before,.f-icon-heart::before{content:"\e301"}.f-icon-bookmark-outline::before,.f-icon-star-outline::before{content:"\e302"}.f-icon-bookmark::before,.f-icon-star::before{content:"\e303"}.f-icon-checkbox::before,.f-icon-shape-rect::before{content:"\e304"}.f-icon-checkbox-checked::before{content:"\e305"}.f-icon-radiobutton::before,.f-icon-shape-circle::before{content:"\e309"}.f-icon-radiobutton-checked::before{content:"\e30a"}.f-icon-folder::before{content:"\e900"}.f-icon-folder-open::before{content:"\e901"}.f-icon-file::before{content:"\e906"}.f-icon-message_help::before{content:"\eb04"}.f-icon-message_routine::before{content:"\eb05"}.f-icon-message_warning::before{content:"\eb06"}.f-icon-previouspage::before{content:"\eb0e"}.f-icon-nextpage::before{content:"\eb0f"}.f-icon-top_menu::before{content:"\eb12"}.f-icon-edit-button::before{content:"\eb25"}.f-icon-file-folder-close::before{content:"\eb47"}.f-icon-file-folder-open::before{content:"\eb48"}.f-icon-maximization::before{content:"\eb4a"}.f-icon-minimize::before{content:"\eb4b"}.f-icon-editor::before{content:"\eb52"}.f-icon-occlude::before{content:"\eb6e"}.f-icon-occlude-face::before{content:"\eb6f"}.f-icon-camera::before{content:"\eb57"}.f-icon-date::before{content:"\eb7f"}.f-icon-dropdown::before{content:"\eb82"}.f-icon-timepicker::before{content:"\e107"}.f-icon-info::before,.f-icon-note::before{content:"\eb05"}.f-icon-question::before{content:"\eb04"}.f-icon-help::before{content:"\e402"}.f-icon-warning::before{content:"\eb06"}.f-icon-drag-vertical::before{content:"\eca0"}.f-icon-page-title-define::before{content:"\eb2a"}.f-icon-page-title-administer::before{content:"\eb2b"}.f-icon-page-title-configuration::before{content:"\eb2c"}.f-icon-page-title-dictionary::before{content:"\eb2d"}.f-icon-page-title-maintenance::before{content:"\eb2e"}.f-icon-page-title-query::before{content:"\eb2f"}.f-icon-page-title-number::before{content:"\eb30"}.f-icon-page-title-manage::before{content:"\eb31"}.f-icon-page-title-review::before{content:"\eb32"}.f-icon-page-title-start::before{content:"\eb33"}.f-icon-page-title-type::before{content:"\eb34"}.f-icon-page-title-record::before{content:"\eb35"}.f-icon-page-title-voucher::before{content:"\eb36"}.f-icon-page-title-task::before{content:"\eb37"}.f-icon-maximize::before{content:"\eb68"}.f-icon-remove_face::before{content:"\ebd4"}.f-icon-enclosure_delete::before{content:"\ebe8"}.f-icon-enclosure_download::before{content:"\ebe7"}.f-icon-enclosure_upload::before{content:"\ebe6"}.f-icon-enclosure_browse::before{content:"\ebe5"}.f-icon-upload_big::before{content:"\ebe4"}.f-icon-arrow-seek-left::before,.f-icon-rewind-sm::before,.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar .triangle::before{content:"\e00f"}.f-icon-spin{animation:spinicon 2s infinite linear}@keyframes spinicon{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.f-icon-with-modifier{position:relative;margin:.25em}.f-icon-modifier{position:absolute;font-size:.5em;bottom:0;right:0;margin:0 -.5em -.5em 0}.f-icon-xs{font-size:.5rem}.f-icon-md,.f-legend-icon::after,.modal_close{font-size:1.25rem}.f-icon-xl{font-size:2rem}.f-icon-arrows-kpi::before,.f-icon-kpi::before{content:"\e010"}.f-icon-arrows-no-change::before{content:"\e011"}.f-icon-arrow-overflow-down::before{content:"\e012"}.f-icon-arrow-up::before{content:"\e017"}.f-icon-arrow-right::before{content:"\e018"}.f-icon-arrow-down::before{content:"\e019"}.f-icon-arrow-left::before{content:"\e01a"}.f-icon-arrow-drill::before{content:"\e01b"}.f-icon-arrow-parent::before{content:"\e01c"}.f-icon-arrow-root::before{content:"\e01d"}.f-icon-arrows-resizing::before{content:"\e01e"}.f-icon-arrows-dimensions::before,.f-icon-dimension::before{content:"\e01f"}.f-icon-arrows-swap::before{content:"\e020"}.f-icon-drag-and-drop::before{content:"\e021"}.f-icon-categorize::before{content:"\e022"}.f-icon-handler-drag::before{content:"\e027"}.f-icon-layout::before{content:"\e028"}.f-icon-layout-1-by-4::before{content:"\e029"}.f-icon-layout-2-by-2::before,.f-icon-page-layout::before{content:"\e02a"}.f-icon-layout-side-by-side::before{content:"\e02b"}.f-icon-layout-stacked::before{content:"\e02c"}.f-icon-columns::before{content:"\e02d"}.f-icon-rows::before{content:"\e02e"}.f-icon-reorder::before{content:"\e02f"}.f-icon-hamburger::before,.f-icon-menu::before{content:"\e030"}.f-icon-more-vertical::before,.f-icon-vbars::before{content:"\e031"}.f-icon-hbars::before,.f-icon-more-horizontal::before{content:"\e032"}.f-icon-recurrence::before{content:"\e103"}.f-icon-non-recurrence::before,.f-icon-refresh-clear::before{content:"\e104"}.f-icon-reset-sm::before{content:"\e105"}.f-icon-recurrence-sm::before,.f-icon-refresh-sm::before,.f-icon-reload-sm::before{content:"\e106"}.f-icon-floppy::before{content:"\e109"}.f-icon-print::before,.f-icon-printer::before{content:"\e10a"}.f-icon-hyperlink::before,.f-icon-link-horizontal::before{content:"\e10f"}.f-icon-hyperlink-remove::before,.f-icon-unlink-horizontal::before{content:"\e110"}.f-icon-link-vertical::before{content:"\e111"}.f-icon-unlink-vertical::before{content:"\e112"}.f-icon-sort-asc::before{content:"\e124"}.f-icon-sort-desc::before{content:"\e125"}.f-icon-sort-clear::before,.f-icon-unsort::before{content:"\e126"}.f-icon-sort-asc-sm::before{content:"\e127"}.f-icon-sort-desc-sm::before{content:"\e128"}.f-icon-filter-sm::before{content:"\e12b"}.f-icon-filter-add-expression::before{content:"\e12e"}.f-icon-filter-add-group::before{content:"\e12f"}.f-icon-login::before{content:"\e130"}.f-icon-logout::before{content:"\e131"}.f-icon-hyperlink-open::before{content:"\e134"}.f-icon-hyperlink-open-sm::before{content:"\e135"}.f-icon-launch::before{content:"\e136"}.f-icon-window-maximize::before,.f-icon-window::before{content:"\e137"}.f-icon-restore::before,.f-icon-tiles::before,.f-icon-window-restore::before,.f-icon-windows::before{content:"\e138"}.f-icon-custom::before{content:"\e13a"}.f-icon-settings::before,.f-icon-wrench::before{content:"\e13c"}.f-icon-zoom-in::before{content:"\e13f"}.f-icon-zoom-out::before{content:"\e140"}.f-icon-move::before,.f-icon-pan::before{content:"\e141"}.f-icon-calculator::before{content:"\e142"}.f-icon-cart::before,.f-icon-shopping-cart::before{content:"\e143"}.f-icon-connector::before{content:"\e144"}.f-icon-plus-sm::before,.f-icon-splus::before{content:"\e145"}.f-icon-minus-sm::before,.f-icon-sminus::before{content:"\e146"}.f-icon-kpi-status-deny::before{content:"\e147"}.f-icon-kpi-status-hold::before{content:"\e148"}.f-icon-kpi-status-open::before{content:"\e149"}.f-icon-play::before{content:"\e200"}.f-icon-pause::before{content:"\e201"}.f-icon-stop::before{content:"\e202"}.f-icon-rewind::before{content:"\e203"}.f-icon-forward::before{content:"\e204"}.f-icon-volume-down::before,.f-icon-volume-low::before{content:"\e205"}.f-icon-volume-high::before,.f-icon-volume-up::before{content:"\e206"}.f-icon-volume-mute::before,.f-icon-volume-off::before{content:"\e207"}.f-icon-hd::before{content:"\e208"}.f-icon-subtitles::before{content:"\e209"}.f-icon-playlist::before{content:"\e20a"}.f-icon-audio::before{content:"\e20b"}.f-icon-play-sm::before{content:"\e20c"}.f-icon-pause-sm::before{content:"\e20d"}.f-icon-stop-sm::before{content:"\e20e"}.f-icon-heart-outline::before{content:"\e300"}.f-icon-tri-state-indeterminate::before{content:"\e306"}.f-icon-tri-state-null::before{content:"\e307"}.f-icon-circle::before{content:"\e308"}.f-icon-bell::before,.f-icon-notification::before{content:"\e400"}.f-icon-exception::before{content:"\e403"}.f-icon-photo-camera::before{content:"\e500"}.f-icon-image::before,.f-icon-photo::before{content:"\e501"}.f-icon-image-export::before,.f-icon-photo-export::before{content:"\e502"}.f-icon-zoom-actual-size::before{content:"\e503"}.f-icon-zoom-best-fit::before{content:"\e504"}.f-icon-image-resize::before{content:"\e505"}.f-icon-crop::before{content:"\e506"}.f-icon-mirror::before{content:"\e507"}.f-icon-flip-horizontal::before{content:"\e508"}.f-icon-flip-vertical::before{content:"\e509"}.f-icon-rotate::before{content:"\e50a"}.f-icon-rotate-cw::before,.f-icon-rotate-right::before{content:"\e50b"}.f-icon-rotate-ccw::before,.f-icon-rotate-left::before{content:"\e50c"}.f-icon-brush::before{content:"\e50d"}.f-icon-palette::before{content:"\e50e"}.f-icon-background::before,.f-icon-droplet::before,.f-icon-paint::before{content:"\e50f"}.f-icon-line::before,.f-icon-shape-line::before{content:"\e510"}.f-icon-brightness-contrast::before{content:"\e511"}.f-icon-saturation::before{content:"\e512"}.f-icon-invert-colors::before{content:"\e513"}.f-icon-opacity::before,.f-icon-transperancy::before{content:"\e514"}.f-icon-greyscale::before{content:"\e515"}.f-icon-blur::before{content:"\e516"}.f-icon-sharpen::before{content:"\e517"}.f-icon-shape::before{content:"\e518"}.f-icon-round-corners::before{content:"\e519"}.f-icon-front-element::before{content:"\e51a"}.f-icon-back-element::before{content:"\e51b"}.f-icon-forward-element::before{content:"\e51c"}.f-icon-backward-element::before{content:"\e51d"}.f-icon-align-left-element::before{content:"\e51e"}.f-icon-align-center-element::before{content:"\e51f"}.f-icon-align-right-element::before{content:"\e520"}.f-icon-align-top-element::before{content:"\e521"}.f-icon-align-middle-element::before{content:"\e522"}.f-icon-align-bottom-element::before{content:"\e523"}.f-icon-thumbnails-up::before{content:"\e524"}.f-icon-thumbnails-right::before{content:"\e525"}.f-icon-thumbnails-down::before{content:"\e526"}.f-icon-thumbnails-left::before{content:"\e527"}.f-icon-full-screen::before,.f-icon-fullscreen-enter::before,.f-icon-fullscreen::before{content:"\e528"}.f-icon-full-screen-exit::before,.f-icon-fullscreen-exit::before{content:"\e529"}.f-icon-background-remove::before,.f-icon-paint-remove::before,.f-icon-reset-color::before{content:"\e52a"}.f-icon-page-properties::before{content:"\e600"}.f-icon-bold::before{content:"\e601"}.f-icon-italic::before{content:"\e602"}.f-icon-underline::before{content:"\e603"}.f-icon-font-family::before{content:"\e604"}.f-icon-foreground-color::before,.f-icon-text::before{content:"\e605"}.f-icon-convert-lowercase::before{content:"\e606"}.f-icon-convert-uppercase::before{content:"\e607"}.f-icon-strike-through::before,.f-icon-strikethrough::before{content:"\e608"}.f-icon-sub-script::before,.f-icon-subscript::before{content:"\e609"}.f-icon-sup-script::before,.f-icon-superscript::before{content:"\e60a"}.f-icon-div::before{content:"\e60b"}.f-icon-all::before{content:"\e60c"}.f-icon-h1::before{content:"\e60d"}.f-icon-h2::before{content:"\e60e"}.f-icon-h3::before{content:"\e60f"}.f-icon-h4::before{content:"\e610"}.f-icon-h5::before{content:"\e611"}.f-icon-h6::before{content:"\e612"}.f-icon-insert-ordered-list::before,.f-icon-list-numbered::before,.f-icon-list-ordered::before{content:"\e613"}.f-icon-insert-unordered-list::before,.f-icon-list-bulleted::before,.f-icon-list-unordered::before{content:"\e614"}.f-icon-indent-increase::before,.f-icon-indent::before{content:"\e615"}.f-icon-indent-decrease::before,.f-icon-outdent::before{content:"\e616"}.f-icon-insert-n::before,.f-icon-insert-top::before,.f-icon-insert-up::before{content:"\e617"}.f-icon-insert-m::before,.f-icon-insert-middle::before{content:"\e618"}.f-icon-insert-bottom::before,.f-icon-insert-down::before,.f-icon-insert-s::before{content:"\e619"}.f-icon-align-top::before{content:"\e61a"}.f-icon-align-middle::before{content:"\e61b"}.f-icon-align-bottom::before{content:"\e61c"}.f-icon-align-left::before,.f-icon-justify-left::before{content:"\e61d"}.f-icon-align-center::before,.f-icon-justify-center::before{content:"\e61e"}.f-icon-align-right::before,.f-icon-justify-right::before{content:"\e61f"}.f-icon-align-justify::before,.f-icon-justify-full::before{content:"\e620"}.f-icon-align-remove::before,.f-icon-justify-clear::before{content:"\e621"}.f-icon-text-wrap::before{content:"\e622"}.f-icon-rule-horizontal::before{content:"\e623"}.f-icon-table-align-top-left::before{content:"\e624"}.f-icon-table-align-top-center::before{content:"\e625"}.f-icon-table-align-top-right::before{content:"\e626"}.f-icon-table-align-middle-left::before{content:"\e627"}.f-icon-table-align-middle-center::before{content:"\e628"}.f-icon-table-align-middle-right::before{content:"\e629"}.f-icon-table-align-bottom-left::before{content:"\e62a"}.f-icon-table-align-bottom-center::before{content:"\e62b"}.f-icon-table-align-bottom-right::before{content:"\e6d7"}.f-icon-table-align-remove::before{content:"\e62d"}.f-icon-all-borders::before,.f-icon-borders-all::before{content:"\e62e"}.f-icon-borders-outside::before,.f-icon-outside-borders::before{content:"\e62f"}.f-icon-borders-inside::before,.f-icon-inside-borders::before{content:"\e630"}.f-icon-borders-inside-horizontal::before,.f-icon-inside-horizontal-borders::before{content:"\e631"}.f-icon-borders-inside-vertical::before,.f-icon-inside-vertical-borders::before{content:"\e632"}.f-icon-border-top::before,.f-icon-top-border::before{content:"\e633"}.f-icon-border-bottom::before,.f-icon-bottom-border::before{content:"\e634"}.f-icon-border-left::before,.f-icon-left-border::before{content:"\e635"}.f-icon-border-right::before,.f-icon-right-border::before{content:"\e636"}.f-icon-border-no::before,.f-icon-no-borders::before{content:"\e637"}.f-icon-borders-show-hide::before{content:"\e638"}.f-icon-border::before,.f-icon-form::before{content:"\e639"}.f-icon-form-element::before{content:"\e63a"}.f-icon-code-snippet::before{content:"\e63b"}.f-icon-select-all::before{content:"\e63c"}.f-icon-button::before{content:"\e63d"}.f-icon-select-box::before{content:"\e63e"}.f-icon-calendar-date::before{content:"\e63f"}.f-icon-group-box::before{content:"\e640"}.f-icon-textarea::before{content:"\e641"}.f-icon-textbox::before{content:"\e642"}.f-icon-textbox-hidden::before{content:"\e643"}.f-icon-paragraph-add::before{content:"\e645"}.f-icon-edit-tools::before{content:"\e646"}.f-icon-template-manager::before{content:"\e647"}.f-icon-change-manually::before{content:"\e648"}.f-icon-track-changes::before{content:"\e649"}.f-icon-track-changes-enable::before{content:"\e64a"}.f-icon-track-changes-accept::before{content:"\e64b"}.f-icon-track-changes-accept-all::before{content:"\e64c"}.f-icon-track-changes-reject::before{content:"\e64d"}.f-icon-track-changes-reject-all::before{content:"\e64e"}.f-icon-document-manager::before{content:"\e64f"}.f-icon-custom-icon::before{content:"\e650"}.f-icon-dictionary-add::before{content:"\e651"}.f-icon-image-insert::before,.f-icon-image-light-dialog::before,.f-icon-insert-image::before{content:"\e652"}.f-icon-image-edit::before{content:"\e653"}.f-icon-image-map-editor::before{content:"\e654"}.f-icon-comment::before{content:"\e655"}.f-icon-comment-remove::before{content:"\e656"}.f-icon-comments-remove-all::before{content:"\e657"}.f-icon-silverlight::before{content:"\e658"}.f-icon-media-manager::before{content:"\e659"}.f-icon-video-external::before{content:"\e65a"}.f-icon-flash-manager::before{content:"\e65b"}.f-icon-find-and-replace::before,.f-icon-find::before{content:"\e65c"}.f-icon-copy::before,.f-icon-files::before{content:"\e65d"}.f-icon-cut::before{content:"\e65e"}.f-icon-paste::before{content:"\e65f"}.f-icon-paste-as-html::before{content:"\e660"}.f-icon-paste-from-word::before{content:"\e661"}.f-icon-paste-from-word-strip-file::before{content:"\e662"}.f-icon-paste-html::before{content:"\e663"}.f-icon-paste-markdown::before{content:"\e664"}.f-icon-paste-plain-text::before{content:"\e665"}.f-icon-apply-format::before{content:"\e666"}.f-icon-clear-css::before,.f-icon-clearformat::before{content:"\e667"}.f-icon-copy-format::before{content:"\e668"}.f-icon-strip-all-formating::before{content:"\e669"}.f-icon-strip-css-format::before{content:"\e66a"}.f-icon-strip-font-elements::before{content:"\e66b"}.f-icon-strip-span-elements::before{content:"\e66c"}.f-icon-strip-word-formatting::before{content:"\e66d"}.f-icon-format-code-block::before{content:"\e66e"}.f-icon-style-builder::before{content:"\e66f"}.f-icon-module-manager::before{content:"\e670"}.f-icon-hyperlink-insert::before,.f-icon-hyperlink-light-dialog::before{content:"\e671"}.f-icon-hyperlink-globe::before{content:"\e672"}.f-icon-hyperlink-globe-remove::before{content:"\e673"}.f-icon-hyperlink-email::before{content:"\e674"}.f-icon-anchor::before{content:"\e675"}.f-icon-create-table::before,.f-icon-table-insert::before,.f-icon-table-light-dialog::before{content:"\e676"}.f-icon-table::before{content:"\e677"}.f-icon-table-properties::before,.f-icon-table-wizard::before{content:"\e678"}.f-icon-table-cell::before{content:"\e679"}.f-icon-table-cell-properties::before{content:"\e67a"}.f-icon-add-column-left::before,.f-icon-table-column-insert-left::before{content:"\e67b"}.f-icon-add-column-right::before,.f-icon-table-column-insert-right::before{content:"\e67c"}.f-icon-add-row-above::before,.f-icon-table-row-insert-above::before{content:"\e67d"}.f-icon-add-row-below::before,.f-icon-table-row-insert-below::before{content:"\e67e"}.f-icon-delete-column::before,.f-icon-table-column-delete::before{content:"\e67f"}.f-icon-delete-row::before,.f-icon-table-row-delete::before{content:"\e680"}.f-icon-table-cell-delete::before{content:"\e681"}.f-icon-table-delete::before{content:"\e682"}.f-icon-cells-merge::before,.f-icon-merge-cells::before{content:"\e683"}.f-icon-cells-merge-horizontally::before,.f-icon-merge-horizontally::before{content:"\e684"}.f-icon-cells-merge-vertically::before,.f-icon-merge-vertically::before{content:"\e685"}.f-icon-cell-split-horizontally::before{content:"\e686"}.f-icon-cell-split-vertically::before{content:"\e687"}.f-icon-normal-layout::before,.f-icon-table-unmerge::before{content:"\e688"}.f-icon-freeze-panes::before,.f-icon-pane-freeze::before{content:"\e689"}.f-icon-freeze-row::before,.f-icon-row-freeze::before{content:"\e68a"}.f-icon-column-freeze::before,.f-icon-freeze-col::before{content:"\e68b"}.f-icon-toolbar-float::before{content:"\e68c"}.f-icon-spell-checker::before{content:"\e68d"}.f-icon-validation-xhtml::before{content:"\e68e"}.f-icon-validation-data::before{content:"\e68f"}.f-icon-toggle-full-screen-mode::before{content:"\e690"}.f-icon-formula-fx::before,.f-icon-fx::before{content:"\e691"}.f-icon-sum::before{content:"\e692"}.f-icon-symbol::before{content:"\e693"}.f-icon-currency::before,.f-icon-dollar::before{content:"\e694"}.f-icon-percent::before{content:"\e695"}.f-icon-custom-format::before,.f-icon-format-number::before{content:"\e696"}.f-icon-decimal-increase::before,.f-icon-increase-decimal::before{content:"\e697"}.f-icon-decimal-decrease::before,.f-icon-decrease-decimal::before{content:"\e698"}.f-icon-font-size::before{content:"\e699"}.f-icon-image-absolute-position::before{content:"\e69a"}.f-icon-globe-outline::before{content:"\e700"}.f-icon-globe::before{content:"\e701"}.f-icon-marker-pin::before{content:"\e702"}.f-icon-marker-pin-target::before{content:"\e703"}.f-icon-pin::before{content:"\e704"}.f-icon-unpin::before{content:"\e705"}.f-icon-share::before{content:"\e800"}.f-icon-user::before{content:"\e801"}.f-icon-inbox::before{content:"\e802"}.f-icon-blogger::before{content:"\e803"}.f-icon-blogger-box::before{content:"\e804"}.f-icon-delicious::before{content:"\e805"}.f-icon-delicious-box::before{content:"\e806"}.f-icon-digg::before{content:"\e807"}.f-icon-digg-box::before{content:"\e808"}.f-icon-email::before,.f-icon-envelop::before,.f-icon-letter::before{content:"\e809"}.f-icon-email-box::before,.f-icon-envelop-box::before,.f-icon-letter-box::before{content:"\e80a"}.f-icon-facebook::before{content:"\e80b"}.f-icon-facebook-box::before{content:"\e80c"}.f-icon-google::before{content:"\e80d"}.f-icon-google-box::before{content:"\e80e"}.f-icon-google-plus::before{content:"\e80f"}.f-icon-google-plus-box::before{content:"\e810"}.f-icon-linkedin::before{content:"\e811"}.f-icon-linkedin-box::before{content:"\e812"}.f-icon-myspace::before{content:"\e813"}.f-icon-myspace-box::before{content:"\e814"}.f-icon-pinterest::before{content:"\e815"}.f-icon-pinterest-box::before{content:"\e816"}.f-icon-reddit::before{content:"\e817"}.f-icon-reddit-box::before{content:"\e818"}.f-icon-stumble-upon::before{content:"\e819"}.f-icon-stumble-upon-box::before{content:"\e81a"}.f-icon-tell-a-friend::before{content:"\e81b"}.f-icon-tell-a-friend-box::before{content:"\e81c"}.f-icon-tumblr::before{content:"\e81d"}.f-icon-tumblr-box::before{content:"\e81e"}.f-icon-twitter::before{content:"\e81f"}.f-icon-twitter-box::before{content:"\e820"}.f-icon-yammer::before{content:"\e821"}.f-icon-yammer-box::before{content:"\e822"}.f-icon-behance::before{content:"\e823"}.f-icon-behance-box::before{content:"\e824"}.f-icon-dribbble::before{content:"\e825"}.f-icon-dribbble-box::before{content:"\e826"}.f-icon-rss::before{content:"\e827"}.f-icon-rss-box::before{content:"\e828"}.f-icon-vimeo::before{content:"\e829"}.f-icon-vimeo-box::before{content:"\e82a"}.f-icon-youtube::before{content:"\e82b"}.f-icon-youtube-box::before{content:"\e82c"}.f-icon-folder-add::before{content:"\e902"}.f-icon-folder-up::before{content:"\e903"}.f-icon-fields-more::before,.f-icon-folder-more::before{content:"\e904"}.f-icon-aggregate-fields::before{content:"\e905"}.f-icon-file-vertical::before,.f-icon-page-portrait::before{content:"\e906"}.f-icon-file-add::before,.f-icon-insert-file::before{content:"\e907"}.f-icon-file-txt::before,.f-icon-txt::before{content:"\e908"}.f-icon-csv::before,.f-icon-file-csv::before{content:"\e909"}.f-icon-excel::before,.f-icon-file-excel::before,.f-icon-file-xls::before,.f-icon-xls::before,.f-icon-xlsa::before{content:"\e90a"}.f-icon-doc::before,.f-icon-file-doc::before,.f-icon-file-word::before,.f-icon-word::before{content:"\e90b"}.f-icon-file-mdb::before,.f-icon-mdb::before{content:"\e90c"}.f-icon-file-ppt::before,.f-icon-ppt::before{content:"\e90d"}.f-icon-file-pdf::before,.f-icon-pdf::before,.f-icon-pdfa::before{content:"\e90e"}.f-icon-file-psd::before,.f-icon-psd::before{content:"\e90f"}.f-icon-file-flash::before,.f-icon-flash::before{content:"\e910"}.f-icon-config::before,.f-icon-file-config::before{content:"\e911"}.f-icon-ascx::before,.f-icon-file-ascx::before{content:"\e912"}.f-icon-bac::before,.f-icon-file-bac::before{content:"\e913"}.f-icon-file-zip::before,.f-icon-zip::before{content:"\e914"}.f-icon-film::before{content:"\e915"}.f-icon-css3::before{content:"\e916"}.f-icon-html5::before{content:"\e917"}.f-icon-html::before,.f-icon-source-code::before,.f-icon-view-source::before{content:"\e918"}.f-icon-css::before{content:"\e919"}.f-icon-js::before{content:"\e91a"}.f-icon-exe::before{content:"\e91b"}.f-icon-csproj::before{content:"\e91c"}.f-icon-vbproj::before{content:"\e91d"}.f-icon-cs::before{content:"\e91e"}.f-icon-vb::before{content:"\e91f"}.f-icon-sln::before{content:"\e920"}.f-icon-cloud::before{content:"\e921"}.f-icon-file-horizontal::before,.f-icon-page-landscape::before{content:"\e922"}.f-icon-steps-transport::before{content:"\eb07"}.f-icon-steps-settlement::before{content:"\eb08"}.f-icon-steps-outofstock::before{content:"\eb09"}.f-icon-steps-invoice::before{content:"\eb0a"}.f-icon-steps-receivables::before{content:"\eb0b"}.f-icon-steps-delivergoods::before{content:"\eb0c"}.f-icon-exhale-discount::before{content:"\eb0d"}.f-icon-flag_urgent::before{content:"\eb10"}.f-icon-top_home::before{content:"\eb11"}.f-icon-top_agency::before{content:"\eb13"}.f-icon-top_news::before{content:"\eb14"}.f-icon-top_im_default::before{content:"\eb15"}.f-icon-top_developmenttool::before{content:"\eb16"}.f-icon-top_search::before{content:"\eb17"}.f-icon-top_my::before{content:"\eb18"}.f-icon-home-man::before{content:"\eb1a"}.f-icon-home-woman::before{content:"\eb1b"}.f-icon-home-setup::before{content:"\eb1c"}.f-icon-home-add::before{content:"\eb1d"}.f-icon-home-ring::before{content:"\eb1e"}.f-icon-home-operation::before{content:"\eb1f"}.f-icon-home-more::before{content:"\eb20"}.f-icon-home-weather-leaf::before{content:"\eb21"}.f-icon-engineering::before{content:"\eb22"}.f-icon-git::before{content:"\eb23"}.f-icon-panel-retraction::before{content:"\eb24"}.f-icon-input-language::before{content:"\eb26"}.f-icon-attribute-configuration::before{content:"\eb27"}.f-icon-bottomsetting::before{content:"\eb28"}.f-icon-roofing::before{content:"\eb29"}.f-icon-new-fullscreen::before{content:"\eb38"}.f-icon-filtrate::before{content:"\eb39"}.f-icon-document-information::before{content:"\eb3a"}.f-icon-attachment-list::before{content:"\eb3b"}.f-icon-product-list::before{content:"\eb3c"}.f-icon-new-function::before{content:"\eb3d"}.f-icon-telephone::before{content:"\eb3e"}.f-icon-list::before{content:"\eb3f"}.f-icon-more::before{content:"\eb41"}.f-icon-record::before{content:"\eb42"}.f-icon-man::before{content:"\eb43"}.f-icon-woman::before{content:"\eb44"}.f-icon-new-form::before{content:"\eb45"}.f-icon-new-edit::before{content:"\eb46"}.f-icon-new-dimension::before{content:"\eb49"}.f-icon-basic::before{content:"\eb4c"}.f-icon-language::before{content:"\eb4d"}.f-icon-password::before{content:"\eb4e"}.f-icon-area::before{content:"\eb4f"}.f-icon-skin::before{content:"\eb51"}.f-icon-counterclockwise::before{content:"\eb53"}.f-icon-clockwise::before{content:"\eb54"}.f-icon-amplification::before{content:"\eb55"}.f-icon-narrow::before{content:"\eb56"}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse-icon::before,.f-icon-packup::before{content:"\eb58"}.f-icon-remove::before{content:"\eb59"}.f-icon-user_center::before{content:"\eb5a"}.f-icon-sign_out::before{content:"\eb5b"}.f-icon-yxs_customize::before{content:"\eb5c"}.f-icon-yxs_earth::before{content:"\eb5d"}.f-icon-yxs_level::before{content:"\eb5e"}.f-icon-yxs_delete::before{content:"\eb5f"}.f-icon-yxs_copy::before{content:"\eb60"}.f-icon-yxs_move::before{content:"\eb61"}.f-icon-index::before{content:"\eb65"}.f-icon-index-face::before{content:"\eb66"}.f-icon-search::before{content:"\eb67"}.f-icon-message::before{content:"\eb69"}.f-icon-backlog::before{content:"\eb6a"}.f-icon-information::before{content:"\eb6b"}.f-icon-launchpad::before{content:"\eb6c"}.f-icon-launchpad-face::before{content:"\eb6d"}.f-icon-ide::before{content:"\eb71"}.f-icon-collection::before{content:"\eb72"}.f-icon-shoucangjia::before{content:"\eb73"}.f-icon-list1::before{content:"\eb74"}.f-icon-tiled::before{content:"\eb75"}.f-icon-sudoku::before{content:"\eb76"}.f-icon-tenant::before{content:"\eb77"}.f-icon-radio-2::before{content:"\eb78"}.f-icon-qiehuanzuzhi::before{content:"\eb79"}.f-icon-tiled-new::before{content:"\eb7a"}.f-icon-list-new::before{content:"\eb7b"}.f-icon-sudoku-new::before{content:"\eb7c"}.f-icon-danger::before{content:"\eb7e"}.f-icon-default::before{content:"\eb14"}.f-icon-navigation::before{content:"\eb81"}.f-icon-launchpad-face2::before{content:"\eb84"}.f-icon-launchpad2::before{content:"\eb83"}.f-icon-col-filteranddescending::before{content:"\eb9b"}.f-icon-col-filterandascending::before{content:"\eb9a"}.f-icon-col-defaultfilterandsort::before{content:"\eb89"}.f-icon-col-filter::before{content:"\eb88"}.f-icon-col-descending::before{content:"\eb87"}.f-icon-col-ascending::before{content:"\eb86"}.f-icon-col-defaultsort::before{content:"\eb85"}.f-icon-runtime::before{content:"\eb9c"}.f-icon-page-last::before{content:"\eb9e"}.f-icon-page-first::before{content:"\eb9d"}.f-icon-orientation-arrow::before{content:"\eb9f"}.f-icon-flowline-scheduled:before{content:"\eba9"}.f-icon-flowline-canceled::before{content:"\eba8"}.f-icon-flowline-pending::before{content:"\eba7"}.f-icon-flowline-run::before{content:"\eba6"}.f-icon-flowline-created::before{content:"\eba5"}.f-icon-flowline-running::before{content:"\eba4"}.f-icon-flowline-waiting::before{content:"\eba3"}.f-icon-flowline-skipped::before{content:"\eba2"}.f-icon-flowline-view::before{content:"\eba1"}.f-icon-flowline-warning::before{content:"\eba0"}.f-icon-flowline-more::before{content:"\ebb0"}.f-icon-flowline-manual::before{content:"\ebb1"}.f-icon-path::before{content:"\ebb2"}.f-icon-code::before{content:"\ebb3"}.f-icon-department::before{content:"\ebb4"}.f-icon-info-circle::before{content:"\ebb5"}.f-icon-help-01::before{content:"\ebb6"}.f-icon-statement::before{content:"\ebd3"}.f-icon-address-location::before{content:"\ebd2"}.f-icon-task-record::before{content:"\ebd1"}.f-icon-visit:before{content:"\ebd0"}.f-icon-relationship::before{content:"\ebc9"}.f-icon-truck-delivery::before{content:"\ebc8"}.f-icon-concat-list::before{content:"\ebc7"}.f-icon-payment-notice::before{content:"\ebc6"}.f-icon-application-for-invoicing::before{content:"\ebc5"}.f-icon-accomplishment:before{content:"\ebc4"}.f-icon-potential:before{content:"\ebc3"}.f-icon-aim::before{content:"\ebc2"}.f-icon-declaration-form::before{content:"\ebc1"}.f-icon-licensed::before{content:"\ebc0"}.f-icon-profile-picture::before{content:"\ebb9"}.f-icon-forecast-of-completion::before{content:"\ebb8"}.f-icon-team::before{content:"\ebb7"}.f-icon-table_view::before{content:"\ebf7"}.f-icon-card_view::before{content:"\ebd5"}.f-icon-list_view::before{content:"\ebd6"}.f-icon-form_view::before{content:"\ebd7"}.f-icon-chart_view::before{content:"\ebd8"}.f-icon-perspective_view::before{content:"\ebd9"}.f-icon-drop-down_line::before{content:"\ebe1"}.f-icon-more_line::before{content:"\ebe2"}.f-icon-calendars_line1::before{content:"\ebe3"}.f-icon-message_round::before{content:"\ebe9"}.f-icon-col-descendingorder::before{content:"\ebf2"}.f-icon-col-ascendingorder::before{content:"\ebf1"}.f-icon-feedback::before{content:"\ebf3"}.f-icon-signature::before{content:"\ebf4"}.f-icon-indep-password::before{content:"\ebf5"}.f-icon-honor::before{content:"\ebf6"}.f-icon-view-cardview::before{content:"\ebf8"}.f-icon-edit-cardview::before{content:"\ebf9"}.f-icon-description-tips::before{content:"\eca1"}.f-icon-equalsign::before{content:"\eca2"}.f-icon-column-rectangle::before{content:"\eca3"}.f-icon-position::before{content:"\ecb4"}.f-icon-hotel::before{content:"\ecb3"}.f-icon-arrowwide::before{content:"\ecb2"}.f-icon-foldin::before{content:"\ecb1"}.f-icon-filter-cancel::before{content:"\eca4"}.f-icon-filter-add::before{content:"\eca5"}.f-icon-filter-grouping::before{content:"\eca6"}.f-icon-filter-delete::before{content:"\eca7"}.f-icon-moverto::before{content:"\eca8"}.f-icon-thumbtack-fill::before{content:"\eca9"}.f-icon-thumbtack::before{content:"\ecb0"}.f-icon-enclosure-edit::before{content:"\ecb6"}.f-icon-notifier::before{content:"\ecb7"}.f-iconmage{display:inline-block}.f-btn-icon{cursor:pointer;font-size:.8125rem;line-height:1.4286;padding:.1875rem;border:1px solid var(--f-neutral-08);border-radius:6px;position:relative;display:flex;align-items:center;justify-content:center;width:1.6607375rem;height:1.6607375rem}.f-btn-icon.f-bare{border-color:transparent!important;background:0 0!important;transition:color .2s ease-in-out}.f-btn-icon::after,.f-btn-icon::before{border-radius:6px;content:"";position:absolute;left:-1px;right:-1px;top:-1px;bottom:-1px;z-index:0;transition:opacity .2s ease-in-out;pointer-events:none}.f-btn-icon.f-bare::before{display:block}.f-btn-icon::before{opacity:0;display:none}.f-btn-icon.f-state-hover::before,.f-btn-icon:hover::before{opacity:.08}.f-btn-icon::after{opacity:0;display:none}.btn-icontext{display:inline-flex;align-items:center}.btn-icontext .f-icon{margin:0 .4375rem 0 0}.f-icon-danger,.f-icon-error{color:var(--f-semantic-danger-01)}.f-icon-info,.f-icon-note::before{color:var(--f-semantic-info-01)}.f-icon-question,.f-icon-warning{color:var(--f-semantic-warning-01)}.f-icon-success{color:var(--f-semantic-success-01)}.f-icon-default{color:var(--f-semantic-info-01)}.f-icon-lookup::before{content:"\e032"}.f-page-pre::before{content:"\e016"}.f-page-first::before{content:"\eb9d"}.f-page-last::before{content:"\eb9e"}.f-page-next::before{content:"\e014"}.modal_minimize{font-family:FarrisIcons}.modal_minimize::before{content:"\eb4b"}.modal_maximize{font-family:FarrisIcons}.modal_maximize::before{content:"\eb68"}.f-icon-close::before,.f-icon-group-delete::before,.modal_close::before{content:"\e11b"}.f-icon-close,.f-icon-group-delete::before{font-family:FarrisIcons}.modal_close{font-family:FarrisIcons}.modalrevert::before{content:"\eb4b"}.f-legend-icon::after{content:"";width:1.125rem;height:.875rem;overflow:hidden;display:inline-block;line-height:1.125rem;margin:0 .25rem 0 0;color:var(--f-neutral-01)}.f-legend-collapse::after,.f-legend-show::after{font-size:.875rem;font-family:FarrisIcons}.f-legend-collapse::after{content:"\e013"}.f-legend-show::after{content:"\e015"}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field:hover.search-field-remove>.f-icon::before,.f-search-box .search-tag-item.search-field:hover.search-field-remove>.f-icon::before,.f-sidebar-close::before{content:"\e11b"}.f-sidebar-entry::before{content:"\e014"}.farris-image-cropper-frame{display:flex;position:relative;width:100%;max-width:100%;max-height:100%;overflow:hidden;text-align:center}.farris-image-cropper-frame .farris-image-cropper{width:100%;position:relative}.farris-image-cropper-frame .farris-image-cropper .farris-source-image{max-width:100%;max-height:100%;transform-origin:center}.farris-image-cropper-frame .farris-image-overlay{position:absolute;pointer-events:none;touch-action:none;outline:#fff solid 100vw;top:0;left:0}.farris-image-cropper-frame .farris-image-cropper-wrapper{position:absolute;display:flex;color:#53535C;background:0 0;outline:rgba(0,0,0,.3) solid 100vw;outline:solid var(--cropper-outline-color,rgba(0,0,0,.3));touch-action:none}.farris-image-cropper-frame .farris-image-cropper-wrapper:after{position:absolute;content:"";top:0;bottom:0;left:0;right:0;pointer-events:none;border:1px dashed;opacity:.75;color:inherit;z-index:1}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-move{width:100%;cursor:move;border-radius:100%;border:1px solid #388fff}.farris-image-cropper-frame .farris-image-cropper-wrapper:focus .farris-image-cropper-move{border-color:#1e90ff;border-width:2px}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize{position:absolute;display:inline-block;line-height:6px;padding:8px;opacity:.85;z-index:1}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize .farris-image-cropper-square{display:inline-block;background:#388fff;width:6px;height:6px;border:1px solid #59a1ff;box-sizing:content-box}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.topleft{top:-12px;left:-12px;cursor:nwse-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.top{top:-12px;left:calc(50% - 12px);cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.topright{top:-12px;right:-12px;cursor:nesw-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.right{top:calc(50% - 12px);right:-12px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.bottomright{bottom:-12px;right:-12px;cursor:nwse-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.bottom{bottom:-12px;left:calc(50% - 12px);cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.bottomleft{bottom:-12px;left:-12px;cursor:nesw-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize.left{top:calc(50% - 12px);left:-12px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar{position:absolute;z-index:1}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.top{top:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.right{top:11px;right:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.bottom{bottom:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper .farris-image-cropper-resize-bar.left{top:11px;left:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded{outline-color:transparent;width:161px;height:161px}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded:after{border-radius:100%;box-shadow:0 0 0 100vw rgba(0,0,0,.3);box-shadow:0 0 0 100vw var(--cropper-outline-color,rgba(0,0,0,.3))}@media (orientation:portrait){.farris-image-cropper-frame .farris-image-cropper-wrapper{outline-width:100vh}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded:after{box-shadow:0 0 0 100vh rgba(0,0,0,.3);box-shadow:0 0 0 100vh var(--cropper-outline-color,rgba(0,0,0,.3))}}.farris-image-cropper-frame .farris-image-cropper-wrapper.farris-image-cropper-rounded .farris-image-cropper-move{border-radius:100%}.farris-image-cropper-frame.farris-image-cropper-disabled .farris-image-cropper-wrapper .farris-image-cropper-move,.farris-image-cropper-frame.farris-image-cropper-disabled .farris-image-cropper-wrapper .farris-image-cropper-resize,.farris-image-cropper-frame.farris-image-cropper-disabled .farris-image-cropper-wrapper .farris-image-cropper-resize-bar{display:none}.farris-image-cropper-frame .farris-image-cropper-error{width:100%;text-align:center;font-size:14px}.farris-image-cropper-frame .farris-image-cropper-loading{position:absolute;top:0;left:0;width:100%;height:100%}.farris-image-cropper-frame .farris-image-cropper-loading .farris-image-cropper-loading-spinner{width:31px;height:31px;margin:0 auto;border:2px solid #388fff;border-radius:50%;border-left-color:transparent;border-right-color:transparent;-webkit-animation:cssload-spin 425ms infinite linear;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px);animation:cssload-spin 425ms infinite linear}.input-group-append,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text,.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}@keyframes cssload-spin{to{transform:rotate(360deg)}}.f-cmp-static-text-input-append,.f-cmp-text-input-append,.f-cmp-textarea-input-append{display:flex;height:100%}.f-cmp-static-text-input-append,.f-cmp-textarea-input-append{align-items:flex-start}.f-cmp-static-text-input-append .f-form-control-text,.f-cmp-static-text-input-append .f-form-control-textarea{flex:1 1 0}.f-cmp-static-text-input-append .input-append-wrapper,.f-cmp-text-input-append .input-append-wrapper,.f-cmp-textarea-input-append .input-append-wrapper{flex-shrink:0;height:100%}.input-append-text .input-group-text{color:var(--f-text-02);cursor:default}.input-append-button .input-group-text{color:var(--f-theme-03)}.f-cmp-inputgroup .input-append-text .input-group-text,.f-cmp-text-input-append .input-append-text .input-group-text,.f-component-text .input-append-text .input-group-text{color:var(--f-text-02)}.f-cmp-inputgroup .input-append-button .input-group-text,.f-cmp-text-input-append .input-append-button .input-group-text,.f-component-text .input-append-button .input-group-text{color:var(--f-theme-03)}.f-cmp-text-input-append .input-append-wrapper,.f-cmp-textarea-input-append .input-append-wrapper,.f-component-text .input-append-wrapper,.input-group .input-append-wrapper{background:var(--f-neutral-12)}.f-cmp-text-input-append .input-append-wrapper>.input-group-text,.f-cmp-textarea-input-append .input-append-wrapper>.input-group-text,.f-component-text .input-append-wrapper>.input-group-text,.input-group .input-append-wrapper>.input-group-text{border:0;background:0 0}.f-cmp-input-append-form .input-append-wrapper{position:absolute;right:1px;height:auto;top:1px;bottom:1px;border-radius:0 6px 6px 0;display:block}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after,.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-append-wrapper.f-state-disabled{display:none!important}.was-validated .farris-input-wrap .form-check-input:invalid~.invalid-feedback,.was-validated .farris-input-wrap .form-check-input:invalid~.invalid-tooltip,.was-validated .farris-input-wrap .form-check-input:valid~.valid-feedback,.was-validated .farris-input-wrap .form-check-input:valid~.valid-tooltip{display:block}.f-cmp-text-is-textarea.f-cmp-input-append-form .input-append-wrapper,.f-cmp-textarea-input-append.f-cmp-input-append-form .input-append-wrapper{bottom:auto}.form-control:disabled,.form-control:disabled:hover,.form-control[readonly],.form-control[readonly]:hover{border-color:var(--f-neutral-04);color:var(--f-text-02);background:var(--f-neutral-12);cursor:default}.form-control:hover{background-color:var(--f-neutral-12);color:var(--f-text-02);border-color:var(--f-theme-08);box-shadow:none}.was-validated .farris-input-wrap .custom-control-input:invalid~.custom-control-label,.was-validated .farris-input-wrap .custom-control-input:valid~.custom-control-label,.was-validated .farris-input-wrap .form-check-input:invalid~.form-check-label,.was-validated .farris-input-wrap .form-check-input:valid~.form-check-label{color:var(--f-neutral-04)}.form-control[readonly]:focus{box-shadow:none}.farris-input-wrap .custom-select.is-valid,.farris-input-wrap .form-control.is-valid,.was-validated .farris-input-wrap .custom-select:valid,.was-validated .farris-input-wrap .form-control:valid{border-color:var(--f-neutral-04)}.farris-input-wrap .custom-select.is-valid:focus,.farris-input-wrap .form-control.is-valid:focus,.was-validated .farris-input-wrap .custom-select:valid:focus,.was-validated .farris-input-wrap .form-control:valid:focus{border-color:var(--f-neutral-04);box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-control-input:valid~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.75)}.was-validated .farris-input-wrap .custom-control-input:valid:checked~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.9)}.was-validated .farris-input-wrap .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-file-input:valid~.custom-file-label{border-color:var(--f-neutral-04)}.was-validated .farris-input-wrap .custom-file-input:valid~.custom-file-label::after{border-color:inherit}.was-validated .farris-input-wrap .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.farris-input-wrap .custom-select.is-invalid,.farris-input-wrap .form-control.is-invalid,.was-validated .farris-input-wrap .custom-select:invalid,.was-validated .farris-input-wrap .form-control:invalid{border-color:var(--f-neutral-04)}.farris-input-wrap .custom-select.is-invalid:focus,.farris-input-wrap .form-control.is-invalid:focus,.was-validated .farris-input-wrap .custom-select:invalid:focus,.was-validated .farris-input-wrap .form-control:invalid:focus{border-color:var(--f-neutral-04);box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-control-input:invalid~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.75)}.was-validated .farris-input-wrap .custom-control-input:invalid:checked~.custom-control-label::before{background-color:rgba(var(--f-neutral-04),.9)}.was-validated .farris-input-wrap .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.was-validated .farris-input-wrap .custom-file-input:invalid~.custom-file-label{border-color:var(--f-neutral-04)}.was-validated .farris-input-wrap .custom-file-input:invalid~.custom-file-label::after{border-color:inherit}.was-validated .farris-input-wrap .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(var(--f-neutral-04),.25)}.f-cmp-inputgroup .f-state-focus,.input-group.f-state-focus{box-shadow:0 0 0,0 0 4px 2px rgba(99,136,255,.12);outline:0}input:-internal-autofill-selected{background:var(--f-neutral-12)}.f-empty-input-placeholder{padding-top:1.1607375rem;margin-top:.375rem;height:calc(1.5rem + .125rem);margin-bottom:.375rem;box-sizing:content-box}textarea::-webkit-input-placeholder{color:var(--f-text-09)!important}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;flex-grow:1;flex-shrink:1;flex-basis:0;width:1%;margin-bottom:0}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-file{display:flex;align-items:center}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-prepend{margin-right:-1px}.input-group-text{display:flex;align-items:center;padding:.1875rem .5rem;margin-bottom:0;font-size:.8125rem;font-weight:400;line-height:1.4286;color:var(--f-text-02);text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid var(--f-neutral-04);border-radius:6px}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(1.750025rem + 2px);padding:.25rem .3125rem;font-size:.875rem;line-height:1.4286;border-radius:6px}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.32145rem + 2px);padding:.125rem .4375rem;font-size:.75rem;line-height:1.4286;border-radius:6px}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.input-group.f-state-focus{border-color:var(--f-theme-08)}.input-group{border:1px solid var(--f-neutral-04);border-radius:6px}.input-group .form-control{border:0;height:1.5rem;box-shadow:none}.input-group .form-control:focus{box-shadow:none}.input-group .input-group-prepend{border-radius:6px 0 0 6px}.input-group .input-group-append{border-radius:0 6px 6px 0}.input-group .input-group-append,.input-group .input-group-prepend{background:#e4e7eb}.input-group .input-group-append>.btn,.input-group .input-group-append>.dropdown,.input-group .input-group-append>.input-group-text,.input-group .input-group-prepend>.btn,.input-group .input-group-prepend>.dropdown,.input-group .input-group-prepend>.input-group-text{border:0}.input-group .input-group-append>.input-group-text,.input-group .input-group-prepend>.input-group-text{background:0 0}.input-group .input-group-append>.input-group-clear,.input-group .input-group-prepend>.input-group-clear{padding:0 8px;border-radius:6px!important;background:var(--f-neutral-12)}.input-group .input-group-append>.input-group-clear .modal_close,.input-group .input-group-prepend>.input-group-clear .modal_close{color:var(--f-text-10);font-size:.75rem}.input-group .input-group-append>.input-group-clear:hover .modal_close,.input-group .input-group-prepend>.input-group-clear:hover .modal_close{color:var(--f-text-08)}.input-group:not(.farris-input-group-readonly):not(.farris-input-group-disable):not(.f-state-readonly):not(.f-state-disabled):not(.f-state-focus):hover{border-color:var(--f-theme-08)}.f-cmp-inputgroup .input-group-before-tips{background:var(--f-neutral-04);border:none;border-right:1px solid var(--f-neutral-04);position:relative;border-radius:6px 0 0 6px;padding:0 8px;display:flex;align-items:center}.f-cmp-inputgroup .input-group-before-tips .f-icon{font-size:14px}.f-cmp-inputgroup .input-group-before-tips .tips-arrow{width:4px;height:4px;margin:-4px 0 0;position:absolute;top:50%;right:0}.f-cmp-inputgroup .input-group-before-tips .tips-arrow::after,.f-cmp-inputgroup .input-group-before-tips .tips-arrow::before{content:"";border-color:transparent;border-style:solid;border-width:4px 4px 4px 0;position:absolute}.f-cmp-inputgroup .input-group-before-tips .tips-arrow::before{left:0;border-right-color:var(--f-neutral-04)}.f-cmp-inputgroup .input-group-before-tips .tips-arrow::after{left:1px;border-right-color:var(--f-neutral-12)}.f-cmp-inputgroup .f-state-disabled,.f-cmp-inputgroup .f-state-editable{border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-cmp-inputgroup.input-group{flex-wrap:nowrap}.f-cmp-inputgroup .input-group-append{margin-left:0;background:var(--f-neutral-12)}.f-cmp-inputgroup.input-group>.form-control:not(:last-child){border-radius:6px}.f-cmp-inputgroup.input-group--has-clear>.form-control:last-of-type{border-top-right-radius:0;border-bottom-right-radius:0}.f-cmp-inputgroup .input-group-text{justify-content:center;color:rgba(0,0,0,.25);padding-left:.26786875rem;padding-right:.26786875rem;cursor:pointer}.f-cmp-inputgroup .input-group-text:hover{color:var(--f-theme-05)}.f-cmp-inputgroup .f-state-disabled .input-group-append,.f-cmp-inputgroup .f-state-readonly .input-group-append,.f-cmp-inputgroup .farris-input-group-disable .input-group-append,.f-cmp-inputgroup .farris-input-group-readonly .input-group-append{background:var(--f-neutral-12)}.f-cmp-inputgroup .f-state-disabled .input-group-append:not(.input-append-wrapper),.f-cmp-inputgroup .f-state-readonly .input-group-append:not(.input-append-wrapper),.f-cmp-inputgroup .farris-input-group-disable .input-group-append:not(.input-append-wrapper),.f-cmp-inputgroup .farris-input-group-readonly .input-group-append:not(.input-append-wrapper){display:none}.f-cmp-inputgroup .f-state-disabled .input-append-wrapper,.f-cmp-inputgroup .f-state-readonly .input-append-wrapper,.f-cmp-inputgroup .farris-input-group-disable .input-append-wrapper,.f-cmp-inputgroup .farris-input-group-readonly .input-append-wrapper{color:var(--f-text-02)}.f-cmp-inputgroup .f-state-disabled .input-append-wrapper .input-append-text:hover,.f-cmp-inputgroup .f-state-readonly .input-append-wrapper .input-append-text:hover,.f-cmp-inputgroup .farris-input-group-disable .input-append-wrapper .input-append-text:hover,.f-cmp-inputgroup .farris-input-group-readonly .input-append-wrapper .input-append-text:hover{color:inherit}.f-cmp-inputgroup .f-state-disabled .append-force-show,.f-cmp-inputgroup .f-state-readonly .append-force-show,.f-cmp-inputgroup .farris-input-group-disable .append-force-show,.f-cmp-inputgroup .farris-input-group-readonly .append-force-show{display:flex}.f-cmp-inputgroup .f-state-disabled .input-group-text,.f-cmp-inputgroup .f-state-readonly .input-group-text,.f-cmp-inputgroup .farris-input-group-disable .input-group-text,.f-cmp-inputgroup .farris-input-group-readonly .input-group-text{cursor:default}.f-cmp-inputgroup .f-state-disabled .form-control{color:var(--f-text-02)}.f-cmp-inputgroup .f-state-editable .form-control{color:var(--f-text-02)!important}.f-cmp-inputgroup .f-state-focus{border-color:var(--f-theme-08)}.f-cmp-inputgroup .f-state-readonly{box-shadow:none;background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-cmp-inputgroup .f-state-readonly .form-control{color:var(--f-text-02)}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper{display:flex;flex-direction:row;align-items:center}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--content{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden;height:100%;word-break:break-all}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--content .multi--close{color:var(--f-text-10);font-size:14px;cursor:pointer;margin-left:4px}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--content .multi--close::before{content:"\e11d"}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--item{display:inline-flex;align-items:center;border-radius:4px;margin:0 4px 0 0;padding:0 6px;background:var(--f-neutral-09)}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--item:last-child{margin:0}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--more{flex-shrink:0;font-size:13px;color:var(--f-theme-03);display:flex;align-items:center}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--more .multi--more-icon{font-size:13px}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi--more .multi--more-icon::before{content:"\e11e"}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi-date-display .multi--item{padding:0 14px 0 6px}.f-cmp-inputgroup .f-cmp-inputgroup--multi-wrapper .multi-date-display .multi-date-display-readonly{padding:0 6px}.language-textbox-panel{background:var(--f-neutral-20)!important;margin:.25rem 0 0;border-radius:10px;box-shadow:0 2px 20px 0 rgba(3,18,51,.12)!important}.f-layout-pane.f-page-content-main,.f-splitter-pane.f-splitter-pane-bottom,.f-splitter-pane.f-splitter-pane-left,.f-splitter-pane.f-splitter-pane-right,.f-splitter-pane.f-splitter-pane-top{box-shadow:0 0 8px 0 rgba(0,28,64,.08)}.language-textbox-panel .list-group-item{background:0 0}.f-layout{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:row;flex-wrap:nowrap;overflow:hidden;position:relative}.f-layout-pane.f-page-content-main{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto;display:flex}.f-layout-pane.f-page-content-nav{display:flex;flex-direction:column;box-shadow:none!important;padding:0;position:relative;z-index:100}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-e{cursor:e-resize;width:.4375rem;right:-.3125rem;height:100%;top:0}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-w{cursor:w-resize;width:.4375rem;left:-.3125rem;height:100%;top:0}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-s{cursor:s-resize;height:.4375rem;bottom:-.3125rem;width:100%;left:0}.f-layout-pane>.f-layout-resize-bar.f-layout-resize-bar-n{cursor:n-resize;height:.4375rem;top:-.3125rem;width:100%;left:0}.f-layout-pane>.f-layout-resize-bar{position:absolute;font-size:.1px;display:block;touch-action:none}.f-layout-pane>.f-layout-resize-bar:hover{background:rgba(42,135,255,.07)}.f-layout-resize-overlay{z-index:98;width:100%;height:100%;cursor:e-resize;background:0 0;position:absolute}.f-layout-horizontal-resize-proxy,.f-layout-vertical-resize-proxy{background:rgba(42,135,255,.07);display:none;z-index:100;position:absolute}.f-layout-horizontal-resize-proxy{width:.4375rem;left:0;height:100%}.f-layout-vertical-resize-proxy{height:.4375rem;top:0;width:100%}.f-list-nav{height:100%;min-height:200px}.f-list-nav .f-list-nav-in{position:relative;height:100%;background-color:#fff;box-shadow:1px 1px 8px 0 rgba(0,28,64,.08);z-index:100}.f-list-nav .f-list-nav-main{display:flex;flex-direction:column;height:100%;overflow-x:hidden}.f-list-nav .f-list-nav-main .f-list-nav-footer,.f-list-nav .f-list-nav-main .f-list-nav-header{flex-shrink:0}.f-list-nav .f-list-nav-main .f-list-nav-content{flex-grow:1;flex-shrink:1;flex-basis:0;overflow-y:auto;padding:.625rem 0}.f-list-nav .f-list-nav-main .f-list-nav-header .f-list-nav-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.625rem .875rem .375rem!important;border:none!important;font-size:17px;color:var(--f-text-02);line-height:24px}.f-list-nav.f-list-nav-left{padding-right:0}.f-list-nav.f-list-nav-right{padding-left:0}.f-list-nav.f-list-nav-bottom,.f-list-nav.f-list-nav-top{width:100%;height:auto;min-height:auto}.f-list-nav .f-list-nav-in>.ng-resizable-handle{z-index:105}.splitter-pane-collapse-animate{transition:width .5s ease 0s}.f-template-listnav-row .list-nav-link{margin:4px 8px;border-radius:8px;color:var(--f-text-02);display:flex;align-items:center;padding:.5625rem 1.25rem}.f-template-listnav-row .list-nav-link.link-disable{background-color:#F9F9F9}.f-template-listnav-row .list-nav-link .nav-item-name{flex:1;font-size:.875rem;line-height:1.25rem;color:var(--f-text-02);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-template-listnav-row .list-nav-link .nav-item-counter{display:inline-block;padding:0 .3125rem;height:.875rem;line-height:.875rem;border-radius:.5rem;font-size:.625rem;color:var(--f-theme-03)}.f-template-listnav-row .list-nav-link:hover{background:var(--f-aid-02)}.f-listview-active .f-template-listnav-row .list-nav-link{border:none;background:var(--f-theme-04);box-shadow:0 4px 10px 0 rgba(var(--f-theme-03),.2)}.f-listview-active .f-template-listnav-row .list-nav-link .nav-item-name{color:#fff}.f-listview-active .f-template-listnav-row .list-nav-link .nav-item-counter{color:#fff;font-size:13px;background:0 0}.f-list-nav .f-list-nav-toggle-sidebar{width:22px;height:22px;background:#fff;border:1px solid var(--f-neutral-07);display:flex;align-items:center;position:absolute;z-index:120;margin:0;cursor:pointer}.f-list-nav .f-list-nav-toggle-sidebar .triangle{color:var(--f-text-02);border:none;font-family:FarrisIcons;width:14px;height:14px;-webkit-font-smoothing:antialiased;font-size:14px;font-weight:400;text-transform:none;display:block;line-height:14px;margin:0 auto}.f-list-nav .f-list-nav-toggle-sidebar .triangle::before{line-height:1}.f-list-nav .f-list-nav-toggle-sidebar .active,.f-list-nav .f-list-nav-toggle-sidebar:hover{border-color:var(--f-theme-03);color:#fff;background-image:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);box-shadow:0 3px 8px 0 rgba(var(--f-semantic-info-01),.4)}.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar{border-radius:12px;top:14px;right:-12px;left:auto}.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-left .f-list-nav-toggle-sidebar.active{right:-12px;transform:rotateY(180deg)}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar{border-radius:12px;top:14px;left:-12px;right:auto}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar .triangle::before{content:"\e00d"}.f-list-nav.f-list-nav-right .f-list-nav-toggle-sidebar.active{left:-12px;transform:rotateY(180deg)}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar{border-radius:12px;top:auto;bottom:-12px;right:14px;width:22px;height:22px;left:auto}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar .triangle::before{content:"\e00c"}.f-list-nav.f-list-nav-top .f-list-nav-toggle-sidebar.active{top:auto;left:auto;right:14px;bottom:-12px;transform:rotateX(180deg)}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar{border-radius:12px;top:-12px;bottom:auto;right:14px;width:22px;height:22px;left:auto}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar .triangle{border:none}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar .triangle::before{content:"\e00e"}.f-list-nav.f-list-nav-bottom .f-list-nav-toggle-sidebar.active{right:14px;left:auto;top:-12px;bottom:auto;transform:rotateX(180deg)}.f-template-timeline-new-row .f-timeline{padding-right:26px}.f-template-timeline-new-row .f-timeline .timeline-date{position:relative;padding-bottom:16px;padding-left:18px;color:rgba(0,0,0,.45);font-size:14px;line-height:20px}.f-template-timeline-new-row .f-timeline .timeline-date::before{position:absolute;left:0;top:0;width:1px;height:35px;border-left:1px dotted #dcdcdc;content:"";z-index:9}.f-template-timeline-new-row .f-timeline .timeline-date::after{position:absolute;left:-3px;top:6.5px;display:block;width:7px;height:7px;background:#66B869;border-radius:100%;content:"";z-index:10}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper{padding-left:18px;padding-bottom:13px;border-left:1px dotted #dcdcdc}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content{padding:15px 14px;background:#F9F9F9;border:1px solid #F2F2F2}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-title{padding-bottom:12px;font-size:14px;line-height:20px;color:rgba(0,0,0,.65);border-bottom:1px solid rgba(220,220,220,.6)}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-title .title-sum{line-height:22px;font-size:16px;color:#F49730}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-main .content-data{font-size:0;margin-top:16px}.f-template-timeline-new-row .f-timeline .timeline-content-wrapper .timeline-content-main .content-data li{display:inline-block;padding-right:30px;margin-bottom:18px;font-size:14px;line-height:20px;color:rgba(0,0,0,.65)}.f-template-timeline-new-row .f-timeline.f-timeline-first .timeline-date::before{height:28px;top:7px}.f-template-timeline-new-row .f-timeline.f-timeline-success .timeline-date::after{background:var(--f-semantic-success-01)}.f-template-timeline-new-row .f-timeline.f-timeline-info .timeline-date::after{background-color:var(--f-semantic-info-01)}.f-template-timeline-new-row .f-timeline.f-timeline-error .timeline-date::after{background-color:var(--f-semantic-danger-01)}.f-template-timeline-new-row .f-timeline.f-timeline-warn .timeline-date::after{background-color:var(--f-semantic-warning-01)}.f-list-view .f-list-view-hover,.f-tmpl-subgrid-by-card .subgrid-by-card-item.f-state-edit{background:linear-gradient(270deg,rgba(235,244,255,.6) 0,#EBF4FF 100%)}.f-listview-fill{flex-grow:1;flex-shrink:1;flex-basis:0;overflow:hidden}.f-listview-fill .f-list-view{height:100%}.f-listview-fill .f-list-view .f-list-view-footer,.f-listview-fill .f-list-view .f-list-view-header{flex-shrink:0}.f-listview-fill .f-list-view .f-list-view-content{overflow-y:auto;flex-grow:1;flex-shrink:1;flex-basis:0}.f-list-view{display:flex;flex-direction:column;overflow:hidden}.f-list-view .f-list-view-content{flex:1;overflow:auto}.f-list-view .f-list-view-group{padding:0}.f-list-view .f-paging-wrapper{padding:14px 0}.f-list-view .f-list-view-group-item{display:flex;align-items:center;float:none;text-align:initial}.f-list-view .f-list-view-group-item.f-none-border{border-bottom:0}.f-list-view .f-list-view-group-item.f-listview-active,.f-list-view .f-list-view-group-item.f-listview-hover{cursor:pointer;color:#424347}.f-list-view .f-list-view-group-item.f-listview-active{border-color:#529dff}.f-list-view .f-list-view-group-item.f-un-select{color:#848c9a}.f-list-view .f-list-view-group-item .f-list-content{flex:1 1 auto;width:100%}.f-list-view .f-list-view-draggable-item{border:1px solid #e2e3e5;background-color:#fafbfd;border-radius:10px;margin:4px 2px}.f-list-view .f-list-view-draggable-item.f-listview-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.f-list-view .f-list-view-draggable-item.f-listview-hover .f-list-remove-icon{display:initial}.f-list-view .f-list-view-draggable-item.f-listview-active{border-color:#529dff}.f-list-view .f-list-view-draggable-item.moving{opacity:0}.f-list-view .f-list-view-draggable-item.draggable-item--text-truncate .f-list-content{overflow:hidden}.f-list-view .f-list-view-draggable-item.draggable-item--text-truncate .f-list-content div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-list-view .f-list-select{padding:0 0 0 14px}.f-list-view .f-list-select .listview-checkbox{margin:.25rem 0}.f-list-view .f-list-pin{color:#2986ff;padding:0 14px 0 0}.f-list-view .f-list-remove{width:30px;color:#f4625f;padding:0 14px 0 0}.f-list-view .f-list-remove-icon{display:none}.f-list-view .f-list-handle{padding:0 14px 0 0}.f-list-view .f-list-view-emptydata .f-empty-title{font-size:14px;line-height:22px;color:#999;padding:20px 0;text-align:center}.f-list-view.small-item .f-list-select{padding:initial}::highlight(search-result){background-color:#F7B500;color:#fff}.f-list-view-group-item .custom-control.listview-checkbox{margin-right:0;padding-right:4px}.f-listview-card-content-fill .f-list-content{height:100%;display:flex;flex-direction:column}.f-listview-card-content-fill .f-list-content>*{height:100%}.f-tmpl-card-listview--header-multicontent02 .f-list-view{margin:0}.f-tmpl-card-listview--header-multicontent02 .f-list-view-group{margin:0 -10px}.f-tmpl-card-listview--header-multicontent02 .f-list-view-content{overflow-x:hidden}.f-tmpl-card--header-multicontent02{position:relative;margin:0 10px 20px}.f-tmpl-card--header-multicontent02 .f-list-select{position:absolute;padding:0!important;top:10px;left:14px}.f-tmpl-card--header-multicontent02 .f-list-select .custom-checkbox{margin:0;padding:0}.f-tmpl-card--header-multicontent02 .f-list-select .custom-control-label::before{font-size:1rem}.f-tmpl-card--header-multicontent02 .header-multicontent02{background:#FEFEFF;border:1px solid #E9ECF3;border-radius:6px;width:310px;margin:0}.f-tmpl-card--header-multicontent02 .header-multicontent02 .text-label{color:#5A5E66}.f-tmpl-card--header-multicontent02 .header-multicontent02 .f-emphasize{font-size:16px;color:var(--f-semantic-warning-01)}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header{padding:0 0 0 38px;height:40px;display:flex;align-items:center;border-bottom:1px solid #E9ECF3}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header .f-title{margin:0;flex-shrink:1;flex-grow:1;flex-basis:0;font-size:16px;font-weight:600;color:#2D2F33;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header .f-state{margin:0 0 0 8px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--header .f-state .badge{border-radius:20px 0 0 20px;height:28px;line-height:28px;padding:0 13px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--content{padding:14px 0 0 14px;color:#2D2F33;font-size:13px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--content p{margin:0 0 10px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer{padding:8px 14px 18px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer p{margin:0}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .footer--auxiliary{width:32px;border-radius:16px;margin:0 8px 0 0}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .footer--auxiliary img{display:block;width:32px;height:32px}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .text--name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:#5A5E66}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn{padding:2px;margin:0 8px;cursor:pointer}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn.disabled{color:var(--f-text-07)}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn:hover{color:var(--f-theme-03)}.f-tmpl-card--header-multicontent02 .header-multicontent02 .header-multicontent02--footer .icon-btn .f-icon{font-size:14px}.f-tmpl-list01-container{border-top:1px solid rgba(0,0,0,.07);border-bottom:1px solid rgba(0,0,0,.07);margin-top:-1px}.f-tmpl-list01-container .f-list-select{padding-right:0!important}.f-tmpl-list01-container .gutter{margin:0 30px 0 0}.f-tmpl-list01-container .list01--header{font-size:13px;margin:0 0 3px}.f-tmpl-list01-container .list01--header .f-title{font-weight:600;margin:0 8px 0 0;vertical-align:top}.f-tmpl-list01-container .list01--header li{display:inline-block;margin:0 30px 3px 0}.f-tmpl-list01-container .list01--des span:last-child,.f-tmpl-list01-container .list01--header li:last-child{margin-right:0}.f-tmpl-list01-container .list01--header .badge{border-radius:10px;line-height:20px;padding:0 8px}.f-tmpl-list01-container .list01--des{font-size:12px;color:rgba(0,0,0,.5)}.modal-header,.modal-header .close,.modal-header .close:not(:disabled):not(.disabled):focus,.modal-header .close:not(:disabled):not(.disabled):hover,.ng-busy-default-sign,.ng-busy-default-text{color:var(--f-text-02)}.f-tmpl-list01-container .list01--des span{display:inline-block;margin-bottom:3px}.f-tmpl-list01-container .list01--content{padding:16px 12px 16px 8px}.f-tmpl-list01-container .list01--toolbar{width:150px;padding:0 14px;text-align:right}.f-list-view-footer .f-paging-wrapper{padding:0!important}.f-list-view-footer .f-paging-wrapper .pagination-container{height:2.5rem}.f-list-view-footer .f-paging-wrapper .pagination{padding:.875rem 0 0}.f-component-loading{z-index:1060;top:0;left:0;right:0;bottom:0;position:absolute}.farris-loading-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1061;opacity:0;background-color:transparent}.farris-loading{position:absolute;top:50%;left:50%}.ng-busy-default-wrapper{text-align:center}.ng-busy-default-sign{position:relative;display:flex;align-items:center;z-index:1063;padding:8px 16px 8px 8px;border:0 solid #E5E9EF;border-radius:8px;box-shadow:0 6px 16px -8px rgba(0,0,0,.06),0 0 30px 12px rgba(0,0,0,.04);background:#fff}.ng-busy-default-text{display:inline-block;margin-left:.375rem;max-width:25rem;text-align:left;padding:0 4px;font-size:15px}.ng-busy-default-spinner{position:relative;display:inline-block;width:1.5625rem;height:1.5625rem;vertical-align:middle}.ng-busy-default-spinner div{position:absolute;left:44.5%;top:37%;width:10%;height:26%;background:#666;border-radius:3.125rem;box-shadow:0 0 3px rgba(0,0,0,.2);opacity:0;animation:busy-spinner-anim 1s linear infinite}.f-loading-round{font-size:10px;margin:0;width:100%;height:100%;border-radius:50%;position:relative;animation:loadingRountAnimation 1s infinite linear;transform:translateZ(0)}.f-loading-round::before{width:50%;height:50%;background:var(--f-theme-03);border-radius:100% 0 0;position:absolute;top:0;left:0;content:""}.f-loading-round::after{background:#fff;width:90%;height:90%;border-radius:50%;content:"";margin:auto;position:absolute;top:0;left:0;bottom:0;right:0}.f-loading-dot,.f-loading-dot-wrapper{height:100%;width:100%;overflow:hidden}@keyframes loadingRountAnimation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.f-loading-dot-wrapper .dot1{background:var(--f-semantic-danger-01)}.f-loading-dot-wrapper .dot2{background:var(--f-semantic-warning-01)}.f-loading-dot-wrapper .dot3{background:var(--f-semantic-success-01)}.f-loading-dot{position:absolute;margin:auto;top:0;bottom:0;left:0;right:0;animation:fLoadingDotRotate 1.8s linear infinite}.f-loading-dot-wrapper{position:relative}.f-loading-dot-wrapper .dot{position:absolute;margin:auto;width:25%;height:25%;border-radius:100%;transition:all 1s ease}.f-loading-dot-wrapper .dot1{top:0;bottom:0;left:0;animation:dotsY 1.8s linear infinite}.f-loading-dot-wrapper .dot2{left:0;right:0;top:0;animation:dotsX 1.8s linear infinite}.f-loading-dot-wrapper .dot3{top:0;bottom:0;right:0;animation:dotsY 1.8s linear infinite}.f-loading-dot-wrapper .dot4{background:var(--f-semantic-info-01);left:0;right:0;bottom:0;animation:dotsX 1.8s linear infinite}@keyframes fLoadingDotRotate{0%{transform:rotate(0)}10%{width:100%;height:100%}66%{width:25%;height:25%}100%{transform:rotate(360deg);width:100%;height:100%}}@keyframes dotsY{66%{opacity:.3;width:25%}77%{opacity:1;width:0}}@keyframes dotsX{66%{opacity:.3;height:25%}77%{opacity:1;height:0}}.modal-tips{padding:.5625rem .625rem .5625rem 1.25rem}.modal-tips .modal-tips-content{margin-top:0;margin-left:2.25rem;margin-right:1.75rem}.modal-tips .modal-tips-title{color:var(--f-text-04);font-size:.875rem;line-height:1.25rem;font-weight:400;margin:0;word-break:break-all}.modal-tips .toast-msg{margin:0;font-size:1rem;line-height:1.375rem;word-break:break-all}.modal-tips .only-toast-msg{color:var(--f-text-04);font-size:1rem;line-height:1.375rem}.modal-tips .toast-msg-title{margin:1px 0 0;word-break:break-all;font-size:1rem;line-height:1.375rem;color:var(--f-text-01)}.modal-tips .toast-msg-detail{word-break:break-all;color:var(--f-text-06);font-size:.875rem;margin:.625rem 0 0}.modal-tips .modal-tips-iconwrap .f-icon{font-size:1.625rem;margin-right:.75rem}.modal-footer .btn,.modal-footer .k-button{font-size:.8125rem;padding:.375rem 1.3125rem}.message-container{height:8.75rem;display:flex;flex-direction:column}.message-container .btn{min-width:3.75rem;margin:auto .3125rem}.farris-messager{display:flex}.farris-messager .icon{background-position:center .1875rem;background-size:4.375rem;background-repeat:no-repeat;width:4.375rem;height:4.375rem}.farris-messager .msg{flex:1 1 auto}.modal-message .modal-tips,.modal-message .modal-tips.messager-type-error{padding:1.875rem 1.5rem 1.75rem 1.875rem}.modal-message .modal-tips .modal-tips-content{padding:0}.modal-message .modal-tips .modal-tips-iconwrap{margin:0}.modal-message .modal-tips .modal-tips-iconwrap .f-icon{font-size:1.625rem}.modal-message .modal-footer{background:#fff!important;box-shadow:none;border:none;padding:0 1.5rem 1.25rem 1.875rem}.modal-message .modal-cotnent--has-header .modal-tips{padding:1.875rem 1.5rem 1.75rem 1.875rem}.modal.farris-modal .modal-message.model-dialog-maximize{width:60%!important;max-width:50rem!important;height:auto!important;max-height:60%!important;top:0!important;left:0!important;margin:0!important}.modal.farris-modal .modal-message .modal-body{padding:0}.modal-open{overflow:hidden}.modal-open .modal{overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:translate(0,0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - .5rem * 2)}.modal-dialog-centered::before{display:block;height:calc(100vh - .5rem * 2);content:""}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:0 solid #E5E9EF;border-radius:16px;box-shadow:0 2px 12px 0 rgba(0,0,0,.06);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.15}.modal-title{margin-bottom:0;line-height:1.375rem}.modal-body{position:relative;flex-grow:1;flex-shrink:1;flex-basis:auto;padding:.625rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:3.125rem;height:3.125rem;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:31.25rem;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - 1.75rem * 2)}.modal-dialog-centered::before{height:calc(100vh - 1.75rem * 2)}.modal-content{box-shadow:0 2px 12px 0 rgba(0,0,0,.06)}.modal-sm{max-width:18.75rem}}@media (min-width:888px){.modal-lg{max-width:50rem}}.modal-header{display:flex;justify-content:space-between;flex-shrink:0;padding:.75rem .5rem .75rem 1.125rem;background:#fff;align-items:center;border-top-left-radius:16px;border-top-right-radius:16px;border-bottom:none}.modal-header .close{opacity:1;padding:.1875rem;margin:-.25rem 0;border:1px solid transparent;font-size:1rem;width:1.6607375rem;height:1.6607375rem}.modal-title{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-footer,.showtype-modal .fe-modal-footer-base{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;background:var(--f-neutral-00);padding:.875rem 1.5rem;box-shadow:none}.modal-footer>:not(:first-child),.showtype-modal .fe-modal-footer-base>:not(:first-child){margin-left:.3125rem}.modal-footer>:not(:last-child),.showtype-modal .fe-modal-footer-base>:not(:last-child){margin-right:.3125rem}.modal-open .modal{overflow-x:auto}.modal.farris-modal .actions{flex:1;margin:-.25rem 0}.modal.farris-modal .actions ul{list-style:none;margin:0;padding:0;display:flex;justify-content:flex-end}.modal.farris-modal .actions .f-btn-icon{cursor:pointer;color:var(--f-text-07);text-align:center}.modal.farris-modal .actions .f-btn-icon:hover{color:var(--f-theme-05)}.modal.farris-modal .actions .f-btn-icon:active{color:var(--f-theme-01)}.modal.farris-modal .actions .modal-tips-iconwrap .f-icon{font-size:2rem}.fe-cmp-page-modal .action-list .f-icon,.fe-cmp-page-modal .close-icon .f-icon{font-size:14px}.modal.farris-modal .actions .modal-tips-iconwrap .modal-tips-content{padding-top:.25rem}.modal.farris-modal .ng-draggable{cursor:move}.modal.farris-modal .modal-dialog{max-width:none;margin:0;top:50%;left:50%;position:absolute;pointer-events:all}.modal.farris-modal.fade .modal-dialog{transform:none;transition:none}.modal.farris-modal .modal-content{height:100%;overflow:hidden}.modal.farris-modal .modal-body{padding:0}.farris-messager{flex-direction:column;position:absolute;top:0;bottom:0;left:0;right:0}.farris-messager .modal-tips{margin-bottom:0;flex-shrink:1;flex-grow:1;flex-basis:auto;overflow-y:auto;display:flex;flex-direction:row}.farris-messager .modal-tips .modal-tips-iconwrap{margin:.5625rem 0;padding:0}.farris-messager .modal-tips .modal-tips-content{margin:0;padding:.5625rem .9375rem .5625rem 0}.farris-messager .fixdiv{overflow:auto}.f-modal-fitContent{display:flex!important;align-items:center;justify-content:center}.f-modal-fitContent-scroll{align-items:flex-start}.f-modal-fitContent .modal-dialog{position:relative!important;top:0!important;left:0!important;margin:1.875rem 0!important;min-height:7.5rem}.f-modal-fitContent .farris-messager{position:relative!important}.overlay-container{position:fixed;z-index:9999;pointer-events:none;top:0;left:0;height:100%;width:100%}.fe-cmp-page-modal .action-wrapper{position:absolute;right:-12px;top:-12px;z-index:400}.fe-cmp-page-modal .action-wrapper .close-icon{background:rgba(0,0,0,.4);width:22px;height:22px;border-radius:12px;color:#fff;text-align:center;line-height:22px;display:block;cursor:pointer}.fe-cmp-page-modal .action-wrapper .close-icon:hover{background:rgba(0,0,0,.6)}.fe-cmp-page-modal .action-list{position:absolute;right:-32px;top:20px;color:rgba(255,255,255,.85)}.fe-cmp-page-modal .action-list .action-list--item{display:block;width:32px;height:32px;text-align:center}.fe-cmp-page-modal .action-list .action-list--icon{display:block;cursor:pointer;margin:0 auto;line-height:32px;border-radius:0 3px 3px 0}.fe-cmp-page-modal .action-list .action-list--icon:hover{color:#fff}.fe-cmp-page-modal .action-list .max-icon{background:linear-gradient(-63deg,#517BFF 0,#74A1FF 95%)}.fe-cmp-page-modal .action-list .close-icon{background:linear-gradient(-51deg,#FE6568 0,#FA6568 0,#F67574 100%)}.fe-cmp-page-modal .modal-body{border-radius:16px}.fe-cmp-page-modal.modal .modal-content{overflow:visible}.farris-modal{background-color:rgba(0,0,0,.45)}.farris-nav{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #e9e9e9;overflow:hidden;border-color:var(--f-neutral-06)!important}.farris-nav-item{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.farris-nav-item-link{padding:.75rem 1rem;cursor:pointer;border-bottom:2px solid transparent}.farris-nav-item-link-text{position:relative;font-size:1rem;font-weight:400}.farris-nav-item-tag{position:absolute;right:-.75rem;top:calc(10px - 100%);padding:0 .375rem;color:#fff;font-size:.75rem;line-height:1.125rem;border-radius:1.125rem;background-color:var(--f-semantic-danger-01)}.nav,.pagination{padding-left:0;list-style:none}.farris-nav.farris-nav-vertical{flex-direction:column;align-items:flex-start}.farris-nav.farris-nav-vertical .farris-nav-item{width:100%}.farris-nav-item-link-text{color:var(--f-text-03)}.farris-nav-item.active .farris-nav-item-link{border-color:var(--f-theme-03)}.farris-nav-item.active .farris-nav-item-link-text{color:var(--f-theme-03)}.farris-nav-item.disabled .farris-nav-item-link-text{color:var(--f-text-07)}.farris-nav-item:hover:not(.disabled):not(.active) .farris-nav-item-link-text{color:var(--f-theme-05)}.nav{display:flex;flex-wrap:wrap;margin-bottom:0}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:6px;border-top-right-radius:6px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:6px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--f-text-00);background:var(--f-theme-04)}.nav-fill .nav-item{flex-grow:1;flex-shrink:1;flex-basis:auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.farris-notify{position:fixed;z-index:999999}.farris-notify.toasty-position-top-left{top:.75rem;left:.75rem}.farris-notify.toasty-position-top-right{top:.75rem;right:.75rem}.farris-notify.toasty-position-bottom-right{bottom:.75rem;right:.75rem}.farris-notify.toasty-position-bottom-left{bottom:.75rem;left:.75rem}.farris-notify.toasty-position-top-center{top:.75rem;left:50%;transform:translate(-50%,0)}.farris-notify.toasty-position-bottom-center{bottom:.75rem;left:50%;transform:translate(-50%,0)}.farris-notify.toasty-position-center-center{top:50%;left:50%;transform:translate(-50%,0)}.f-message-strip .toast,.farris-notify .toast{margin:0 0 .625rem;padding:0;width:24rem;border:1px solid var(--f-neutral-08);background:#fff;display:table;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:8px;position:relative}.f-message-strip .toast .toast-close,.farris-notify .toast .toast-close{position:absolute;border:0;top:.625rem;right:.625rem;color:rgba(0,0,0,.25)}.f-message-strip .toast.toasty-type-danger,.f-message-strip .toast.toasty-type-info,.f-message-strip .toast.toasty-type-success,.f-message-strip .toast.toasty-type-warning,.farris-notify .toast.toasty-type-danger,.farris-notify .toast.toasty-type-info,.farris-notify .toast.toasty-type-success,.farris-notify .toast.toasty-type-warning{border-color:var(--f-neutral-08)}.f-message-strip .toast .toast-close .modal_close,.farris-notify .toast .toast-close .modal_close{font-size:1rem}.f-message-strip .toast .toast-close.f-btn-icon.f-bare,.farris-notify .toast .toast-close.f-btn-icon.f-bare{outline:unset}.f-message-strip .toast .modal-tips,.farris-notify .toast .modal-tips{padding:.625rem .75rem .625rem 1.25rem}.f-message-strip .toast .modal-tips-content,.farris-notify .toast .modal-tips-content{margin:0 1.75rem}.f-message-strip .toast .modal-tips-iconwrap .f-icon,.farris-notify .toast .modal-tips-iconwrap .f-icon{font-size:1rem;border-radius:100%;vertical-align:middle}.f-message-strip .toast.toasty-type-info .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-info .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-info-01),.3)}.f-message-strip .toast.toasty-type-success .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-success .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-success-01),.3)}.f-message-strip .toast.toasty-type-danger .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-danger .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-danger-01),.3)}.f-message-strip .toast.toasty-type-warning .modal-tips-iconwrap .f-icon,.farris-notify .toast.toasty-type-warning .modal-tips-iconwrap .f-icon{box-shadow:0 3px 8px 0 rgba(var(--f-semantic-warning-01),.3)}.farris-notify .toast.toasty-type-danger,.farris-notify .toast.toasty-type-info,.farris-notify .toast.toasty-type-success,.farris-notify .toast.toasty-type-warning{background:#fff}.f-message-strip .toast{width:100%;box-shadow:none}.f-message-strip .toast.toasty-type-info{background:var(--f-semantic-info-03)}.f-message-strip .toast.toasty-type-success{background:var(--f-semantic-success-03)}.f-message-strip .toast.toasty-type-danger{background:var(--f-semantic-danger-03)}.f-message-strip .toast.toasty-type-warning{background:var(--f-semantic-warning-03)}.input-group .btn-group-number,.page-link,.page-link:hover{background-color:var(--f-neutral-12)}.f-message-strip .toast .modal-tips{display:flex;padding:.5rem 1rem}.f-message-strip .toast .modal-tips-content{margin:0}.f-catch-attention-debounce{position:relative;z-index:1;outline:var(--f-theme-03) solid 1px;animation:debounceAttention .2s ease 0s infinite normal}@keyframes debounceAttention{0%{outline:solid var(--f-theme-03)}100%{outline:solid 18px}}.farris-notify .toast-title-beforeshow{opacity:0}@keyframes farrisMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}100%{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes farrisMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}100%{transform:translateY(-100%);transform-origin:0 0;opacity:0}}.f-cmp-footer-accordion.f-state-collapse .f-toolbar .toolbar--collapse-icon,.f-cmp-number-spinner .btn-number-flag-up .number-arrow-chevron,.pagination .pg-pagelist.show .pg-pagelist-info .f-icon{transform:rotate(180deg)}.toast.fadeIn{animation:farrisMoveUpIn .2s linear}.toast.fadeOut{animation:farrisMoveUpOut .2s linear}.f-cmp-number-spinner .sub-btn-group{border-right:1px solid var(--f-neutral-04)}.f-cmp-number-spinner .number-arrow-chevron{font-size:12px;min-width:12px}.f-cmp-number-spinner .input-group .btn-group-number,.input-group .btn-group-number{background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron{color:var(--f-text-07);border-left:1px solid var(--f-neutral-04)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron:nth-child(2),.input-group .btn-group-number.btn-number-flag .number-arrow-chevron:nth-child(2){border-top:1px solid var(--f-neutral-04)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron:active,.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron:hover,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron:active,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron:hover{color:var(--f-theme-05);background:var(--f-neutral-12)}.f-cmp-number-spinner .input-group .btn-group-number.btn-number-flag .number-arrow-chevron.not-allowed,.input-group .btn-group-number.btn-number-flag .number-arrow-chevron.not-allowed{background:var(--f-neutral-12)}.input-group .btn-group-number{height:1.5rem;flex-direction:column;border-left:1px solid var(--f-neutral-04);width:1.5rem;overflow:hidden;margin:0;flex-shrink:0}.input-group .btn-group-number .btn-number-flag{height:50%;display:flex;box-shadow:none;padding:0 5px;margin-left:1px;overflow:hidden;transition:all .1s linear}.input-group .btn-group-number .btn-number-flag .number-arrow-chevron{flex:1;line-height:1}.input-group .btn-group-number .btn-number-flag:hover{height:60%!important}.input-group .btn-group-number .btn-number-flag:nth-child(2){border-top:1px solid var(--f-neutral-04);border-top-right-radius:0}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0}.input-group.number-range{position:relative}.input-group.number-range .input-container{display:flex;padding:0}.input-group.number-range .input-container .sub-input-group{flex:1;position:relative;display:flex;transition:all .3s ease-out}.input-group.number-range .input-container .sub-input-group .sub-input{width:100%;border:none;outline:0;background-color:rgba(0,0,0,0);min-width:2px;padding:.125rem 4px .125rem .5rem}.input-group.number-range .input-container .sub-input-group .btn-group-number .btn-number-flag,.input-group.number-range .input-container .sub-input-group:first-child .sub-btn-group{border-radius:0}.input-group.number-range .input-container .spliter{width:15px;text-align:center}.number-range .input-container .sub-input-group .sub-input{background-color:transparent}.number-range .input-container .sub-input-group .sub-input::-moz-placeholder{color:var(--f-text-09)}.number-range .input-container .sub-input-group .sub-input::placeholder{color:var(--f-text-09)}.number-range .input-container .sub-input-group .sub-input:disabled::-moz-placeholder,.number-range .input-container .sub-input-group .sub-input[readonly]::-moz-placeholder{color:var(--f-text-09)}.number-range .input-container .sub-input-group .sub-input:disabled::placeholder,.number-range .input-container .sub-input-group .sub-input[readonly]::placeholder{color:var(--f-text-09)}.number-range .sub-input-group:last-of-type .sub-btn-group{border-right:none}.f-order .f-list-view-emptydata .f-empty-title{padding:10px 0;margin-bottom:0}.f-order .f-order-item{border:none;background-color:initial}.f-order .f-order-item.f-listview-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.f-order .f-order-item.f-listview-hover .f-list-remove-icon{display:initial}.f-order .f-order-item.f-listview-active{border-color:none}.f-order .f-order-item.moving{opacity:0}.f-order .f-order-add-button{display:flex!important;align-items:center!important}.f-order .f-order-add-icon{width:1.2rem;height:1.2rem;background-color:#f0f8ff;border-radius:1.2rem;display:inline-block;margin-right:4px}.f-order .f-order-add-icon .f-icon{line-height:1.2!important}.f-order .f-order-header{display:flex;margin:4px 60px 0 0}.f-order .f-order-header .f-order-header-order-field,.f-order .f-order-header .f-order-header-order-type{flex:1}.f-order .f-order-header .f-order-header-order-field{margin:0 4px 0 10px}.f-order .f-order-header .f-order-header-order-type{margin:0 10px 0 4px}.f-order-item-content{display:flex;margin:4px 0}.f-order-item-content .f-order-item-content-order-field,.f-order-item-content .f-order-item-content-order-type{flex:1}.f-order-item-content .f-order-item-content-order-field{margin:0 4px 0 10px}.f-order-item-content .f-order-item-content-order-type{margin:0 10px 0 4px}.f-cmp-footer{display:flex;flex-direction:column;padding:.875rem;margin:0;background:var(--f-neutral-19);border-radius:4px;box-shadow:0 4px 10px 0 rgba(31,35,41,.1)}.f-cmp-footer .f-cmp-footer-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;margin:0 0 .5rem;border-bottom:1px dashed rgba(0,0,0,.1);padding:0 0 .75rem}.f-cmp-footer .f-cmp-footer-header .f-content{display:inline-flex;align-items:center;white-space:nowrap;flex-shrink:1;flex-grow:1;flex-basis:0}.f-cmp-footer .f-cmp-footer-header .f-toolbar{min-width:10rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end;color:var(--f-text-04);margin-left:auto}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse{cursor:pointer}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse-icon{font-family:FarrisIcons;margin:0 .375rem;font-size:.875rem;transition:transform .1s linear}.f-cmp-footer .f-cmp-footer-header .f-toolbar .toolbar--collapse-icon:hover{color:var(--f-theme-01)}.f-cmp-footer-accordion.f-state-collapse .f-cmp-footer-header{border-bottom:none;margin-bottom:0;padding-bottom:0}.f-cmp-footer-accordion.f-state-collapse .f-cmp-footer-content{display:none}.f-tmpl-footer-same-gutter{margin:0 10rem 0 0}.f-page-header-el-mt,.f-page-header-el-my{margin-top:.8125rem}.f-page-header-el-mb,.f-page-header-el-my{margin-bottom:.8125rem}.f-cmp-footer-hasgap{position:relative}.f-cmp-footer-nogap::before{display:none!important}#page-header,.f-page-header,.f-pt-header{z-index:unset}.f-page-card #page-header,.f-page-card .f-page-header,.f-page-card .f-pt-header{z-index:105!important}.f-page-header{flex-shrink:0;background:var(--f-neutral-00);box-shadow:none}.f-page-header-el-mx{margin-left:.875rem;margin-right:.875rem}.f-page-header-base{padding:.75rem .875rem;min-height:2.875rem;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between}.f-page-header-base .f-title{display:inline-flex;align-items:center}.f-page-header-base .f-title .f-title-text{font-size:1.0625rem;line-height:1.625rem;color:var(--f-text-01);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 .875rem 0 0}.f-page-header-base .f-title .f-title-icon{display:inline-flex;width:1.625rem;height:1.625rem;line-height:1.625rem;text-align:center;background:var(--f-ornament-02);border-radius:.25rem;color:var(--f-text-00);justify-content:center;align-items:center;flex-shrink:0;overflow:hidden;margin:0 .625rem 0 0}.f-page-header-base .f-title .f-title-icon img{display:block;width:1.625rem;height:1.625rem}.f-page-header-base .f-title .f-title-icon .f-icon::before{vertical-align:bottom}.f-page-header-base .f-title .f-title-subtitle{padding:0 0 0 .875rem;font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid var(--f-neutral-08);margin:0 .875rem 0 0}.fv-grid-hierarchy-cell,.fv-tree{border-width:1px;border-style:solid}.f-page-header-base .f-title .f-title-pagination,.f-page-header-base .f-title .f-title-status{margin:0 .875rem 0 0}.f-page-header-base .f-title .f-title-pagination span{width:1.25rem;height:1.25rem;margin:0 .375rem 0 0;color:var(--f-text-02);line-height:1.125rem;border-width:1px;border-style:solid;border-color:var(--f-neutral-08);border-radius:6px;background:var(--f-neutral-12);cursor:pointer}.f-page-header-base .f-title .f-title-pagination span.f-state-disabled{cursor:default;color:var(--f-text-07);border-color:var(--f-neutral-05);background:var(--f-neutral-09)}.f-page-header-base .f-title .f-title-pagination span:not(.f-state-disabled):hover{color:var(--f-theme-05);border-color:var(--f-theme-05);background:var(--f-neutral-12)}.f-page-header-base .f-title .f-title-pagination span:last-child{margin:0}.f-page-header-base .f-content{display:inline-flex;align-items:center;white-space:nowrap;flex-shrink:1;flex-grow:1;flex-basis:0}.f-page-header-base .f-toolbar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end;color:var(--f-text-04);margin-left:auto}.f-text-orna-bill,.f-text-orna-dict,.f-text-orna-manage,.f-text-orna-param,.f-text-orna-query{color:var(--f-text-00)!important}.f-page-header-base .f-toolbar-viewchange{margin-left:.375rem}.page-item:first-child .page-link,.page-link{margin-left:0}.f-text-orna-manage{background:linear-gradient(135deg,#4190FF 0,#657CFF 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-03-start),.3)}.f-text-orna-dict{background:linear-gradient(135deg,#4EC87A 0,#52D389 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-05-start),.3)}.f-text-orna-bill{background:linear-gradient(135deg,#1FC8DC 0,#41D2BD 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-02-start),.3)}.f-text-orna-query{background:linear-gradient(135deg,#FC8249 0,#FE9539 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-01-start),.3)}.f-text-orna-param{background:linear-gradient(135deg,#8B82FF 0,#A082FF 100%)!important;box-shadow:0 3px 10px 0 rgba(var(--f-ornament-04-start),.3)}.f-color-orna-manage{color:var(--f-ornament-03-start)!important}.f-color-orna-dict{color:var(--f-ornament-05-start)!important}.f-color-orna-bill{color:var(--f-ornament-02-start)!important}.f-color-orna-query{color:var(--f-ornament-01-start)!important}.f-color-orna-param{color:var(--f-ornament-04-start)!important}.pagination{display:flex;border-radius:6px}.page-link{position:relative;display:block;padding:.1875rem;line-height:1rem;color:var(--f-text-02);border:1px solid var(--f-neutral-08)}.page-item:first-child .page-link,.pagination-lg .page-item:first-child .page-link,.pagination-sm .page-item:first-child .page-link{border-top-left-radius:6px;border-bottom-left-radius:6px}.page-item:last-child .page-link,.pagination-lg .page-item:last-child .page-link,.pagination-sm .page-item:last-child .page-link{border-top-right-radius:6px;border-bottom-right-radius:6px}.page-link:hover{z-index:2;text-decoration:none}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 4px 2px rgba(99,136,255,.12)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item.active .page-link{z-index:1;color:var(--f-text-00);background:var(--f-theme-06)!important;border-color:var(--f-theme-05)}.page-item.disabled .page-link{color:var(--f-text-07);pointer-events:none;cursor:auto;background:var(--f-neutral-09);border-color:var(--f-neutral-05);box-shadow:none}.page-link,.query-solution .solution-action .icon-group .f-icon-remove,.switch small,.switch.checked small{box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.06)}.pagination-lg .page-link{padding:.75rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-link{padding:.1875rem;font-size:.75rem;line-height:1.5}.ngx-pagination::after,.ngx-pagination::before{content:" ";display:table}.ngx-pagination::after{clear:both}.ngx-pagination li{-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:.0625rem;border-radius:0;display:inline-block}.ngx-pagination a,.ngx-pagination button{color:var(--f-text-02);display:block;cursor:pointer}.ngx-pagination .current{cursor:default}.ngx-pagination .f-icon{vertical-align:baseline}.ngx-pagination .disabled{color:var(--f-neutral-09);cursor:default}.ngx-pagination .disabled:hover{background:0 0}.ngx-pagination .pagination-next a::after,.ngx-pagination .pagination-next.disabled::after,.ngx-pagination .pagination-previous a::before,.ngx-pagination .pagination-previous.disabled::before{display:inline-block;margin-right:.5rem}.ngx-pagination .small-screen,.pagination-container .page-item.ellipsis:hover>.page-link>.page-link-label,.pagination-container .page-item.ellipsis>.page-link>.f-icon{display:none}.ngx-pagination .show-for-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.pagination{font-size:.75rem;padding:.625rem}.page-link{border-radius:6px;min-width:calc(1rem + .375rem + 2px);height:calc(1rem + .375rem + 2px);text-align:center;overflow:hidden}.page-link .f-icon{vertical-align:top}.page-link:focus{color:var(--f-theme-01);border-color:var(--f-theme-03)}.page-link.disabled{color:var(--f-text-07);background:var(--f-neutral-09);border-color:var(--f-neutral-05);box-shadow:none}.page-link:hover{color:var(--f-theme-05);background:var(--f-neutral-12);border-color:var(--f-theme-05)}.page-link:active{color:var(--f-theme-01);background:var(--f-neutral-12);border-color:var(--f-theme-01)}.page-item{margin:auto 3px}.pagination-lg .page-link{height:auto;width:auto}.page-item.current .page-link,.page-item.current:active .page-link,.page-item.current:hover .page-link{z-index:1;color:var(--f-text-00);background:var(--f-theme-06)!important;border-color:var(--f-theme-05);box-shadow:0 2px 6px 0 rgba(var(--f-neutral-15),.15)}.page-item .page-link .f-icon{vertical-align:baseline}.pagination .pg-pagelist{margin:0 12px;height:100%}.pagination .pg-pagelist .pg-pagelist-info{font-size:13px;color:var(--f-text-02);cursor:pointer;height:100%;display:inline-flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pagination .pg-pagelist .pg-pagelist-info:hover,.pagination .pg-pagelist.show .pg-pagelist-info{color:var(--f-theme-03)}.pagination .pg-pagelist .pg-pagelist-info .cur-pagesize{padding:0 4px;font-size:15px;font-weight:600}.pagination .pg-pagelist .pg-pagelist-info .f-icon{font-size:12px;margin:0 0 0 8px;transition:transform .2s linear}.pagination .pg-pagelist .dropdown-menu{min-width:120px;margin-bottom:.25rem}.pagination .pg-pagelist .dropdown-menu .dropdown-item{padding-left:14px}.pagination .pagination-message{color:var(--f-text-02);font-size:13px;display:inline-flex;align-items:center;height:100%}.pagination .pagination-message .badge{font-size:13px}.pagination .pagination-message .pg-message-total{font-size:15px;font-weight:600;padding:0 4px;line-height:20px}.badge,.popover-tips,.table thead th,.tooltip{font-weight:400}.farris-gotopagenumber{text-align:center;-moz-appearance:textfield;width:40px}.farris-gotopagenumber::-webkit-inner-spin-button,.farris-gotopagenumber::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pagination-container .page-item.ellipsis>.page-link{background:0 0;border:none;box-shadow:none;line-height:8px;font-size:16px}.pagination-container .page-item.ellipsis:hover>.page-link{line-height:20px}.badge-round-success,.pagination-container .page-item.ellipsis:hover>.page-link>.f-icon{display:inline-block!important}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;word-wrap:break-word;background-color:rgba(var(--f-neutral-00-rgb),.95);background-clip:padding-box;border:1px solid var(--f-neutral-00);border-radius:4px;box-shadow:0 2px 8px 0 rgba(0,32,74,.15)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 6px}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.popover-tips{font-style:normal;line-height:1.4286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.75rem}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:rgba(var(--f-neutral-00-rgb),.95)}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:6px 0}.bs-popover-auto[x-placement^=left],.bs-popover-left,.bs3.bs-popover-auto[x-placement^=left],.bs3.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:rgba(var(--f-neutral-00-rgb),.95)}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:rgba(var(--f-neutral-00-rgb),.95)}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid var(--f-neutral-10)}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:6px 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:rgba(var(--f-neutral-00-rgb),.95)}.popover-header{line-height:1.5rem;padding:.5rem .75rem;margin-bottom:0;font-size:.8125rem;color:var(--f-text-01);background-color:var(--f-neutral-10);border-bottom:1px solid var(--f-neutral-10);border-top-left-radius:calc(6px - 1px);border-top-right-radius:calc(6px - 1px)}.bs3.popover-top,.bs3.popover.top{margin-bottom:10px}.popover-header:empty{display:none}.popover-body{max-width:17.25rem;padding:.5rem .75rem;color:var(--f-text-02)}.bs3.popover.top>.arrow{margin-left:-2px}.popover.bottom>.arrow{margin-left:-4px}.bs3.bs-popover-auto[x-placement^=left] .arrow,.bs3.bs-popover-auto[x-placement^=right] .arrow,.bs3.bs-popover-left .arrow,.bs3.bs-popover-right .arrow{margin:.3rem 0}.bs-popover-bottom-left .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-bottom-left .arrow::before{top:0;border-bottom-color:rgba(255,255,255,.4)!important}.bs-popover-bottom-left .arrow::after,.bs-popover-bottom-left .arrow::before{border-width:0 .5rem .5rem}.bs-popover-bottom-left .arrow::after{top:1px;border-bottom-color:#fff!important}.popover.popover-fitcontent .popover-body{max-width:initial;padding:initial}.popover.popover-limitmax{display:flex;flex-direction:column}.popover.popover-limitmax .popover-body{overflow:hidden}.popover .arrow-left .arrow{left:calc(50% - 10px)}.f-progress-step .f-progress-step-list{display:flex;flex-direction:row;align-items:center}.f-progress-step .step{display:inline-block}.f-progress-step .step .f-progressstep-row{display:flex;position:relative;padding-right:.4375rem;padding-bottom:.9375rem}.f-progress-step .step .f-progressstep-row .f-progress-step-content{display:inline-block}.f-progress-step .step .f-progressstep-row .f-progress-step-content .step-icon{display:inline-block;width:1.875rem;height:1.875rem;margin-right:.5rem;margin-left:.5rem;line-height:1.875rem;border-radius:100%;font-size:.75rem;text-align:center;vertical-align:middle}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title{display:inline-block;vertical-align:middle}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-message,.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name{margin-bottom:0}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name{font-size:.875rem;line-height:1.25rem;padding-right:.625rem}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name.step-name-success{opacity:.85}.f-progress-step .step .f-progressstep-row .f-progress-step-line{flex:1 1 auto;position:relative;display:inline-flex;min-width:3.75rem;vertical-align:middle}.f-progress-step .step .f-progressstep-row .f-progress-step-line::after{content:"";left:0;height:.125rem;overflow:hidden;position:absolute;right:.625rem;top:50%;margin-top:-.0625rem}.f-progress-step .step .f-progressstep-row .f-progress-step-line .triangle{position:absolute;right:0;top:50%;display:inline-block;width:.4375rem;height:.4375rem;margin-top:-.21875rem;transform:rotate(45deg)}.f-progress-step .f-progress-step-list-block .step{display:block}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row{padding:0;flex-direction:column}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line{flex:1 1 auto;width:.625rem;min-width:.625rem;min-height:2.5rem;margin:.5rem 0 1.25rem 1.375rem}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line::after{content:"";border-top:0}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line .triangle{top:auto;left:-.3125rem;bottom:-.5rem;border-top:0}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line .f-progress-step-title .step-name{padding-right:.875rem}.f-progress-step .f-progress-step-horizontal-fill{display:flex;justify-content:space-between;flex-wrap:wrap;overflow-x:auto}.f-progress-step .f-progress-step-horizontal-fill .step{flex:1 1 auto}.f-progress-step .f-progress-step-vertical-fill{display:flex;flex-direction:column;align-content:space-between;overflow-y:auto}.f-progress-step .f-progress-step-vertical-fill .step{display:flex;flex:1 1 auto}.f-progress-step .f-progress-step-vertical-fill .step .f-progressstep-row{flex:1 1 auto;display:flex}.f-progress-step li.clickable{cursor:pointer}.f-progress-step li.click-disable{cursor:not-allowed}.f-progress-step .f-progress-step-empty{color:#000;opacity:.65;font-size:.875rem}.f-progress-step .f-progressstep-row-multi{display:flex;flex-direction:column;align-items:left}.f-progress-step .f-progressstep-row-multi .f-progressstep-multi-item-content{display:flex;flex-direction:row;align-items:center;cursor:pointer}.f-progress-step .f-progressstep-row-multi .f-step-multi-item{position:relative;padding-right:.4375rem;padding-bottom:.9375rem}.f-progress-step .f-progressstep-row-multi .f-step-multi-item:last-child{padding-bottom:0}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row.f-progressstep-row-multi{flex-direction:row}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row.f-progressstep-row-multi .f-step-multi-item{padding:0;flex-direction:column}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row.f-progressstep-row-multi .f-step-multi-item .f-progress-step-line{display:block}.f-progress-step .step .f-progressstep-row .f-progress-step-content .step-icon{color:#fff;background:var(--f-neutral-02)}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name{color:#8C8C8C}.f-progress-step .step .f-progressstep-row .f-progress-step-content .f-progress-step-title .step-name.step-name-success{color:var(--f-text-03)}.f-progress-step .step .f-progressstep-row .f-progress-step-line::after{border-top:2px dotted rgba(0,0,0,.2)}.f-progress-step .step .f-progressstep-row .f-progress-step-line .triangle{border-top:1px solid rgba(0,0,0,.2);border-right:1px solid rgba(0,0,0,.2)}.f-progress-step .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success .triangle,.f-progress-step .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success::after{border-color:var(--f-theme-03)}.f-progress-step .step .f-progressstep-row.step-finish .f-progress-step-content .step-icon{color:#fff;background:linear-gradient(135deg,#529DFF 0,#559FFF 100%)}.f-progress-step .step .f-progressstep-row.step-finish:hover .f-progress-step-content .step-icon{background:var(--f-theme-04)}.f-progress-step .step .f-progressstep-row.step-finish:active .f-progress-step-content .step-icon{background:var(--f-theme-02)}.f-progress-step .step .f-progressstep-row.step-active .f-progress-step-content .step-icon{color:#fff;background:var(--f-theme-04)}.f-progress-step .step .f-progressstep-row.step-active:hover .f-progress-step-content .step-icon{background:linear-gradient(135deg,#529DFF 0,#559FFF 100%)}.f-progress-step .step .f-progressstep-row.step-active:active .f-progress-step-content .step-icon{background:var(--f-theme-02)}.f-progress-step .step .f-progressstep-row.step-error .f-progress-step-content .step-icon{background:#F46160}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line{border-left:2px dotted rgba(0,0,0,.2)}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line .triangle{border-bottom:1px solid rgba(0,0,0,.2)}.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success,.f-progress-step .f-progress-step-list-block .step .f-progressstep-row .f-progress-step-line.f-progress-step-line-success .triangle{border-color:var(--f-theme-05)}.f-progress-step .f-progress-step-empty{color:var(--f-text-05)}.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-active .f-progress-step-title .step-name,.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-finish .f-progress-step-title .step-name{color:var(--f-text-03)!important}.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-active .step-icon{background:var(--f-theme-04)}.f-progress-step .f-progressstep-row-multi .f-step-multi-item.f-step-multi-item-finish .step-icon,.f-progress-step .f-progressstep-row-multi .f-step-multi-item:hover.f-step-multi-item-active .step-icon{background:linear-gradient(135deg,#529DFF 0,#559FFF 100%)}.f-progress-step .f-progressstep-row-multi .f-step-multi-item:hover.f-step-multi-item-finish .step-icon{background:var(--f-theme-04)}.f-progress{display:inline-block;font-size:.875rem;color:rgba(0,0,0,.65)}.f-progress.f-progress-line{position:relative;width:100%}.f-progress.f-progress-line .f-progress-text .f-progress-text-icon{font-size:1.25rem}.f-progress .f-progress-outer{display:inline-block;width:100%}.f-progress .f-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#efefef;border-radius:100px}.f-progress .f-progress-bg,.f-progress .f-progress-success-bg{position:relative;border-radius:100px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.f-progress .f-progress-success-bg{position:absolute;top:0;left:0}.f-progress .f-progress-text{display:inline-block;width:1.75rem;margin-left:.5rem;color:rgba(0,0,0,.65);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.f-progress-status-active .f-progress-bg::before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:.625rem;opacity:0;animation:f-progress-active 2.4s ease-in-out infinite;content:""}.f-progress-show-info .f-progress-outer{padding-right:48px;margin-right:-48px}.f-progress.f-progress-circle .f-progress-inner{position:relative;line-height:1;background-color:transparent}.f-progress.f-progress-circle .f-progress-text{position:absolute;top:50%;left:50%;width:100%;margin:0;padding:0;color:rgba(0,0,0,.65);line-height:1;white-space:normal;text-align:center;transform:translate(-50%,-50%)}.f-progress.f-progress-circle .f-progress-text .f-progress-text-icon{font-size:1.3em}@keyframes f-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}100%{width:100%;opacity:0}}.f-progress .f-progress-bg{background:var(--f-theme-04)}.f-progress .f-progress-success-bg,.f-progress-status-success .f-progress-bg{background:var(--f-semantic-success-01)}.f-progress-status-error .f-progress-bg{background:var(--f-semantic-danger-01)}.f-progress.f-progress-circle .f-progress-text .f-progress-text-icon.f-icon-checkmark{color:var(--f-semantic-success-01)}.f-progress.f-progress-circle .f-progress-text .f-progress-text-icon.f-icon-x{color:var(--f-semantic-danger-01)}.f-progress .f-progress-inner:not(.f-progress-circle-gradient) .f-progress-circle-path{stroke:var(--f-semantic-info-01)}.f-progress-status-success .f-progress-inner:not(.f-progress-circle-gradient) .f-progress-circle-path{stroke:var(--f-semantic-success-01)}.f-progress-status-error .f-progress-inner:not(.f-progress-circle-gradient) .f-progress-circle-path{stroke:var(--f-semantic-danger-01)}.farris-star-rating{cursor:pointer;display:flex;position:relative}.farris-star-rating .default-light-color{color:#FBDB10}.farris-star-rating .default-dark-color{color:#E8E8E8}.star-dark-area span,.star-light-area span{box-sizing:content-box;padding-right:4px}.farris-star-rating .f-star-sm{font-size:14px}.farris-star-rating .f-star-md{font-size:16px}.farris-star-rating .f-star-lg{font-size:18px}.farris-star-rating .f-star-exlarge{font-size:24px}.farris-star-rating .star-dark-area{overflow:hidden;display:flex;flex-wrap:nowrap}.farris-star-rating .f-utils-fill{padding-left:2px;font-size:14px}.farris-star-rating .font-small{line-height:14px}.farris-star-rating .font-middle{line-height:16px}.farris-star-rating .font-large{line-height:18px}.farris-star-rating .font-exlarge{line-height:24px}.farris-star-rating .star-light-area{position:absolute;left:0;top:0;z-index:2;width:0%;overflow:hidden;display:flex;flex-wrap:nowrap}.farris-star-rating .star-dark-area span,.farris-star-rating .star-light-area span{flex-shrink:0}.f-toolbar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end}.f-toolbar .f-btn-separator{display:inline-block;width:1px;background-color:#c2cbd1;height:1em;margin:0 .5rem}.f-response-toolbar{display:block}.f-response-toolbar-lg .btn{line-height:1.4286;padding:.25rem 1.125rem}.f-response-toolbar-sm .btn{line-height:1.4286;padding:.125rem .5rem}.query-solution .solution-header{height:auto!important;margin-bottom:10px!important;display:flex;align-items:center;justify-content:space-between}.query-solution .farris-panel{border:none}.query-solution .solution-header-title{padding:.25rem 6px .25rem 12px;border-radius:6px;display:flex;flex-direction:row;align-items:center;color:var(--f-theme-03);font-size:.8125rem;vertical-align:middle;background:var(--f-theme-13);cursor:pointer}.query-solution .solution-header-title .header-title--change{margin:0 4px}.query-solution .solution-header-title .solution-header-title-text{margin-right:6px;overflow:hidden;height:22px}.query-solution .solution-header-title .f-accordion-expand{color:var(--f-theme-03)}.query-solution .solution-header-title .f-icon{font-size:16px;margin:0;width:auto;height:auto}.query-solution .solution-header-title>.text-truncate{max-width:288px}.query-solution .solution-action{display:flex;align-items:center;flex-shrink:0}.query-solution .solution-action .dropdown .btn{border:0}.query-solution .solution-action .icon-group{display:flex!important;align-items:center}.query-solution .solution-action .icon-group .f-icon-remove{color:var(--f-text-02);background:var(--f-neutral-12);border:1px solid var(--f-neutral-08);border-radius:6px;width:calc(1.5rem + .125rem);height:calc(1.5rem + .125rem);text-align:center;line-height:20px;display:block}.query-solution .solution-action .icon-group .f-icon-remove:hover{border-color:var(--f-theme-05);color:var(--f-theme-05);background:var(--f-neutral-12)}.query-solution .solution-action .icon-group .f-icon-home-setup,.query-solution .solution-action .icon-group .f-icon-packup{font-size:.875rem}.query-solution .solution-action .icon-group .icon-group-packup{margin-right:0;margin-left:4px}.query-solution .solution-action span{vertical-align:inherit}.query-solution .solution-action .divide{color:var(--f-neutral-13);position:relative;margin:0 .3125rem}.query-solution .solution-action .divide::after{position:absolute;content:"";height:12px;width:1px;background-color:var(--f-neutral-13);left:0;top:50%;margin-top:-6px}.query-solution .solution-header-title-menu{margin-top:8px}.query-solution .solution-header-title-menu-inner{position:relative;width:18.9375rem}.query-solution .solution-header-title-menu-inner .menu-item--change{margin:0 4px 0 0}.query-solution .solution-header-title-menu-inner .solution-header-title-menu-arrow{position:absolute;content:"";display:block;left:1.5rem;top:-.5rem;width:8.49px;height:8.49px;background:0 0;border-style:solid;border-width:4.24px;box-shadow:-2px -2px 5px rgba(0,0,0,.08);transform:translateX(-50%) rotate(45deg);border-color:#fff transparent transparent #fff}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item{cursor:pointer;display:flex;flex-direction:row;align-items:center}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item.solution-header-dropdown-item-active{background:var(--f-neutral-10)}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item .solution-header-dropdown-item-title{flex-shrink:1;flex-grow:1;flex-basis:0;padding-right:.25rem;color:var(--f-text-02);font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item .solution-header-dropdown-item-tip{flex-shrink:0;height:1.125rem;min-width:2.5rem;padding:0 4px;line-height:1.125rem;font-size:.75rem;background:var(--f-semantic-success-01);color:#fff;border-radius:2px;text-align:center}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item .solution-header-dropdown-item-public{flex-shrink:0;height:1.125rem;min-width:2.5rem;padding:0 4px;line-height:1.125rem;font-size:.75rem;background:#2a87ff;color:#fff;border-radius:2px;text-align:center}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item-btns{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;height:2.25rem;padding:0 .875rem;line-height:2.25rem;border-top:1px solid rgba(0,0,0,.07)}.query-solution .solution-header-title-menu-inner .solution-header-dropdown-item-btns .dropdown-item-btn{margin-left:.5rem;color:var(--f-theme-03);cursor:pointer}.query-solution .summary-condition{flex-shrink:0;flex-grow:1;flex-basis:0;overflow:hidden;margin:0 12px 0 0;display:flex}.query-solution .summary-condition--item .summary-condition--label,.summary-list--tips .summary-condition--label{margin:0 2px 0 0}.query-solution .summary-list{overflow:hidden}.query-solution .summary-condition-wrapper{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background:var(--f-aid-02);border:1px solid var(--f-aid-01);border-radius:3px;font-size:13px;color:#2D2F33;line-height:24px;height:26px;box-shadow:0 1px 4px 0 rgba(0,28,65,.08)}.query-solution .summary-condition--item{padding:0 12px;vertical-align:top}.query-solution .summary-condition--item .summary-condition--text{margin:0 0 0 8px}.query-solution .summary-condition--spliter{width:1px;height:14px;background:#DDE1EB;display:inline-block;margin:5px 0 0}.query-solution .solution-header .dropdown-item{width:100%}.query-solution .solution-header .dropdown-menu{max-height:unset}.query-solution .solution-header-title-btns{border-top:1px solid rgba(0,0,0,.07);text-align:right;width:100%;color:#2A87FF;padding:8px 0}.solutionmanager-inner{padding:0 14px;flex:1;height:100%}.solutionmanager-inner .solutionmanager-grid-delete{font-size:.875rem;color:var(--f-theme-03)}.summary-list--tips .summary-condition--text{margin:0 0 0 8px}.summary-list--tips .summary-condition--gutter{margin:0 10px 0 4px}.summary-list--tips .tooltip{margin-top:-6px}.summary-list--tips .tooltip-inner{text-align:left;background:rgba(var(--f-neutral-00-rgb),.95);color:var(--f-text-02);font-size:13px;line-height:24px}.summary-list--tips .arrow{left:35px!important}.summary-list--tips .arrow::before{border-width:0 .3rem .3rem;border-bottom-color:rgba(var(--f-neutral-00-rgb),.4)}.farris-form.condition-div{margin-right:-5px;margin-left:-5px}.farris-form.condition-div .qlabel-gutter{display:none}.farris-form.condition-div>[class*=col-]{padding-left:5px!important;padding-right:5px!important}.condition-with-line.farris-form-controls-inline .qlabel-gutter{display:inline;margin-left:2px}.condition-with-line.farris-form-controls-inline .qradio-group .qlabel-gutter{margin-right:8px}.condition-with-line.farris-form-controls-inline .input-group{border:none}.condition-with-line.farris-form-controls-inline .farris-input-wrap{flex-basis:0}.condition-with-line.farris-form-controls-inline .common-group{border:1px solid #D8DCE6;border-radius:3px;padding-left:8px;padding-right:1px}.condition-with-line.farris-form-controls-inline .common-group .col-form-label{font-size:13px;color:#6A6F79;width:auto;margin-right:0;flex-grow:0;flex-shrink:1;flex-basis:auto;max-width:220px}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field:hover,.f-search-box .search-tag-item.search-field:hover,.querycondition-advanced .add-condition-btn{color:var(--f-theme-03)}.condition-with-line.farris-form-controls-inline .common-group .f-solution-radio-group{flex-shrink:1;flex-grow:1;flex-basis:0}.condition-with-line.farris-form-controls-inline .common-group .input-group,.condition-with-line.farris-form-controls-inline .common-group .input-group.f-state-focus{outline:0;box-shadow:none;border:none}.condition-with-line.farris-form-controls-inline .common-group:not(.q-state-readonly):hover{border-color:var(--f-theme-08);box-shadow:0 0 0,0 0 4px 2px rgba(99,136,255,.12)}.condition-with-line.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-text{text-align:left}.condition-with-fixed.farris-form-controls-inline .datepicker-range-group .farris-input-wrap,.condition-with-fixed.farris-form-controls-inline .number-range-group .farris-input-wrap{min-width:120px}.condition-with-line.f-form-label-xl .farris-group-wrap .col-form-label{max-width:153px}.query-solution .condition-div{max-height:204px;overflow-y:auto}.querycondition-advanced .add-condition-btn .f-icon{background-color:var(--f-aid-03)}.query-solution .farris-input-wrap.farris-checkradio-hor{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;width:100%}.query-solution .solution-header .solution-header-item-active{background:#F7F7F7}.f-search-box-panel{height:100%;z-index:9998;position:absolute;overflow:auto;background:var(--f-neutral-20);box-shadow:0 2px 20px 0 rgba(3,18,51,.12);border-radius:3px}.f-search-field-container .switch.switch-small{min-width:1.88rem;height:.85rem}.f-search-field-container .switch.switch-small small{top:0}.multi-date-display:empty:before{color:var(--f-text-09)}.f-cmp-inputgroup .f-transfer-date .search-tag-item,.f-search-box .search-tag-item{cursor:default;padding:0 20px 0 5px!important;background:var(--f-aid-04)!important;border:1px solid var(--f-aid-05);position:relative;margin-right:3px!important;margin-top:1px!important;margin-bottom:0!important;line-height:19px;height:22px;float:left;max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline!important;border-radius:6px}.f-cmp-inputgroup .f-transfer-date .search-tag-item .f-icon,.f-search-box .search-tag-item .f-icon{cursor:pointer;position:absolute;right:2px;font-size:12px;top:7px}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field,.f-search-box .search-tag-item.search-field{background:0 0;border:0;cursor:pointer;height:26px;line-height:24px}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field.selected,.f-search-box .search-tag-item.search-field.selected{background:rgba(207,237,255,.35);border-color:var(--f-aid-05)}.f-cmp-inputgroup .f-transfer-date .search-tag-item.search-field.has-filter,.f-search-box .search-tag-item.search-field.has-filter{background-color:#f2f8ff;border:1px solid #e4f0ff}.f-cmp-inputgroup .f-transfer-date .inputbox,.f-search-box .inputbox{flex:1;position:relative;min-width:50px;height:24px;margin:0;padding:0;float:left;overflow:hidden}.f-cmp-inputgroup .f-transfer-date.f-search-fields .multi--item.search-tag-item,.f-cmp-inputgroup .f-transfer-date.f-search-shadow-fields .multi--item.search-tag-item,.f-search-box.f-search-fields .multi--item.search-tag-item,.f-search-box.f-search-shadow-fields .multi--item.search-tag-item{margin-bottom:4px!important}.f-cmp-inputgroup .f-transfer-date .search-input,.f-search-box .search-input{position:absolute;top:0;align-items:center;display:flex;left:-2px;width:100%}.f-cmp-inputgroup .f-transfer-date.f-search-shadow-fields.active,.f-search-box.f-search-shadow-fields.active{border-color:var(--f-theme-05)}.f-cmp-inputgroup .f-transfer-date.f-search-fields .more,.f-search-box.f-search-fields .more{padding-right:20px}.f-cmp-inputgroup .f-transfer-date.f-search-fields .more::after,.f-search-box.f-search-fields .more::after{content:"...";position:absolute;right:10px;top:0;cursor:pointer}.f-cmp-inputgroup .f-transfer-date.f-state-disabled .search-tag-item{background:var(--f-neutral-09);border-color:var(--f-neutral-09);color:var(--f-text-02)}.f-cmp-inputgroup .f-transfer-date.f-state-disabled .multi--more-text{color:var(--f-text-09)}.search-tip-info{height:32px;line-height:32px;border-bottom:1px solid var(--f-neutral-04);font-size:12px;color:#848C9A;margin-bottom:5px;padding:0 7px;align-items:center;justify-content:space-between}.search-tip-info .f-icon-close,.search-tip-info .f-icon-group-delete::before{cursor:pointer;top:2px;position:relative;right:-5px;font-size:12px}.search-tip-info .f-icon-close:hover,.search-tip-info .f-icon-group-delete:hover::before{color:red}.lookup-filter-bar .clear-search-fields{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--f-neutral-04);margin-left:3px;border-radius:3px;cursor:pointer}.lookup-filter-bar .clear-search-fields:hover{color:var(--f-aid-10);border-color:var(--f-theme-05)}.search-box-container{background-color:#fff;background-clip:padding-box}.search-box-container-title{color:#878d99;text-align:left;margin-bottom:10px}.f-section{display:flex;flex-direction:column;position:relative;padding:.625rem .875rem .75rem;margin:0;border-radius:8px;background:#fff}.f-section.f-section-fill{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden}.f-section.f-section-fill>.f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column;min-height:0}.f-section.f-section-content-fill{display:flex;flex-direction:column}.f-section.f-section-content-fill .f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;padding:0 .625rem 0 0;margin:0 0 .5rem}.f-section-header .f-title::before .f-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-section-header .f-toolbar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:flex-end;color:var(--f-text-04);margin-left:auto;padding-right:0}.f-section-header .f-btn-collapse-expand span,.f-section.f-state-collapse>.f-section-extend{display:none}.f-section-header .f-btn-collapse-expand{color:var(--f-theme-03)}.f-section-header .f-btn-collapse-expand::after{width:1rem;height:1rem;font-size:.875rem;line-height:1rem;margin-left:0;color:var(--f-text-07);background:var(--f-neutral-07);border-radius:10px}.f-section-header .f-btn-collapse-expand:hover::after{background:var(--f-neutral-05)}.f-section-header .f-max-accordion .f-icon-maximize,.f-section-header .f-max-accordion .f-icon-minimize{color:var(--f-text-03);font-size:14px;cursor:pointer;margin-left:.5rem;vertical-align:middle}.f-section-header .f-max-accordion .f-icon-maximize:hover,.f-section-header .f-max-accordion .f-icon-minimize:hover{color:var(--f-theme-05)}.f-section-header .f-max-accordion .f-icon-maximize:active,.f-section-header .f-max-accordion .f-icon-minimize:active{color:var(--f-theme-01)}.f-section-extend{margin:0 0 .75rem}.f-page-main .f-section-like-query.f-section,.f-page-main .f-section-query.f-section,.switch{margin:0}.f-section-accordion.f-state-collapse>.f-section-header{margin-bottom:0}.f-section-accordion.f-state-collapse>.f-section-content{height:0;overflow:hidden;flex:0 1 0!important}.f-section-maximize{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1031;background:var(--f-neutral-00)}.f-section-maximize>.f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.f-section-maximize>.f-section-content>.f-struct-is-subgrid{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-maximize>.f-section-content>.f-struct-is-subgrid .f-grid-is-sub{flex-shrink:1;flex-grow:1;flex-basis:0;height:auto}.f-section-maximize .f-tabs-content-fill .f-struct-is-subgrid{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-maximize .f-tabs-content-fill .f-grid-is-sub{flex-shrink:1;flex-grow:1;flex-basis:0;height:auto}.f-section-form.f-section-custom-accordion.f-state-collapse .f-form-layout>:not(.f-state-visible),.f-section-form.f-section-custom-accordion.f-state-collapse .f-section-formgroup-inputs>:not(.f-state-visible),.f-section-form.f-section-custom-accordion.f-state-collapse .f-section-formgroup.f-state-visible>:not(.f-state-visible){display:none}.f-section-form.f-section-custom-accordion.f-state-collapse .f-section-formgroup-inputs.f-state-visible-all>*{display:initial}.f-section-nogap::before,.f-section-nogutter::before{display:none!important}.f-section-tabs{padding:0 .875rem 1rem}.f-section-tabs .f-section-header{padding-right:0}.f-section-treegrid.f-section-in-nav{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section-treegrid.f-section-in-nav>.f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-treegrid.f-section-in-nav>.f-section-content .f-componet-treetable{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section--header-manage .f-section-header .f-title::before{background:linear-gradient(135deg,#4190FF 0,#657CFF 100%)!important}.f-section--header-dict .f-section-header .f-title::before{background:linear-gradient(135deg,#4EC87A 0,#52D389 100%)!important}.f-section--header-bill .f-section-header .f-title::before{background:linear-gradient(135deg,#1FC8DC 0,#41D2BD 100%)!important}.f-section--header-query .f-section-header .f-title::before{background:linear-gradient(135deg,#FC8249 0,#FE9539 100%)!important}.f-section--header-param .f-section-header .f-title::before{background:linear-gradient(135deg,#8B82FF 0,#A082FF 100%)!important}.f-title-noline{padding-left:0}.f-title-noline::before{display:none}.f-section .f-section-content--toolbar{padding:0 0 0 .75rem;margin-top:.40625rem;margin-bottom:.40625rem}.f-splitter{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:row;flex-wrap:nowrap;overflow:hidden;position:relative}.f-splitter-pane{position:relative;padding:0}.f-splitter-pane.f-splitter-pane-main{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto;display:flex}.f-splitter-pane>.f-splitter-resize-bar{position:absolute;font-size:.1px;display:block;touch-action:none}.f-splitter-pane>.f-splitter-resize-bar:hover{background:rgba(42,135,255,.07)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e{cursor:e-resize;width:.4375rem;right:-.3125rem;height:100%;top:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w{cursor:w-resize;width:.4375rem;left:-.3125rem;height:100%;top:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s{cursor:s-resize;height:.4375rem;bottom:-.3125rem;width:100%;left:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n{cursor:n-resize;height:.4375rem;top:-.3125rem;width:100%;left:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w::before{content:"";position:absolute;background:#E9ECF3}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w::after{content:"";position:absolute;top:50%;left:50%;width:6px;height:60px;margin:-30px 0 0 -3px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjdweCIgaGVpZ2h0PSI2MHB4IiB2aWV3Qm94PSIwIDAgNyA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+DQogICAgPHRpdGxlPue8lue7hCAyMjwvdGl0bGU+DQogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+DQogICAgPGcgaWQ9IuaWsOeJiCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+DQogICAgICAgIDxnIGlkPSI2LuW3puagkeWPs+S4u+S7jiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1NS4wMDAwMDAsIC00MTguMDAwMDAwKSI+DQogICAgICAgICAgICA8ZyBpZD0i57yW57uELTIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NTUuNTAwMDAwLCA0MTguMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsMCBDNSwxLjc3NTIwMjYgNiwzLjE3ODcxMTM4IDYsNC4yMTA1MjYzMiBDNiwxMi4xMDQzMjc2IDYsNTMuNzk4NDE1MyA2LDU1Ljc4OTQ3MzcgQzYsNTYuNzEzMzQ4NiA1LDU4LjExNjg1NzQgMyw2MCBDMSw1OC4xMTAyOTA0IDAsNTYuNzA2NzgxNiAwLDU1Ljc4OTQ3MzcgQzAsMzMuMDcyNzA3MSAwLDE1Ljg5NDM0MTIgMCw0LjIxMDUyNjMyIEMwLDMuMzUxODIxNjQgMSwxLjk0ODMxMjg3IDMsMCBaIiBpZD0i55+p5b2iIiBmaWxsPSIjRTlFQ0YzIj48L3BhdGg+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsNDUgQzMuNTUyMjg0NzUsNDUgNCw0NS40NDc3MTUzIDQsNDYgQzQsNDYuNTUyMjg0NyAzLjU1MjI4NDc1LDQ3IDMsNDcgQzIuNDQ3NzE1MjUsNDcgMiw0Ni41NTIyODQ3IDIsNDYgQzIsNDUuNDQ3NzE1MyAyLjQ0NzcxNTI1LDQ1IDMsNDUgWiBNMyw0MSBDMy41NTIyODQ3NSw0MSA0LDQxLjQ0NzcxNTMgNCw0MiBDNCw0Mi41NTIyODQ3IDMuNTUyMjg0NzUsNDMgMyw0MyBDMi40NDc3MTUyNSw0MyAyLDQyLjU1MjI4NDcgMiw0MiBDMiw0MS40NDc3MTUzIDIuNDQ3NzE1MjUsNDEgMyw0MSBaIE0zLDM3IEMzLjU1MjI4NDc1LDM3IDQsMzcuNDQ3NzE1MyA0LDM4IEM0LDM4LjU1MjI4NDcgMy41NTIyODQ3NSwzOSAzLDM5IEMyLjQ0NzcxNTI1LDM5IDIsMzguNTUyMjg0NyAyLDM4IEMyLDM3LjQ0NzcxNTMgMi40NDc3MTUyNSwzNyAzLDM3IFogTTMsMzMgQzMuNTUyMjg0NzUsMzMgNCwzMy40NDc3MTUzIDQsMzQgQzQsMzQuNTUyMjg0NyAzLjU1MjI4NDc1LDM1IDMsMzUgQzIuNDQ3NzE1MjUsMzUgMiwzNC41NTIyODQ3IDIsMzQgQzIsMzMuNDQ3NzE1MyAyLjQ0NzcxNTI1LDMzIDMsMzMgWiBNMywyOSBDMy41NTIyODQ3NSwyOSA0LDI5LjQ0NzcxNTMgNCwzMCBDNCwzMC41NTIyODQ3IDMuNTUyMjg0NzUsMzEgMywzMSBDMi40NDc3MTUyNSwzMSAyLDMwLjU1MjI4NDcgMiwzMCBDMiwyOS40NDc3MTUzIDIuNDQ3NzE1MjUsMjkgMywyOSBaIE0zLDI1IEMzLjU1MjI4NDc1LDI1IDQsMjUuNDQ3NzE1MyA0LDI2IEM0LDI2LjU1MjI4NDcgMy41NTIyODQ3NSwyNyAzLDI3IEMyLjQ0NzcxNTI1LDI3IDIsMjYuNTUyMjg0NyAyLDI2IEMyLDI1LjQ0NzcxNTMgMi40NDc3MTUyNSwyNSAzLDI1IFogTTMsMjEgQzMuNTUyMjg0NzUsMjEgNCwyMS40NDc3MTUzIDQsMjIgQzQsMjIuNTUyMjg0NyAzLjU1MjI4NDc1LDIzIDMsMjMgQzIuNDQ3NzE1MjUsMjMgMiwyMi41NTIyODQ3IDIsMjIgQzIsMjEuNDQ3NzE1MyAyLjQ0NzcxNTI1LDIxIDMsMjEgWiBNMywxNyBDMy41NTIyODQ3NSwxNyA0LDE3LjQ0NzcxNTMgNCwxOCBDNCwxOC41NTIyODQ3IDMuNTUyMjg0NzUsMTkgMywxOSBDMi40NDc3MTUyNSwxOSAyLDE4LjU1MjI4NDcgMiwxOCBDMiwxNy40NDc3MTUzIDIuNDQ3NzE1MjUsMTcgMywxNyBaIE0zLDEzIEMzLjU1MjI4NDc1LDEzIDQsMTMuNDQ3NzE1MyA0LDE0IEM0LDE0LjU1MjI4NDcgMy41NTIyODQ3NSwxNSAzLDE1IEMyLjQ0NzcxNTI1LDE1IDIsMTQuNTUyMjg0NyAyLDE0IEMyLDEzLjQ0NzcxNTMgMi40NDc3MTUyNSwxMyAzLDEzIFoiIGlkPSLlvaLnirbnu5PlkIgiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgIDwvZz4NCjwvc3ZnPg==);background-repeat:no-repeat;background-size:cover;background-position:center center}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e:hover,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n:hover,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s:hover,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w:hover{background:0 0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e:hover::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n:hover::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s:hover::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w:hover::before{background-image:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%);box-shadow:0 2px 5px 0 rgba(42,135,255,.2)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e:hover::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n:hover::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s:hover::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w:hover::after{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjdweCIgaGVpZ2h0PSI2MHB4IiB2aWV3Qm94PSIwIDAgNyA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+DQogICAgPHRpdGxlPue8lue7hCAyMjwvdGl0bGU+DQogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+DQogICAgPGRlZnM+DQogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iNTAuMzcxODk3MSUiIHkxPSIwJSIgeDI9IjQ5LjY4MjQwNDUlIiB5Mj0iMTAwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzNGNjVGRiIgb2Zmc2V0PSIwJSI+PC9zdG9wPg0KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzREOUFGRiIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+DQogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPC9kZWZzPg0KICAgIDxnIGlkPSLmlrDniYgiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgICAgICA8ZyBpZD0iNi7lt6bmoJHlj7PkuLvku47lpIfku70tMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1NS4wMDAwMDAsIC00MTguMDAwMDAwKSI+DQogICAgICAgICAgICA8ZyBpZD0i57yW57uELTIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NTUuNTAwMDAwLCA0MTguMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsMCBDNSwxLjc3NTIwMjYgNiwzLjE3ODcxMTM4IDYsNC4yMTA1MjYzMiBDNiwxMi4xMDQzMjc2IDYsNTMuNzk4NDE1MyA2LDU1Ljc4OTQ3MzcgQzYsNTYuNzEzMzQ4NiA1LDU4LjExNjg1NzQgMyw2MCBDMSw1OC4xMTAyOTA0IDAsNTYuNzA2NzgxNiAwLDU1Ljc4OTQ3MzcgQzAsMzMuMDcyNzA3MSAwLDE1Ljg5NDM0MTIgMCw0LjIxMDUyNjMyIEMwLDMuMzUxODIxNjQgMSwxLjk0ODMxMjg3IDMsMCBaIiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIj48L3BhdGg+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMsNDUgQzMuNTUyMjg0NzUsNDUgNCw0NS40NDc3MTUzIDQsNDYgQzQsNDYuNTUyMjg0NyAzLjU1MjI4NDc1LDQ3IDMsNDcgQzIuNDQ3NzE1MjUsNDcgMiw0Ni41NTIyODQ3IDIsNDYgQzIsNDUuNDQ3NzE1MyAyLjQ0NzcxNTI1LDQ1IDMsNDUgWiBNMyw0MSBDMy41NTIyODQ3NSw0MSA0LDQxLjQ0NzcxNTMgNCw0MiBDNCw0Mi41NTIyODQ3IDMuNTUyMjg0NzUsNDMgMyw0MyBDMi40NDc3MTUyNSw0MyAyLDQyLjU1MjI4NDcgMiw0MiBDMiw0MS40NDc3MTUzIDIuNDQ3NzE1MjUsNDEgMyw0MSBaIE0zLDM3IEMzLjU1MjI4NDc1LDM3IDQsMzcuNDQ3NzE1MyA0LDM4IEM0LDM4LjU1MjI4NDcgMy41NTIyODQ3NSwzOSAzLDM5IEMyLjQ0NzcxNTI1LDM5IDIsMzguNTUyMjg0NyAyLDM4IEMyLDM3LjQ0NzcxNTMgMi40NDc3MTUyNSwzNyAzLDM3IFogTTMsMzMgQzMuNTUyMjg0NzUsMzMgNCwzMy40NDc3MTUzIDQsMzQgQzQsMzQuNTUyMjg0NyAzLjU1MjI4NDc1LDM1IDMsMzUgQzIuNDQ3NzE1MjUsMzUgMiwzNC41NTIyODQ3IDIsMzQgQzIsMzMuNDQ3NzE1MyAyLjQ0NzcxNTI1LDMzIDMsMzMgWiBNMywyOSBDMy41NTIyODQ3NSwyOSA0LDI5LjQ0NzcxNTMgNCwzMCBDNCwzMC41NTIyODQ3IDMuNTUyMjg0NzUsMzEgMywzMSBDMi40NDc3MTUyNSwzMSAyLDMwLjU1MjI4NDcgMiwzMCBDMiwyOS40NDc3MTUzIDIuNDQ3NzE1MjUsMjkgMywyOSBaIE0zLDI1IEMzLjU1MjI4NDc1LDI1IDQsMjUuNDQ3NzE1MyA0LDI2IEM0LDI2LjU1MjI4NDcgMy41NTIyODQ3NSwyNyAzLDI3IEMyLjQ0NzcxNTI1LDI3IDIsMjYuNTUyMjg0NyAyLDI2IEMyLDI1LjQ0NzcxNTMgMi40NDc3MTUyNSwyNSAzLDI1IFogTTMsMjEgQzMuNTUyMjg0NzUsMjEgNCwyMS40NDc3MTUzIDQsMjIgQzQsMjIuNTUyMjg0NyAzLjU1MjI4NDc1LDIzIDMsMjMgQzIuNDQ3NzE1MjUsMjMgMiwyMi41NTIyODQ3IDIsMjIgQzIsMjEuNDQ3NzE1MyAyLjQ0NzcxNTI1LDIxIDMsMjEgWiBNMywxNyBDMy41NTIyODQ3NSwxNyA0LDE3LjQ0NzcxNTMgNCwxOCBDNCwxOC41NTIyODQ3IDMuNTUyMjg0NzUsMTkgMywxOSBDMi40NDc3MTUyNSwxOSAyLDE4LjU1MjI4NDcgMiwxOCBDMiwxNy40NDc3MTUzIDIuNDQ3NzE1MjUsMTcgMywxNyBaIE0zLDEzIEMzLjU1MjI4NDc1LDEzIDQsMTMuNDQ3NzE1MyA0LDE0IEM0LDE0LjU1MjI4NDcgMy41NTIyODQ3NSwxNSAzLDE1IEMyLjQ0NzcxNTI1LDE1IDIsMTQuNTUyMjg0NyAyLDE0IEMyLDEzLjQ0NzcxNTMgMi40NDc3MTUyNSwxMyAzLDEzIFoiIGlkPSLlvaLnirbnu5PlkIgiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgIDwvZz4NCjwvc3ZnPg==);box-shadow:0 2px 5px 0 rgba(42,135,255,.2)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::before{height:1px;top:50%;left:0;right:0}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-n::after,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-s::after{transform:rotate(90deg)}.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-e::before,.f-splitter-pane>.f-splitter-resize-bar.f-splitter-resize-bar-w::before{width:1px;top:0;left:50%;bottom:0}.f-splitter-resize-overlay{z-index:98;width:100%;height:100%;cursor:e-resize;background:0 0;position:absolute}.f-splitter-horizontal-resize-proxy,.f-splitter-vertical-resize-proxy{background:rgba(42,135,255,.04);display:none;position:absolute;z-index:100}.f-splitter-horizontal-resize-proxy{width:.4375rem;left:0;height:100%}.f-splitter-vertical-resize-proxy{height:.4375rem;top:0;width:100%}.f-component-text{display:block;width:100%;overflow:hidden}.f-form-control-text{height:calc(1.5rem + .125rem);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.f-form-control-textarea{height:calc(calc(1.5rem + .125rem) + 2.321475rem);word-break:break-all;overflow-y:auto;white-space:pre-wrap}.f-form-control-textarea,textarea.form-control{min-height:60px}.f-form-control-text,.f-form-control-textarea{display:block;padding:.1875rem .5rem;font-size:.8125rem;line-height:1.4286;color:var(--f-text-02);background:0 0;background-clip:padding-box;border:1px solid transparent;border-bottom-color:var(--f-neutral-06);border-radius:0}.f-state-view .form-group .farris-label-text{color:var(--f-text-02)}.f-form-control-textarea.f-component-text-auto-size{min-height:calc(calc(1.5357375rem + 2px) + 1.1607375rem);height:auto}.f-form-control-text.f-component-text-auto-size{overflow-y:auto;word-break:break-all;white-space:pre-wrap;min-height:calc(1.5357375rem + 2px);height:auto}.switch{color:var(--f-text-02);background:var(--f-neutral-04);position:relative;display:inline-block;box-sizing:content-box;padding:0;cursor:pointer;transition:.3s ease-out all;white-space:nowrap}.switch.checked{background:var(--f-theme-04)}.switch.disabled{background:rgba(var(--f-neutral-04),.5)}.switch.disabled .switch-pane{opacity:.5}.switch.checked.disabled{background:rgba(var(--f-theme-03),.5)}.switch.readonly{background:rgba(var(--f-neutral-04),.5)}.switch.readonly .switch-pane{opacity:.5}.switch.checked.readonly{background:rgba(var(--f-theme-03),.5)}.switch small{right:calc(100% - 1.875rem);border-radius:100%;position:absolute;transition:.3s ease-out all;background:var(--f-neutral-00)}.switch.switch-small{min-width:1.625rem;height:.75rem;border-radius:.75rem}.switch.switch-small small{width:.875rem;height:.875rem;left:0;top:-2px}.switch.switch-small.checked small{right:-1px;left:auto}.switch.switch-small>.switch-pane>span{font-size:12px}.switch.switch-small>.switch-pane .switch-label-checked{padding-right:1rem;padding-left:.25rem}.switch.switch-small>.switch-pane .switch-label-unchecked{padding-left:1rem;padding-right:.25rem}.switch.switch-medium{min-width:2.5rem;height:1.375rem;border-radius:1.375rem}.switch.switch-medium small{width:1.125rem;height:1.125rem;left:2px;top:2px}.switch.switch-medium.checked small{right:2px;left:auto}.switch.switch-medium>.switch-pane>span{font-size:12px;line-height:1.375rem}.switch.switch-medium>.switch-pane .switch-label-checked{padding-right:1.625rem;padding-left:.4583333333rem}.switch.switch-medium>.switch-pane .switch-label-unchecked{padding-left:1.625rem;padding-right:.4583333333rem}.switch.switch-large{min-width:2.75rem;height:1.5rem;border-radius:1.5rem}.switch.switch-large small{width:1.25rem;height:1.25rem;left:2px;top:2px}.switch.switch-large.checked small{right:2px;left:auto}.switch.switch-large>.switch-pane>span{font-size:14px;line-height:1.5rem}.switch.switch-large>.switch-pane .switch-label-checked{padding-right:1.75rem;padding-left:.5rem}.switch.switch-large>.switch-pane .switch-label-unchecked{padding-left:1.75rem;padding-right:.5rem}.switch.switch-small>.switch-pane>span{line-height:normal}.switch.checked .switch-pane{top:0}.switch.checked .switch-pane .switch-label-checked{opacity:1;display:inline-block}.switch.checked .switch-pane .switch-label-unchecked{opacity:0;display:none}.switch.disabled,.switch.readonly{cursor:not-allowed}.switch.square,.switch.square small{border-radius:4px}.switch .switch-pane{display:flex;flex-direction:column;height:100%;min-height:100%;justify-content:flex-start;align-items:center;top:0;position:relative;pointer-events:none}.switch .switch-pane>span{display:block;min-height:100%}.switch .switch-pane .switch-label-checked{color:var(--f-text-00);opacity:0;display:none}.switch .switch-pane .switch-label-unchecked{opacity:1;display:inline-block}.f-datagrid-cell-content .switch.switch-medium{min-width:1.625rem;height:.75rem;border-radius:.75rem}.f-datagrid-cell-content .switch.switch-medium small{width:.875rem;height:.875rem;left:0;top:-1px;box-shadow:0 2px 3px 0 rgba(0,0,0,.16)}.f-datagrid-cell-content .switch.switch-medium.checked small{right:0;left:auto}.f-datagrid-cell-content .switch.switch-medium>.switch-pane>span{font-size:12px;line-height:.75rem}.f-datagrid-cell-content .switch.switch-medium>.switch-pane .switch-label-checked{padding-right:1rem;padding-left:.25rem}.f-datagrid-cell-content .switch.switch-medium>.switch-pane .switch-label-unchecked{padding-left:1rem;padding-right:.25rem}.f-cmp-switch{max-width:100%}.f-cmp-switch .switch-pane .switch-label-checked,.f-cmp-switch .switch-pane .switch-label-unchecked{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table{width:100%;background-color:var(--f-neutral-00);table-layout:fixed}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid var(--f-neutral-07)}.table thead th{vertical-align:middle;border-bottom:2px solid var(--f-neutral-07)}.table tbody+tbody{border-top:2px solid var(--f-neutral-07)}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid var(--f-neutral-07)}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(even){background-color:var(--f-neutral-11)}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th,.table-hover tbody tr:hover{background-color:var(--f-aid-03)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:var(--f-neutral-07)}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered,.table-responsive>.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:887.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}@media (max-width:1689.98px){.table-responsive-el{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-el>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table thead{background:var(--f-neutral-09);color:var(--f-text-04)}.table thead th{padding:.4375rem .75rem;line-height:1.25rem;border-width:0 0 1px;border-color:var(--f-neutral-13);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.table thead th::after{content:"";position:absolute;right:0;top:50%;margin-top:-.5625rem;display:block;height:1.125rem;width:1px;background-color:var(--f-neutral-06)}.table thead th:last-child::after{display:none}.table td{border-top-width:0;border-bottom:1px solid var(--f-neutral-07);border-color:var(--f-neutral-07);padding:.25rem .75rem;height:calc(.5rem + 1px + 1.1607375rem);line-height:1.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table td.selected,.table th.selected,.table tr.selected{border-color:var(--f-neutral-07);color:var(--f-text-03);background-color:var(--f-aid-02)}.table-striped tbody tr.selected:nth-of-type(even){background-color:var(--f-aid-02)}.f-datagrid-norecords{width:100%;position:relative;flex:1 1 0;height:100%;justify-content:center}.f-datagrid-norecords-content,.f-table-norecords-content,.f-transfer-norecords .f-transfer-norecords-content{height:7.5rem;padding:5rem 0 0;width:100%;text-align:center;font-size:1rem;color:var(--f-text-07);background:url(data:image/png;base64,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) top center no-repeat;position:absolute;top:50%;margin:-3.75rem 0 0 -.625rem;line-height:2.5rem}.f-transfer-norecords{height:100%;position:relative}.table-hover tbody .f-table-norecords-row:hover{background:initial}.f-table-norecords,.f-table-norecords .f-table-norecords-row td{border:none}.farris-tabs{position:relative;display:flex;flex:1 1 auto}.farris-tabs .margin-right-14{margin-right:14px}.farris-tabs .farris-tabs-header-extend{height:auto;display:flex;align-items:center}.farris-tabs .farris-tabs-header{display:flex;flex-shrink:0;flex-grow:0;align-items:center;margin:0 0 .625rem;padding:.75rem 0 0}.farris-tabs .farris-tabs-header .farris-tabs-title{position:relative;display:flex;width:100%}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer{margin:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer.spacer-sides{margin:0 1.5625rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer.spacer-sides-dropdown{margin:0 3.75rem 0 1.75rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs{overflow:hidden}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item{color:var(--f-text-04);border-width:0;border-style:solid;border-color:transparent;font-size:1rem;margin:0 2rem 0 0;position:relative}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;display:none;border-radius:10px;box-shadow:0 2px 6px 0 rgba(78,148,255,.4)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item:hover{color:var(--f-theme-05);border-color:transparent}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item:last-child{margin-right:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link{border:none;padding:0 0 .375rem;color:inherit;cursor:pointer;text-decoration:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link.tabs-text-truncate{overflow:hidden;white-space:nowrap;display:flex;align-items:center}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link.disabled{color:var(--f-text-07);background-color:transparent;border-color:transparent;pointer-events:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .st-tab-text{max-width:310px;overflow:hidden}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .farris-title-text-custom{position:relative}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link .farris-title-text-custom::after{content:"";height:100%;position:absolute;right:0;width:30px;background-image:linear-gradient(to left,rgba(255,255,255,.8) 0,rgba(255,255,255,.3) 100%)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active{border-color:var(--f-theme-03);color:var(--f-theme-03)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active::after{display:block;background:var(--f-theme-04)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item.f-state-active::after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link .farris-title-text-custom::after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item.f-state-active::after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills.nav-fill .nav-item.f-state-active::after{display:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active:hover{border-color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active .nav-link{color:var(--f-theme-03)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item:active{color:var(--f-theme-02);border-color:transparent}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item{flex-shrink:1;flex-grow:1;flex-basis:0;background:var(--f-neutral-10);border:none;margin-right:0;margin-left:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item.f-state-active{background-color:var(--f-neutral-00)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item .nav-link{padding-top:.4375rem;padding-bottom:.4375rem;justify-content:center}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-fill .nav-item .nav-link .st-tab-text{max-width:none}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item{border:none;font-size:.875rem;margin:0 .875rem 0 0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link{padding:.3125rem .75rem;color:var(--f-text-02);background:var(--f-neutral-09)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link:hover{color:var(--f-theme-03);background:var(--f-aid-02)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item .nav-link.disabled{opacity:.6}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills .nav-item.f-state-active .nav-link{color:var(--f-text-00);background:var(--f-theme-04)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs.nav-pills.nav-fill .nav-item{margin-left:0;margin-right:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn{position:absolute;z-index:120}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn:has(>.show){z-index:140}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle-split,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr{height:1.25rem;width:1.25rem;border-radius:6px;border:1px solid var(--f-neutral-06);background:var(--f-neutral-12)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle-split:hover,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg:hover,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr:hover{border-color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr{left:0;top:50%;margin-top:-.625rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.sc-nav-lr::after{content:" ";width:.5rem;height:.5rem;border-top:1px solid var(--f-text-04);border-right:1px solid var(--f-text-04);transform:rotate(225deg);position:absolute;top:.25rem;left:.4375rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg{padding:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .sc-nav-rg::after{content:" ";width:.5rem;height:.5rem;border-top:1px solid var(--f-text-04);border-right:1px solid var(--f-text-04);transform:rotate(45deg);position:absolute;top:.25rem;right:.4375rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle-split{color:var(--f-text-04);margin-left:.3125rem;padding:0}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn.dropdown{position:absolute;top:50%;margin-top:-.625rem;right:.375rem}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle:active,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle:hover{color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-btn .dropdown-toggle::after{width:1em;height:1em;content:"\eb82";font-family:FarrisIcons;border:none;font-size:12px;line-height:1;vertical-align:1px}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-lr:hover:after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-rg:hover:after{border-top:1px solid var(--f-theme-05);border-right:1px solid var(--f-theme-05)}.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-lr:active:after,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .sc-nav-rg:active:after{border-top:1px solid var(--f-theme-01);border-right:1px solid var(--f-theme-01)}.farris-tabs .farris-tabs-header.farris-tabs-inHead{border-bottom:none}.farris-tabs .farris-tabs-header.farris-tabs-inHead .farris-tabs-title{width:41.6666667%}.farris-tabs .farris-tabs-header.farris-tabs-inHead .farris-tabs-toolbar{flex:1 1 0;align-items:center;display:flex;justify-content:flex-end;margin-left:.875rem;overflow:hidden}.farris-tabs .farris-tabs-header.farris-tabs-inContent{display:block}.farris-tabs .farris-tabs-header.farris-tabs-inContent .farris-tabs-title{border-bottom:none}.farris-tabs .farris-tabs-header.farris-tabs-inContent .farris-tabs-toolbar{margin:.625rem 0}.farris-tabs .farris-tabs-header.farris-tabs-nav-fill,.farris-tabs .farris-tabs-header.farris-tabs-nav-fill .farris-tabs-title,.farris-tabs .farris-tabs-header.farris-tabs-nav-pills,.farris-tabs .farris-tabs-header.farris-tabs-nav-pills .farris-tabs-title{border:none}.farris-tabs .farris-tabs-header .farris-tabs-toolbar .btn-link{margin-right:.75rem}.farris-tabs .farris-tabs-header .farris-tabs-toolbar .btn-link:last-child{margin-right:0}.farris-tabs .farris-tabs-header .sc-nav-btn .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.farris-tabs .farris-tabs-header .st-drop-close{width:1rem;height:1rem;text-align:center;cursor:pointer;position:relative;opacity:.4}.farris-tabs .farris-tabs-header .st-drop-close .material-icons{font-size:1rem;margin:-.625rem 0 0 .3125rem}.farris-tabs .farris-tabs-header .st-drop-close:hover{opacity:1}.farris-tabs .farris-tabs-header .active{color:var(--f-theme-03)}.farris-tabs .farris-tabs-header .f-tabs-toolbar-btn{padding:.125rem .8125rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:var(--f-theme-03);border:none;background:0 0;white-space:nowrap}.farris-tabs .farris-tabs-header .f-tabs-toolbar-btn:hover{color:var(--f-theme-05)}.farris-tabs .farris-tabs-header .f-tabs-toolbar-btn:active{color:var(--f-theme-02)}.farris-tabs .farris-tabs-header .farris-tabs-inline-flex{display:inline-flex}.farris-tabs .scroll-tab-tooltips{padding:0;margin:0;width:7.5rem;text-align:left}.farris-tabs .scroll-tab-tooltips li{list-style:none;padding:0;margin:0}.farris-tabs.f-tabs-content-fill .f-tab-active,.farris-tabs.f-tabstrip-fill .f-tab-active{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.farris-tabs.f-tabs-content-fill .f-tab-active{position:relative}.farris-tabs .f-tab-d-none{display:none}.farris-tabs.f-tabs-header-sm .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item .nav-link{padding-top:.25rem;padding-bottom:.25rem}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item{border-radius:4px 4px 0 0;padding:0 .625rem;margin:0 1rem 0 0}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active{border-color:var(--f-theme-03);color:#fff;background:var(--f-theme-03)}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active:hover{border-color:var(--f-theme-03)}.f-cmp-tabs-with-pill .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item.f-state-active .nav-link{color:#fff}.nav-pills .nav-link{padding:.3125rem .75rem}.farris-tabs-toolbar .sc-nav-btn .morebtn{padding-right:12px;padding-left:12px;margin-right:0!important}.lookup-tabs-nav .nav-item-selected{color:var(--f-theme-03)!important}.lookup-tabs-nav .lookup-selected-total{color:var(--f-text-00)!important;background:var(--f-theme-04)!important}.lookup-tabs-nav .tabs-ink-bar{background:linear-gradient(214deg,#3F65FF 0,#4D9AFF 100%)!important}.farris-tabs-inContent .farris-tabs-toolbar:has(.f-component-tabs-view){display:flex}.farris-tabs-inContent .farris-tabs-toolbar .f-component-tabs-view{height:auto}.farris-tabs.one-page{overflow:hidden}.farris-tabs.one-page .farris-tabs-content{overflow:auto;position:relative}.farris-tabs .st-drop-close{line-height:1}.farris-tabs .tabs-li-absolute{padding:4px;margin:0;position:relative}.farris-tabs .farris-tabs-header{flex-wrap:nowrap!important}.farris-tabs .farris-tabs-header .sc-nav-btn .dropdown-menu{right:0;left:auto;min-height:80px;display:flex;flex-direction:column}.farris-tabs .farris-tabs-header .sc-nav-btn .dropdown-menu .tab-dropdown-menu--items{overflow-y:auto;overflow-x:hidden}.farris-tabs .tabs-li-absolute input{line-height:26px;height:26px;padding-right:24px}.farris-tabs .tabs-icon-search{position:absolute;right:4px;top:50%;font-size:14px;padding:0 4px;width:auto;height:24px;color:rgba(0,0,0,.25);margin-top:-12px;line-height:20px}.farris-tabs .dropdown-no-data{height:26px;line-height:26px;text-align:center;padding-top:5px}.farris-tabs .farris-tabs-header .farris-tabs-header-post,.farris-tabs .farris-tabs-header .farris-tabs-header-pre,.farris-tabs .farris-tabs-header .farris-tabs-title.scroll-tabs .spacer .farris-nav-tabs .nav-item{flex-shrink:0}.farris-tabs .farris-tabs-header .farris-tabs-title{flex:1 0}.farris-tags .farris-tags-item-container.farris-tag-item-capsule .farris-tag-item{border-radius:24px}.farris-tags .farris-tags-item-container.farris-tag-item-capsule .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked){background:#fff;border:1px solid #e6e6e6;cursor:pointer}.farris-tags .farris-tags-item-container .farris-tag-item{background:rgba(var(--f-theme-03),.06);border:1px solid;color:var(--f-text-02);display:inline-flex;align-items:center;padding:0 8px;margin:0 10px 0 0;line-height:24px;font-size:13px;white-space:nowrap;border-radius:3px;cursor:default;opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86)}.farris-tags .farris-tags-item-container .farris-tag-item a,.farris-tags .farris-tags-item-container .farris-tag-item a:hover{color:var(--f-text-02)}.farris-tags .farris-tags-item-container .farris-tag-item>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.farris-tags .farris-tags-item-container .farris-tag-item .tag-delete{color:var(--f-text-06);display:block;font-size:10px;line-height:1;width:16px;text-align:right;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.78,.14,.15,.86);position:relative;z-index:10}.farris-tags .farris-tags-item-container .farris-tag-item .tag-delete .f-icon{font-size:12px}.farris-tags .farris-tags-item-container .farris-tag-item .tag-delete:hover{color:var(--f-text-02)}.farris-tags .farris-tags-item-container .farris-tag-item>.f-icon+span,.farris-tags .farris-tags-item-container .farris-tag-item>span+.f-icon{margin-left:7px}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-success{color:var(--f-semantic-success-01);border-color:var(--f-semantic-success-02);background:var(--f-semantic-success-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-success.farris-tag-item-actived{color:var(--f-semantic-success-03);border-color:var(--f-semantic-success-01);background:var(--f-semantic-success-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-info{color:var(--f-semantic-info-01);border-color:var(--f-semantic-info-02);background:var(--f-semantic-info-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-info.farris-tag-item-actived{color:var(--f-semantic-info-03);border-color:var(--f-semantic-info-01);background:var(--f-semantic-info-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-error{color:var(--f-semantic-danger-01);border-color:var(--f-semantic-danger-02);background:var(--f-semantic-danger-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-error.farris-tag-item-actived{color:var(--f-semantic-danger-03);border-color:var(--f-semantic-danger-01);background:var(--f-semantic-danger-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-warning{color:var(--f-semantic-warning-01);border-color:var(--f-semantic-warning-02);background:var(--f-semantic-warning-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-warning.farris-tag-item-actived{color:var(--f-semantic-warning-03);border-color:var(--f-semantic-warning-01);background:var(--f-semantic-warning-01)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkdisabled{cursor:not-allowed;color:rgba(0,0,0,.45)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checked{background-color:#fff}.farris-tags .farris-tags-item-container .farris-tag-item:last-child{margin-right:0}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked){color:var(--f-text-02);background-color:transparent;border-color:transparent}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked):active{color:var(--f-text-02)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkable:not(.farris-tag-item-checked):hover{color:var(--f-theme-03)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checkdisabled{background-color:transparent;border-color:transparent;color:var(--f-text-07)}.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-actived,.farris-tags .farris-tags-item-container .farris-tag-item.farris-tag-item-checked{background:var(--f-theme-03);border-color:var(--f-theme-03);color:var(--f-text-00)}.farris-tags .farris-tags-item-container .farris-tag-add-button{cursor:pointer;background:#fff;border-radius:6px;border:1px dashed var(--f-neutral-04)}.farris-tags .farris-tags-item-container .farris-tag-add-button .farris-tag-add-text{color:var(--f-text-06)}.farris-tags .farris-tags-item-container .farris-tag-add-button .f-icon{color:var(--f-text-04)}.farris-tags .farris-tags-item-container .farris-tag-add-button:hover{border-color:var(--f-theme-05)}.farris-tags .farris-tags-item-container .farris-tag-add-button:hover .f-icon,.farris-tags .farris-tags-item-container .farris-tag-add-button:hover .farris-tag-add-text{color:var(--f-theme-05)}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled{opacity:.6;border-style:solid;cursor:not-allowed}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled .farris-tag-add-text{color:rgba(0,0,0,.25)}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled:hover{background:var(--f-neutral-08);border-color:var(--f-neutral-05)}.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled .f-icon,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled .farris-tag-add-text,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled:hover .f-icon,.farris-tags .farris-tags-item-container .farris-tag-add-button.farris-tag-add-button-disabled:hover .farris-tag-add-text{color:var(--f-text-07)}.farris-tags .farris-tags-item-container .farris-tag-input-box{display:inline-block}.farris-tags .farris-tags-item-container .farris-tag-input-box .form-control{height:24px;width:100px}.farris-tags .farris-tags-item-container .farris-tag-input-box .form-control:focus{box-shadow:none}.farris-tags.farris-tags-nowrap{overflow:hidden}.farris-tags.farris-tags-nowrap .farris-tags-item-container{display:flex;flex-wrap:nowrap;overflow:hidden}.farris-tags.farris-tags-checkable .farris-tag-item{line-height:22px}.farris-tags::before{content:attr(data-placeholder);color:var(--f-text-09);display:none;padding-left:5px;vertical-align:middle;height:100%;align-items:center}.farris-tags:empty::before{display:flex}.farris-tags.has-content::before{display:none!important}.time-picker-panel{box-sizing:border-box;margin:0;padding:0;color:var(--f-text-04);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;z-index:9999;background:var(--f-neutral-20)}.time-picker-panel .time-picker-panel-inner{position:relative;left:0;font-size:14px;text-align:left;list-style:none;background-clip:padding-box;border-radius:10px;outline:0;box-shadow:0 2px 20px 0 rgba(3,18,51,.12);padding:3px 0}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap{position:relative;padding:7px 2px 7px 12px;border-bottom:1px solid var(--f-neutral-08)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap .time-picker-panel-input:-moz-placeholder-shown{text-overflow:ellipsis}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap .time-picker-panel-input:placeholder-shown{text-overflow:ellipsis}.time-picker-panel .time-picker-panel-inner .time-picker-panel-input-wrap .time-picker-panel-input{width:100%;max-width:154px;margin:0;padding:0;line-height:normal;border:0;outline:0;cursor:auto}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox{zoom:1}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select{position:relative;float:left;width:4.125rem;max-height:192px;overflow:hidden;font-size:14px;border-left:1px solid var(--f-neutral-08)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul{width:4.125rem;margin:0;padding:0 0 160px;list-style:none}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li{height:2rem;margin:0 6px;padding:0;border-radius:6px;line-height:2rem;text-align:center;list-style:none;cursor:pointer;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--f-text-02)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select:first-child,.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select:first-child{margin-left:0;border-left:0}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li:hover{color:var(--f-theme-03)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li.time-picker-panel-select-option-selected{background:var(--f-aid-02);color:var(--f-theme-03)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li.time-picker-panel-select-option-disabled,.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li.time-picker-panel-select-option-disabled:hover{color:var(--f-text-07)}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select ul li:last-child::after{height:162px;display:block;content:""}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select:last-child{border-right:0}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox .time-picker-panel-select:hover{overflow-y:auto}.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox::after,.time-picker-panel .time-picker-panel-inner .time-picker-panel-combobox::before{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.calendar-time-picker{display:block;height:228px;width:100%;background:var(--f-neutral-20)}.calendar-time-picker .calendar-time-picker-panel{z-index:9999;width:100%;color:var(--f-text-04)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner{position:relative;display:inline-block;width:100%;overflow:hidden;font-size:14px;line-height:1.5;text-align:left;list-style:none;background:var(--f-neutral-20);background-clip:padding-box;outline:0}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox{width:100%;display:flex}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-column-3 .calendar-time-picker-select{width:33.33%}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select{position:relative;flex:1;height:226px;overflow:hidden;font-size:14px;border-right:1px solid var(--f-neutral-08)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn .f-icon,.tooltip{font-size:.75rem}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select ul{width:100%;margin:0;padding:0;list-style:none}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li{color:var(--f-text-02);height:2rem;margin:0 6px;line-height:2rem;border-radius:6px;text-align:center;list-style:none;cursor:pointer;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li:hover{color:var(--f-theme-03)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li:last-child::after{display:block;height:206px;content:""}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li.calendar-time-picker-select-option-selected{color:var(--f-theme-03);background:var(--f-aid-02)}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li.calendar-time-picker-select-option-disabled,.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select li.calendar-time-picker-select-option-disabled:hover{color:var(--f-text-09);background:#f8f9fa;cursor:not-allowed}.calendar-time-picker .calendar-time-picker-panel .calendar-time-picker-inner .calendar-time-picker-combobox .calendar-time-picker-select:hover{overflow-y:auto}.time-picker-overlay{top:0;bottom:0;left:0;right:0;position:fixed;z-index:8888;display:none}.time-picker-overlay .time-picker-panel-box{top:0;left:0;height:100%;width:100%;position:absolute;z-index:8888;flex-direction:column;min-width:1px;min-height:1px;transform:translate(0,0)}.input-group .input-group-append.f-cmp-iconbtn-wrapper{align-items:center;background:var(--f-neutral-12)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn{background:var(--f-neutral-12);cursor:pointer;padding:0 .5rem;color:var(--f-text-08)}.f-tooltip-default,.f-tooltip-info .f-tooltip-text,.tooltip-inner{background-color:rgba(var(--f-neutral-00-rgb),.95)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn:hover{color:var(--f-theme-05)}.input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn:active{color:var(--f-theme-03)}.f-component-timepicker .timepicker-btn{padding:0 .5rem;color:var(--f-text-07)}.f-component-timepicker .timepicker-btn:hover{color:var(--f-theme-05)}.f-datepicker-content .time-picker-panel-select ul li:last-child::after{height:258px!important}.tooltip{position:absolute;z-index:1090;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;line-height:1.4286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;word-wrap:break-word;opacity:0}.tooltip.show{opacity:1}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:rgba(var(--f-neutral-00-rgb),.4)}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:rgba(var(--f-neutral-00-rgb),.4)}.tooltip-inner{max-width:18.75rem;max-height:6.25rem;overflow:hidden;padding:.5rem .625rem;color:var(--f-text-02);text-align:left;box-shadow:0 2px 8px 0 rgba(0,0,0,.15);border-radius:6px}.tooltip-inner-lg{max-width:37.5rem;max-height:initial;overflow:initial}.f-tooltip{position:absolute;display:none;padding:.25em .5em;max-width:12.5em;line-height:1.2rem;border-radius:5px}.f-tooltip-left,.f-tooltip-right{padding:0 .6em}.f-tooltip-bottom,.f-tooltip-top{padding:.6em 0}.f-tooltip-bottom-left,.f-tooltip-top-left,.f-tooltip-top-right{padding:0}.f-tooltip-default{color:var(--f-text-02);border:1px solid var(--f-neutral-00)}.f-tooltip-text{padding:.5em .3em;white-space:pre-line;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,32,74,.15)}.f-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;border-width:1em}.f-tooltip-right .f-tooltip-arrow{top:50%;left:0;margin-top:-.5em;border-width:1em 1em 1em 0;border-right-color:var(--f-neutral-00)}.f-tooltip-left .f-tooltip-arrow{top:50%;right:0;margin-top:-.5em;border-width:1em 0 1em 1em;border-left-color:var(--f-neutral-00)}.f-tooltip-bottom .f-tooltip-arrow,.f-tooltip-top .f-tooltip-arrow{left:50%;margin-left:-.5em;border-width:1em;border-top-color:var(--f-neutral-00)}.f-tooltip-top .f-tooltip-arrow{bottom:0;border-bottom-width:0}.f-tooltip-bottom-left .f-tooltip-arrow,.f-tooltip-top-left .f-tooltip-arrow{left:10px;margin-left:-.5em;border-bottom-width:0}.f-tooltip-top-left .f-tooltip-arrow,.f-tooltip-top-right .f-tooltip-arrow{bottom:0;margin-bottom:-.5em}.f-tooltip-bottom-right .f-tooltip-arrow,.f-tooltip-top-right .f-tooltip-arrow{right:10px;margin-right:-.5em;border-bottom-width:0}.f-tooltip-bottom .f-tooltip-arrow{top:0;border-top-width:0}.f-tooltip-bottom-left .f-tooltip-arrow{top:0}.f-tooltip-info.f-tooltip-top-left .f-tooltip-arrow,.f-tooltip-info.f-tooltip-top-right .f-tooltip-arrow{border-top-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info.f-tooltip-bottom .f-tooltip-arrow{border-bottom-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info.f-tooltip-right .f-tooltip-arrow{border-right-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info.f-tooltip-left .f-tooltip-arrow{border-left-color:rgba(var(--f-neutral-00-rgb),.95)}.f-tooltip-info .f-tooltip-text{box-shadow:0 2px 8px 0 rgba(0,32,74,.15)}.f-tooltip-danger .f-tooltip-text{color:var(--f-semantic-danger-01);background-color:var(--f-semantic-danger-03);border-color:var(--f-semantic-danger-02)}.f-tooltip-danger.f-tooltip-top .f-tooltip-arrow,.f-tooltip-danger.f-tooltip-top-left .f-tooltip-arrow{border-top-color:var(--f-semantic-danger-02)}.f-transfer{padding:.125rem;border:1px solid var(--f-neutral-06);border-radius:6px}.f-transfer .option-pane,.f-transfer .option-pane-content .columns-box{padding:0}.transfer-search-box{margin:.75rem .875rem}.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group,.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group>.form-control:not(:last-child){border-radius:6px}.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group>.input-group-append{border-radius:0 6px 6px 0}.f-transfer .transfer-search-box .f-cmp-inputgroup .input-group>.input-group-append>.input-group-clear{border-radius:6px!important}.f-transfer .option-pane-content .columns-box .fv-tree-view .fv-grid-hierarchy-cell div span{overflow:hidden;text-overflow:ellipsis}.f-transfer .option-pane .option-pane-group{padding:.375rem 0}.f-transfer .option-pane .f-transfer-list-item{padding:.375rem .875rem;cursor:default;margin:0;border-radius:0;color:var(--f-text-03)}.f-transfer .option-pane .f-transfer-list-item .f-list-select{padding:0}.f-transfer .option-pane .f-transfer-list-item.f-un-select{color:var(--f-text-08)}.f-transfer .option-pane .f-transfer-list-item:not(.f-un-select):hover{background:var(--f-neutral-11)}.f-transfer .option-pane .f-transfer-list-item.f-listview-active{background:var(--f-neutral-10)}.f-transfer .option-pane .f-transfer-list-item .custom-checkbox{padding:0 0 0 1px;margin:0;width:100%;overflow:hidden}.f-transfer .option-pane .f-transfer-list-item .custom-control-label{padding-left:1.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-transfer .selection-pane{border-left:1px solid var(--f-neutral-06);padding:0}.f-transfer .selection-pane .selection-pane-title{padding:.875rem .875rem .375rem;background:var(--f-neutral-10);color:var(--f-text-01);display:flex;align-items:center}.fv-grid-hierarchy-cell,.fv-tree-node-cell{padding:0 .75rem;display:flex;z-index:1;line-height:28px;white-space:nowrap}.f-transfer .selection-pane .selection-pane-title>.selection-count{font-size:18px;margin:0 .25rem}.f-transfer .selection-pane .selection-pane-title>.selection-title-action{font-size:13px;color:#2a87ff;flex:1;text-align:right}.f-transfer .selection-pane .selection-pane-title>.selection-title-action>i{margin:0 .5rem}.fv-grid-hierarchy-cell{position:absolute;text-overflow:ellipsis;top:0;flex-direction:column;align-items:center;border-color:transparent;background-color:transparent;overflow:hidden}.fv-tree,.fv-tree-content,.fv-tree-content-primary{overflow:scroll;position:relative}.fv-grid-bordered .fv-grid-hierarchy-cell{border-right-color:#eaecf3}.fv-grid-horizontal-bordered .fv-grid-hierarchy-cell{border-bottom-color:#eaecf3}.fv-tree{display:flex;flex-direction:column;border-color:transparent;flex:1;color:#424347;width:100%}.fv-tree-content{flex:1;display:flex;width:100%;z-index:0;background:#fff}.fv-tree-content-hover{cursor:pointer}.fv-tree-content-primary{flex:1}.fv-tree-data{height:100%;width:100%;position:relative;overflow:hidden}.fv-tree-data .fv-grid-hierarchy-cell{border:none}.fv-tree-node{left:0;width:100%;position:absolute}.fv-tree-node.selected,.fv-tree-node:active,.fv-tree-node:hover{left:0;position:absolute;background:#e7f1ff}.fv-tree-strip .fv-tree-node-odd{background-color:#fff}.fv-tree-strip .fv-tree-node-even{background-color:#f7f8fb}.fv-tree-node-hover{cursor:pointer;color:#424347;background:#edf5ff!important}.fv-tree-node-selected{color:#424347!important;background-color:#dae9ff!important}.fv-tree-node-cell{position:absolute;text-overflow:ellipsis;top:0;flex-direction:column;align-items:center;border-style:solid;border-width:1px;border-color:transparent transparent #eaecf3;background-color:transparent}.fv-tree-data :first-child .fv-tree-node-cell{background:0 0;border-left:none}.fv-tree-node-cell-input{font-size:12px;height:12px;width:12px;border:1px solid #aeb5c6}.fv-tree-node-cell .f-icon.f-icon-checkbox-checked{color:#2a87ff!important}.fv-tree-node-cell .custom-control-input:checked~.custom-control-label::before{color:#2a87ff}.fv-tree-node-cell input[type=checkbox]{display:none}.fv-tree-node-cell input[type=checkbox]+label{position:relative;padding-left:18px;cursor:pointer;display:flex}.fv-tree-node-cell input[type=checkbox]+label::before{content:"\e304";font-family:FarrisIcons;position:absolute;left:0;top:0;color:#d8dce6}.fv-tree-node-cell input[type=checkbox]:indeterminate+label::before{content:"\e306";font-family:FarrisIcons;position:absolute;left:0;top:0;color:#2a87ff}.fv-upload-and-preview .ffileUploadAndPreview{font-size:13px}.fv-upload-and-preview .ffileUploadAndPreview-content-fill{flex-grow:1;flex-shrink:1;flex-basis:0;display:flex;flex-direction:column;overflow:hidden}.fv-upload-and-preview .ffileUploadAndPreview-content-fill .uploadAndpreview--header{flex-shrink:0}.fv-upload-and-preview .ffileUploadAndPreview-content-fill .uploadAndpreview--content{flex-grow:1;flex-shrink:1;flex-basis:0;overflow:auto}.fv-upload-and-preview .uploadAndpreview--header{display:flex;align-items:center;margin:0 0 9px;position:relative}.fv-upload-and-preview .uploadAndpreview--header .ffileupload--browser{position:absolute;margin:0;padding:0;left:1em;top:-9000px;width:calc(100% - 2em);opacity:0;font-size:0}.fv-upload-and-preview .uploadAndpreview--header .header--left-container{display:flex;align-items:center}.fv-upload-and-preview .uploadAndpreview--header .upload-container{height:44px;background:#FAFCFD;border:1px dashed #D8DFED;border-radius:6px;padding:0 22px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:130px;display:inline-block;line-height:44px;align-items:center;max-width:160px}.fv-upload-and-preview .uploadAndpreview--header .upload-container.f-state-disabled{opacity:.6;cursor:default}.fv-upload-and-preview .uploadAndpreview--header .upload-container .upload-icon{color:#2F8AFF;font-size:18px;margin:0 10px 0 0}.fv-upload-and-preview .uploadAndpreview--header .header--right-container{margin-left:auto;min-height:44px;display:flex;align-items:center}.fv-upload-and-preview .uploadAndpreview--header .header--countInfo{min-height:44px;display:flex;align-items:center;font-size:14px}.fv-upload-and-preview .uploadAndpreview--header .header--countInfo .count{font-size:16px;font-weight:600;margin:0 6px}.fv-upload-and-preview .uploadAndpreview--content{margin-bottom:10px}.fv-upload-and-preview .uploadAndpreview--table td{border-left:none;border-right:none;vertical-align:middle!important;padding-top:12px;padding-bottom:12px}.fv-upload-and-preview .uploadAndpreview--table .td--hascheckbox{position:relative;padding-left:44px}.fv-upload-and-preview .smooth-dnd-ghost .td--hascheckbox .preview-checkbox,.fv-upload-and-preview .uploadAndpreview--table .td--hascheckbox .preview-checkbox{position:absolute;top:50%;margin-top:-8px;left:14px}.fv-upload-and-preview .uploadAndpreview--title-container{display:flex;overflow:hidden}.fv-upload-and-preview .uploadAndpreview--title-container .uploadAndpreview--right{align-self:center;flex:1 1 0;overflow:hidden}.fv-upload-and-preview .uploadAndpreview--right .item-content--title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;cursor:pointer}.fv-upload-and-preview .uploadAndpreview--right .item-content--title.no-preview{cursor:default}.fv-upload-and-preview .uploadAndpreview--title-container .ffilepreview--filetype-icon{width:28px;height:28px}.fv-upload-and-preview .uploadAndpreview--state-container p{margin:0;padding:0}.fv-upload-and-preview .uploadAndpreview--state-container .f-icon{font-size:18px}.fv-upload-and-preview .ffileupload--support-info .support-info--wrapper{padding:0 8px;margin:0 0 8px}.fv-upload-and-preview .ffileupload--support-info .support-info--wrapper li{color:#B4BCCC;margin:0;padding:0;display:inline-block}.fv-upload-and-preview .uploadAndpreview--date-container,.fv-upload-and-preview .uploadAndpreview--filesize-container{color:rgba(45,47,51,.45);font-size:12px}.fv-upload-and-preview .uploadAndpreview--state-container .f-icon{margin:0 8px 0 0}.fv-upload-and-preview .uploadAndpreview--nodata{padding:0 8px;margin:0 0 8px;color:#B4BCCC}.fv-upload-and-preview .uploadAndpreview--action-container{display:flex;flex-direction:row;align-items:center;min-width:90px;height:100%}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn{height:22px;width:22px;border-radius:16px;display:inline-block;padding:0;color:#2b87ff;text-align:center;border:none;margin:0 14px 0 0}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn[disabled]{color:gray;opacity:.5;cursor:not-allowed;background:#e6e6e6;border:1px solid #bdbdbd}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn:not([disabled]):hover{color:#fff}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn .f-icon{margin:0 auto;display:block;font-size:16px;position:relative}.fv-upload-and-preview .ffilepreview--filetype-zip{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-xls{background-image:url(data:image/png;base64,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dGUAMjAxOS0xMi0yOFQwOTozMTo1NiswMDowMLhrE7kAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDEtMDhUMTk6NDM6NTkrMDA6MDCdstIMAAAAIHRFWHRzb2Z0d2FyZQBodHRwczovL2ltYWdlbWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADUxMo+NU4EAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANTEyHHwD3AAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNTQ2OTc2NjM5OiA9twAAABN0RVh0VGh1bWI6OlNpemUAMjc5NTUxQgHjNFMAAABadEVYdFRodW1iOjpVUkkAZmlsZTovLy9kYXRhL3d3d3Jvb3Qvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL2ZpbGVzLzExOC8xMTg0MjYwLnBuZ1tLqmgAAAAASUVORK5CYII=)}.fv-upload-and-preview .ffilepreview--filetype-txt{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-ppt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH5AIKAwAkajkauAAAEtlJREFUeNrtXHuMHdV5/31n7t177673vYtxsL3gGGJC2jRtik1SY1pABYFiV0nDMxCiUoJUKVEU9b8mIalUqZEiVX2kQS1V24BB2CQUiRISAtgLMQSQGhDY3oCf+LW73vfd+5g5X/+YOTPfOXPmrqGt1D840spzz5zHd37f+5sZAx+0D9oH7f+w0Xud8JOvlPHG5CjO657Hmr4yRnoVQg1USkCtHKCrBJQUoJSYxOJaJb/J9CcXDIA4G09JP1HWZ9YhAkHj5HIv+q//O6y+eDOiMEQYhmi1WqjX62g0GiiXyzgzOYkT776LuabCpgtq+PQ1n31P5y2d68CH7+7DUjNCtauCu7cw7h+Pquf3lkc0Y7TR5vWNNo802tRVKQPlgBBQAfppJwNsQBDXElVigJQNTgoaox4GqISE+YVFhK0m2u02Gs0mmo1Gi7WeUkodBfPkyZOnpv7sq19vvPrSOH74Lz9Ab28vtn/u1v8dCdr5J73Y+pEaDpwMcfX3ztIzXxu6eLBb7RjooW3lAJuqZerXjD4AZUUEIgYBIBJLc3KoVEpW2JaTMXJsKj2pEOHwtMbM6hux+fPfQmXVILSOwMzQWoMZbaVoodFozrbb7f0zMzN7p6enH7ti69UHf7HnGXzkso9h70+exPZb73r/AD16Tz9OzEb4g0srODat14+NBvf219Qt1YDGSiUPV40QsGd19mxQuLtRNUqA5dx4BeCd6RCvHI6wcfMObL7526j2DoO1tsYRCMyMMAyxvLx8eHZ27qFDhw7949iFY8d++vRTuOCCtbhhx02FGARFN3bdPYDFBuOeO4axf39z64bR0v0jq9TN1RINWPZFUm5AYGFkmGz7klLPzrW5pETdSKwHrzTN1hknZiOcPfYWGvNnsHrj5ShXejJARVNKoVqtDvT09Gzt7evdcurUqQM3/tHNR1/75T586Y7b8OAju84doJ13VHF6Cbjnzn6MP7N4w9hw8MBATV0Waw05NsGVBsF9S0QoU7Oc+JD4c3XJZUIsrUTAzJLGyTkNgDB97E0sz53B+ZdsjkHyimwMVK27tq6nu/vaA2+9cfDq67dPPP/MU/jS7X+MR3Y/kRvvFfLDf3Ue5usRztb11otGSg/2VWldfhrbQuAKh68RAC2xIP/ggm7ZTwQcmorw6pG2Rc/GT30WW275Dio9g2DW6NTm5uaOvf32O7cNj4zsHRpdg/6BwdyYnATt/GIvGiHj7JJe9+GR0v39RnIYnZsLtW+8K3mWDTOAwQkDnPFCsGbrjJOzNghnj+9HffbUipIEAJVKtb+r0nXpxMEDP52Znpy78bpr8MiuH1ljctZkqaVx7d/M4sKB4Mv9VbWF5EGYs0PKPyCWDF+/C445uIatbprsudqZ61vfY2ugGb9+cTde2vlNNBamQKRQ1IiAwYGBLRs2bLj3iiuvoaXFhdwYS4KevrOE0dFu3L65eskFA6XvVks0YB+ywO1IY+peW4bWGe/OFXhlc/1hQSpBc341Onv0TSzPT64oSUEQgIjWbb/hD59cff6a6Zuu3IB/+/Gz6X0L3rdoBL+1roKBqtpRKWGMOREanfzLQojca8FUazyS3yhai/N9GmAmMCj+172nnf18NIAw8cKjeOmR+9BcmimUJGZGrVYbGxoe2fE7Wz6NI2s/Z923Zg22l/BPz81XB2tqW0mRLeqS0z5x16bfUEr2WO3MMyqlqVh9Is7mud6zk5qn9wkT44/iFz/8CzQWzxaCVCqVMDQ0eNXff/cvq73Hn7fvyR/n9wdY3R+MlBRtIo4DrFzw52WDUAu4cU+HSald4myu6+m9Rh15sHxjgNgmvbAbYI0tt30b1b6ROJgUjYhQLndt+sTlnxol4FghQCM1Bc0YrQboZ04oMG65yKP4iDTcVM79osiZPYtK6aAkPigy/GnI4dsgXu/XLzwGIoXNt3wrBkmEAMyMarXaPzzYPxKUyhZAlsy1Gai3eExr9FkqUeShXPVyx0UoVsfEpuTUT9s2KTmBo57mWhg6M85rmGKpPrh3F/Y99E00FqZz6qa17q3X62NhZEuXJUGVEtBs8zCYyynARZlBUWwk7zHBKmHk7jtLuOuSK1yCAIkNk4ceGTRlC0+M7waIcMXtdjBJRGUCrenpGyoGqLtMaLWpiww3UgoTW6Qpt3dqP8wBSMy1TiGSTu4QeabBIgPKBsRaV9pGFoiC8zTKeIsZE3t3Awxsue2+OMFlDaUUSuXy4IfWjxUD1KWASkCx3rlBGFs7ZcRZhTGZfrAjNWyPc4knzz3NTv5WQIOkz6ogFFhvZkzs3QUwxyD1j4CIEARBd0B2cmEBFAAomXzJuHmyJd/KSc1Yp89TnchztAOjSWBrFpOCmUb30v6YQRp+s+ChY2J8FwDCltvvQ7l7AFBB2RltA0QsmC9jC6fykONeShBZXDOaVezx2GK+WYvNguKwLO2WqYb43H5RaCDBStclHNyzC0QKv3vLN0CqnAuUciVXcj1F0Ya+Yhhzvt8VD6NuQRVUKnskIAJHTSAKk/VUpmaOKJPxfisV5nz3jJQzcPD5RxGFEVb9xnbCxg4qFrvbxM0qaVA9wGhDpRODSONO4jrlcoTy2BbUtn0NqjqQOxFHbfDSFPTSGYQn/gutd8ahZ44kQGX0MAPDNYVPrl2hrC6NuSxRuSb28BOYOrIP+OXxYoBM/GH7X/YuaOmF5UnEACtKNsBqlMauQNfF12DFxoxo8gDq43+L5us/AsKmdcCeMrCqy9EKr4NcuV6jNdCcPgl8aBWART9AVsBXUOBLjbKpFUvu2Oj5OcUAiSKCXjiNaHIiG6BKUH3nIxhYC6gSgvM2YdVnvgfVPYLlF/4hkdxsP29NLBezeTyCQ582cVtk37YBSqSABUA53LVYuSDVkNom62Dx/CTHS1pr4udYfPzrYnIA1TOM8kW/h+5tX0EwuhFUqqB721cRnngdrYlnARV46IGl8ZI8GUHkQGKBn0cTHIAScDS8JeXMc4lgzcM1NkZeJR6JXYkSEyMNbjWSe7EPj5YXEU4eQjT5Nvpu/Weo/jWg2iAqv30LWm+/AOjIn0Q7kbcVn3oDx4zelGan5uUkJIhlzczQnPVFbN+D8zvdwPQn87TO1mEGmzkSMY2k7GHmKpAK0D60D43XHs64ueY3oapDQKQdeuChR0Tf8hyaLXq8ZygCKA3JzMAUMNh9Jnk00pbe5yw8gLjWzj3X3cp9dDaXdYTw3V/FEgNA9Z4HtWp1rKIyFGHOEmMt8OcCegStMmFmN/D0qZibPqWiL8Nj7eQ8ANgosob9sE+KtIdDRQ7Q7KuX58E6BKkApAIgKMehSFHsY0UWSVRp6HHVUozNgLJVzHbzEYMjjgedS4AIA4ZzSuvENnE5QAxowualwzVDdY+AkgxAN+ahl2aQViu99EgmuAuKWNZ3PjZhegFAqQhGyJSPxAaphIiVtbj21avYlrRUldwmCnNpoYDKKI99Mg4SAejpo9Bzp1Njbs2T6/joYafLCl6FGQk71IOMsWKw0GMPIW4KUuQh2DPHBYhjScnmGgehUfnotah8IntdpXngOejlhRgw7fHjvtaJHti/V3TzrAGOkkMo8i6S27SIk5KoDjYoDl4CpMYgUFDVXnR99Fqsuu7PoXriAlZ4/FdovPwwWKcCZTPPpce8UdKJHuvswsMVASSNY1aMEhuTo6OWvuf11ytxDpe6LtmK/i8+kNgFApW7ofpWI1h9MajUBQCIZk9g4YnvIJo8GpdKI2Q2y2WWtD9u/FNED5CEGQSEduRT4MUYrDMJIhLRtYyOnWA6rdkYwZARqqcWBADB0HoEQ+vhaxy10To4jqX//Gu03t4HYxgpkRr20GMfxlMFkAD5hCPqKEEcxwKaLENs2yN28tRsZ7YQcuaZ1EXDdniNRejF6czhtJvQMycQnj6I1oFxtCb2QC+eTdILziJkiwYJjkAirTQAvsKea39iujoYaU4DQcBrZ7xsZlvvJRE+A+kY6eYbT2N+9zeyjqgNbsyDW/XEFqrYRuXsTIF1lvGaazN99Mg+zcLAeQAiaXvgLGYNzPczzu1Zodt0YwnRtHgURZTYI5VTyxQSK4qF1zOx7sxXCyTAeuxUCFAKtNFvFxSfy5cH6PRg0DLScl2ClfEwLDuWSyzPlR4/P/L0uAl21DFQFDmWm827cRB7drWiarJVL7GirJEX9TT+kc+xkD2Tl+ufKz3ko4fz413P3bEeFCG24kW6u5LMpokte7gvXZqTlqTPyiVIYl7KcUc0CukxOZhLj/Bs7juTrJN3EWyEHBXjLPJ2XUWaU3mqaL5AssjIO14sps2XeVK+i537RfS4L0EUBId2vZxiqQzPJRfTUpwdQn1FspzNKJhDJlJ31nADUomD+cEeetxxPgGx5ki6EglLqg+yzFUIUOrmTTYv15UFqByHJCel5fMAybBfMiey8yoDsMUIR+2ssXl3T2maIaNIB1DTb9lACHX3ABRX/MTmkvMAKJEsltGaoUWzOBvn6GaRkkTz04hmT4FIIZo+kRSqHNF0I3IvPeY6Y3v6pEmA7tLjiQcz5jv9nlyMBagkolATQTOscoMRqpSZDHYlKC2ZxIlpffwRNF7/OYgI0fxUSly8bN7/svygJUcPZTZZCpUBYSV6Ut+RnLqTmzfv/9nu1RFJc21Ko1K1XLdq+sx6yRpcX0S0NJ+ocRYHZXbDUSlPIculh+TrOhIIQ6dMJDUJegRzNXFHCdI6/ssCRVdPpMjIRCbZ0Ih1OpVsg28BEGR9EmB5OlO+LQr5XNVzaRPP4G16nPMAJjnXqHewQVEEhFEyWDlS5HoLwONiSXDMcxBzGvL0e+MUCZLTZKBoRdLOWO2Z66EnMROt5aUOcVA7ZDTbDK5wbh9rdWn1fTUZyxAAVgIJYQh9kTp59pBvqrkHTce4+xf8LqCHNRBprp9a6iBBSxFjWXNbm7wkB5IDivm3qBxblAyJgJh8xLuHpQJQrdrH+6BH3GMGQs0zZxodAGpGAANTzGgzo+yNmOVGLiFyY1864CEwV0xziff1u/SYVkSPuZcDONuHGW0wnWqE9m37DTMCagGOEGMBGkOFB/RE1NbjFHjmmHFwxrF/vUKmvB96igAW18RYqCkcUY5IWwCdbWgwMDVS5rlyiYa8nJCHEgTL3NILkJOo5+yXq7ruPkXr/w/pMX3NkGfPNnjS5a9VPjvdiPDmXDgZRbw/y5GEESwi2Px5PynwEOYbD+df73pcvP450cPOXtl6oeb9b86HU2datg2yAJqcreJPL6w2Ztu8N0xKF6wpTeJYEGh9WMKwUjVzL91fEOp+iAIxx1pbjk/2lh+2yAPnPnRhdj6MMTSQQ08cUoQMzLZ5790XVhtz80ExQJetrePl2Qgzbd69HOIIyzJNHGk60bbghqeeLYtjKZHyhQYBkguM5aDMYSTQhnnuW/4mcLWkhwvpYWYsR3xkpsWPvTwTYuNYqxigHT8L8U4jxPbnlifm27wzKhJXOH2+8kVRX6EKJKfu9CWRb62capFTVxaA5ehhRBEw3+aHtj+/fPBQQ2PHk7Yby7322h0oPH5ljY8vR9+fb+t97BILD2GG3b5vO3zAev9IfCIF+7Ub+OZKvXbpkXsbaTIMsM3EfJv3HatH33/8yhq6g3x07I2XX//9VVggxmzIW9fX1IO9Jdgf9TKyHMk1vr5rd24hBc6aK43z0iPrQM5cKxwgLIR87Ggjuq1fqb2rAHz82aXctt4vzF7lNl5cbuH64a697zbDexdCfYwl7IkCs3nZQb7VhexfRswx9z6nFpwTg6rj0cmaLPZh8ZftFY+P1zL9Orsn3hxz1zL0zIfRsePN6N7rh6t79zVbeM2t1ifN+938jw9H+MKGMl5cbOOmwdrEK/XwlTLh0jLR2pXq9oWSUiwO2W9+72txx33sNYhijzUX8r53m/re6/p6fvaDqQUMlRTufL55TpRa7d+3VXA6YlxRDnAi5HVry/Tl3oBurSq6sCT/Fxd5kKLqRFEKsBKG72V8B3pCBpqaj8xr7Dze4u9fEODoi2GI1YrwhT2tjst2bP96bQUfrwc4EjC271nG41fVLhkg7Ogv0bYSaFNFoV8DfQSUzaOoc5YyX5OHLAJJBptOZVM4rLYCFpqa50Jg/1zEe+dC7P7MnuWJ/7iyxh9uK7zcH+GupxrnxKcV2wNX1VBnxkUgfKxL4aHFsHqpopGhKo3WNdZDY01AGAiIamBUmDlOY9z3FTsd0leqKADDk1qEiPPt5ZB5lohOdSscOdviqf2Mybt6So1XmxEOhRrdRLhrvDMw7xkg0574fAlvjNcwurGFkYgwXCG0GahGhBEFDAaEkbICupAVusyTEgVknxRBxCvKAY0ApZPxSF5JUdl9lVxIu9pkTDUjzBBjihkNir9/m24xzgTA9KEKLr18Cdt3hfigfdA+aP9v2n8Djp211mnkC3EAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTItMjhUMDk6MzE6NTYrMDA6MDC4axO5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTAxLTA4VDE5OjQzOjU5KzAwOjAwnbLSDAAAACB0RVh0c29mdHdhcmUAaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcme8zx2dAAAAGHRFWHRUaHVtYjo6RG9jdW1lbnQ6OlBhZ2VzADGn/7svAAAAGHRFWHRUaHVtYjo6SW1hZ2U6OkhlaWdodAA1MTKPjVOBAAAAF3RFWHRUaHVtYjo6SW1hZ2U6OldpZHRoADUxMhx8A9wAAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9wbmc/slZOAAAAF3RFWHRUaHVtYjo6TVRpbWUAMTU0Njk3NjYzOTogPbcAAAATdEVYdFRodW1iOjpTaXplADI4NjczMULcYaVuAAAAWnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vZGF0YS93d3dyb290L3d3dy5lYXN5aWNvbi5uZXQvY2RuLWltZy5lYXN5aWNvbi5jbi9maWxlcy8xMTgvMTE4NDI1Ny5wbmdv/wTWAAAAAElFTkSuQmCC)}.fv-upload-and-preview .ffilepreview--filetype-pdf{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-img{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-doc{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-any{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-wps{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--filetype-wpt{background-image:url(data:image/png;base64,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)}.fv-upload-and-preview .ffilepreview--item-icon{margin:0 .625rem 0 0}.fv-upload-and-preview .ffilepreview--filetype-icon{display:inline-block;width:38px;height:38px;background-repeat:no-repeat;background-position:0 0;background-size:cover}.fv-upload-and-preview .smooth-dnd-ghost.uploadAndpreview--preview-item.smooth-dnd-draggable-wrapper{background-color:#dae9ff}.fv-upload-and-preview .upfile-drag-handle{position:relative;top:-2px;margin-right:5px;cursor:grab}.fv-upload-and-preview .upfile-drag-handle:active{cursor:grabbing}.fv-upload-and-preview .upload-progress{display:inline-block;font-size:.875rem;color:rgba(0,0,0,.65)}.fv-upload-and-preview .upload-progress.upload-progress-line{position:relative;width:100%}.fv-upload-and-preview .upload-progress.upload-progress-line .upload-progress-text .upload-progress-text-icon{font-size:1.25rem}.fv-upload-and-preview .upload-progress .upload-progress-outer{display:inline-block;width:100%}.fv-upload-and-preview .upload-progress .upload-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#efefef;border-radius:100px}.fv-upload-and-preview .upload-progress .upload-progress-bg,.fv-upload-and-preview .upload-progress .upload-progress-success-bg{position:relative;border-radius:100px;height:6px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.fv-upload-and-preview .upload-progress .upload-progress-success-bg{position:absolute;top:0;left:0}.fv-upload-and-preview .upload-progress .upload-progress-text{display:inline-block;width:1.75rem;margin-left:.5rem;color:rgba(0,0,0,.65);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.fv-upload-and-preview .upload-progress.upload-progress-status-active .upload-progress-bg::before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:.625rem;opacity:0;animation:upload-progress-active 2.4s ease-in-out infinite;content:""}.fv-upload-and-preview .upload-progress-show-info .upload-progress-outer{padding-right:48px;margin-right:-48px}@keyframes upload-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}100%{width:100%;opacity:0}}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn{color:var(--f-theme-03)!important;background:var(--f-aid-02)!important}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn:not([disabled]):hover{background:var(--f-theme-05)!important}.fv-upload-and-preview .uploadAndpreview--action-container .preview-btn:not([disabled]) .f-icon:hover{color:#fff;width:22px}.fv-upload-and-preview .uploadAndpreview--table .uploadAndpreview--currentfile{background-color:var(--f-aid-02)}.fv-upload-and-preview .uploadAndpreview--table .uploadAndpreview--currentfile .preview-btn{background-color:var(--f-aid-03)}.f-verify-list .list-icon,.f-verify-nums .nums-count,.f-verify-nums .nums-icon{color:var(--f-semantic-danger-01)}.f-verify-list .list-warning{color:var(--f-semantic-warning-01)}.f-verify-detail{position:absolute;left:14px;bottom:16px;z-index:900}.f-verify-detail .f-verify-detail-content{position:relative}.f-verify-detail .f-verify-detail-content .f-verify-form-main{position:absolute;padding-bottom:.5rem;left:0;bottom:1.75rem;width:28.125rem}.f-page-has-query .f-page-header .f-page-header-base,.f-page-has-scheme .f-page-header .f-page-header-base,.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-title{padding:.75rem .875rem}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content{border-radius:4px;width:100%;overflow:hidden}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-arrow{display:block;position:absolute;left:1.125rem;bottom:.25rem;width:.625rem;height:.625rem;background:0 0;border-style:solid;border-width:.3125rem;transform:translateX(-50%) rotate(45deg)}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list{position:relative}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-close{position:absolute;right:.75rem;top:.625rem;font-size:.75rem;cursor:pointer;width:1.25rem;height:1.25rem;line-height:1.25rem;text-align:center}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list{overflow-y:auto}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list-content{display:none}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list-content.active{display:block}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list{cursor:pointer;position:relative;padding:.5rem .875rem .5rem 2.5rem;list-style-type:none}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-icon{position:absolute;left:.875rem;top:.75rem;font-size:.875rem}.f-page,.f-page-root{bottom:0;position:absolute;right:0;left:0;overflow:hidden}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-con p{margin-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-con .list-title{font-size:.875rem;line-height:1.375rem}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-list .f-verify-forms-list .f-verify-list .list-con .list-msg{font-size:.75rem;color:rgba(0,0,0,.45);line-height:1.25rem}.f-verify-detail .f-verify-nums{padding:.125rem .5rem;cursor:pointer}.f-verify-detail .f-verify-nums .nums-icon{margin-right:.25rem;vertical-align:middle}.f-verify-detail .f-verify-nums .nums-count{font-size:.875rem;line-height:1.25rem}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content{background:var(--f-neutral-20);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-15-rgb),.15)}.f-verify-detail .f-verify-detail-content .f-verify-form-main .f-verify-form-content .f-verify-form-content-arrow{box-shadow:2px 2px 5px rgba(var(--f-neutral-15-rgb),.08);border-color:transparent var(--f-neutral-20) var(--f-neutral-20) transparent}.f-verify-detail .f-verify-forms-title .btn-group{border-radius:14px;padding:3px;background:var(--f-aid-04)}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn{color:var(--f-text-02);border:1px solid var(--f-neutral-08);background:var(--f-neutral-12);box-shadow:0 4px 10px 0 rgba(var(--f-neutral-15),.06);margin:0;border-radius:0}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn:first-child{border-radius:14px 0 0 14px}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn:last-child{border-radius:0 14px 14px 0}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn.disabled{color:var(--f-text-07);border-color:var(--f-neutral-05);background:var(--f-neutral-08);box-shadow:none}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn+.verify-title-btn{margin-left:-1px}.f-verify-detail .f-verify-forms-title .btn-group .verify-title-btn.f-state-selected{color:var(--f-text-00);border-color:var(--f-theme-03);background:var(--f-theme-04);box-shadow:0 4px 10px 0 rgba(var(--f-theme-03),.2)}.f-verify-detail .f-verify-forms-title .f-verify-close{color:var(--f-text-07)}.f-verify-detail .f-verify-forms-list .f-verify-list-content{padding:0}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list{border-top:1px dotted var(--f-neutral-05)!important;padding:.5rem .875rem .5rem 2.5rem}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list:last-child{border:none}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-icon{color:var(--f-semantic-danger-01)}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-icon.list-warning{color:var(--f-semantic-warning-01)}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-con .list-title{font-size:.875rem;color:var(--f-text-02);line-height:1.375rem}.f-verify-detail .f-verify-forms-list .f-verify-list-content .f-verify-list .list-con .list-msg{font-size:.75rem;color:rgba(var(--f-text-06),.9);line-height:1.25rem}.f-verify-detail .f-verify-nums{border-radius:6px!important;background:var(--f-semantic-danger-03);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-15-rgb),.15)}@font-face{font-family:FarrisIcons;font-style:normal;font-weight:400;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI2JE+JAAABjAAAAGBjbWFwTohH7gAAC/AAACWUZ2x5ZqfrFDEAADaIAAH0DGhlYWQnvvaKAAAA4AAAADZoaGVhCNUHTgAAALwAAAAkaG10eApz/50AAAHsAAAKBGxvY2GWVxNEAAAxhAAABQRtYXhwA6wBEAAAARgAAAAgbmFtZchH0mwAAiqUAAACi3Bvc3QSpDltAAItIAAAK3cAAQAAA4D/gABcBVX/9v/3BQAAAQAAAAAAAAAAAAAAAAAAAoEAAQAAAAEAAGP+/t1fDzz1AAsEAAAAAADh1NlIAAAAAOHU2Uj/9v9xBQADjAAAAAgAAgAAAAAAAAABAAACgQEEACEAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQEAgGQAAUAAAKJAswAAACPAokCzAAAAesAMgEIAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOAA7LcDgP+AAAAD3ACPAAAAAQAAAAAAAAAAAAAAAAACBAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQA//8EAP//BAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAQAABAD/+QQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/5BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/2BAD/9gQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//kEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAP//BAD//wQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEVQAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABEQAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEkgAABJIAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAASSAAAEAAAABJIAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAP/9BAAAAAQAAAAEAAAABAD//wQA//8EAP/9BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAREAAAEAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP//BAAAAAQAAAAEAAAABAAAAAQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//8EAP//BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQ8AAAENf/+BAAAAAQA//8EAAAABAD//wQAAAAEAP//BAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQB//4ETgAABAAAAAVVAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE/wAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQA//8EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAAHMAABAAAAAAYqAAMAAQAAACwAAwAKAAAHMAAEBf4AAAA4ACAABAAY4DLhSeIO4wrlKuYr5kPmmua85tfnBegs6SLrGOs/60/rb+t/64nrqeu568nr2evp6/nsqey3//8AAOAA4QDiAOMA5QDmAOYt5kXmvObX5wDoAOkA6wTrGutB61HrceuB65rrsOvA69Dr4evw7KDssP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAOACcAS4BSgFeAbICCAI0At4C3gLeAugDQAOEA6wD9gQSBE4EagR6BJgEqgS8BM4E3gTwBQIAAAGPAGsAZgBhAoACfgJ/An0AZwBlAGIAZAJzAnECcgJwAngAYwBsAnwCegJ7AnkAbQBoAGkAagBeAA8AEQAVABMAEgBYAFMCdgJ3AnUBrwBSAFYAUQBZAF0AXwBgAFoCbwBOAFUCXgAEAE8AWwA5ABQAOgA9AAMBrwA/AFwASwJ0AEYAQgBKADwANwA7ADgAPgAKAAgABwBAACECawJsAEgCagHpAm0AKgHoAm4AIwAkACkAJgAWAA0AJQBBAEUATABJAEQARwAoACcAIAAiADYALgAvADIBsAA1Ak4ATQBDAAkCaQBXADQAFwAMADEALQAsADMAMAArAB0AGgAZAAsAHwAbABwAGAAeAAYABQAQAFAAVAGOAYUBiQGMAmgCZwHnAkkCQAGHAYsCSAJHAY0BiAGGAYoBfAGDAX8BgQGCAYABewGEAX4BfQF1AXMBcQFyAXkBdwF6AXQBeAF2AWoBbQFvAWcBaQFsAW4BcAFoAWsBZgFiAV0BZAFfAWEBYwFeAWUBYAFDAUgBSQFAAUIBRgFHAUUBQQFPAVABTQFLAU4BTAFEAVwBWgFbAVYBVAFXAVgBVQFZAVIBUwFKAVEBAAECAQEA/wD6ASYBPQEsATsBOQEvAPsBKgE0APwBBwEJAREBCgEIAQ0BBgEFAQ4BAwEQATMBIQEgAPUAkAE3ARkBMgD4AI4AigEkAI8AiwEXAP0BOgE+AT8BMQD+ARUBEwESAR8A+QEbARQBGAEaATUBIgDzASMBKwELARwBHgEoAScBJQEtATgBNgEEAQwBFgD3APIBKQD0AS4BMAE8AR0BDwCMAI0AngCXAJ8AkQCTAJ0AqACmAKAApwClAKsAnACWAJIAlACbAJoAlQCYAH4AfACjAKQAqgCtAK4AoQB9AIEAiQCHAIQAiACAAIYAhQB7AKkB5wD2AIIAfwCDAG4AegB5AHgAdwB2AHMAdAB1AHIAcQBvAHAArACiAJkA5gDsAOsA7gDpAOoA7wDnAOMA5ADwAO0A5QDoAPEA2QDbANoA4gDcAN4A3QDfAOAA4QDXANAA0wDRANYA1QDUANIAzwDYAMYAzADIAMkAxQDOAMoAxwDNAMsAwQDAAMMAvADCALsAxAC/AL0AvgCwALkArwC1ALQAtgCyALgAsQC6ALcAswJfAlwCYAJmAmUCZAJjAmICYQJdAlsCWgJZAlMCVgJRAlICVAJVAlcCWAJQAk8CTgJNAkwBsAJLAkoCRQJGAkECQgJDAkQCMQIwAj8CPgI9AjwCOwI4AjkCOgIzAjQCNQI2AjcCMgIvAi4CLQIsAisCKgIpAigCJwImAiUCJAIjAiICIAIhAh8CHgIdAhwCGwIaAhkCGAIXAhYCFQIUAhMCEgIRAhACDwIOAg0CDAILAgoCCQIIAgcCBgIFAgQCAwICAgECAAH/Af4B/QH8AfsB+gH5AfgB9wH2AfUB9AHzAfIB8QHwAe8B7gHtAewBrwHrAeoB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdIB0QHQ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AAAAhAAA5pUAAOaVAAAAiAAA5pYAAOaWAAAAgAAA5pcAAOaXAAAAhgAA5pgAAOaYAAAAhQAA5pkAAOaZAAAAewAA5poAAOaaAAAAqQAA5rwAAOa8AAAB5wAA5tcAAObXAAAA9gAA5wAAAOcAAAAAggAA5wEAAOcBAAAAfwAA5wIAAOcCAAAAgwAA5wMAAOcDAAAAbgAA5wQAAOcEAAAAegAA5wUAAOcFAAAAeQAA6AAAAOgAAAAAeAAA6AEAAOgBAAAAdwAA6AIAAOgCAAAAdgAA6AMAAOgDAAAAcwAA6AQAAOgEAAAAdAAA6AUAAOgFAAAAdQAA6AYAAOgGAAAAcgAA6AcAAOgHAAAAcQAA6AgAAOgIAAAAbwAA6AkAAOgJAAAAcAAA6AoAAOgKAAAArAAA6AsAAOgLAAAAogAA6AwAAOgMAAAAmQAA6A0AAOgNAAAA5gAA6A4AAOgOAAAA7AAA6A8AAOgPAAAA6wAA6BAAAOgQAAAA7gAA6BEAAOgRAAAA6QAA6BIAAOgSAAAA6gAA6BMAAOgTAAAA7wAA6BQAAOgUAAAA5wAA6BUAAOgVAAAA4wAA6BYAAOgWAAAA5AAA6BcAAOgXAAAA8AAA6BgAAOgYAAAA7QAA6BkAAOgZAAAA5QAA6BoAAOgaAAAA6AAA6BsAAOgbAAAA8QAA6BwAAOgcAAAA2QAA6B0AAOgdAAAA2wAA6B4AAOgeAAAA2gAA6B8AAOgfAAAA4gAA6CAAAOggAAAA3AAA6CEAAOghAAAA3gAA6CIAAOgiAAAA3QAA6CMAAOgjAAAA3wAA6CQAAOgkAAAA4AAA6CUAAOglAAAA4QAA6CYAAOgmAAAA1wAA6CcAAOgnAAAA0AAA6CgAAOgoAAAA0wAA6CkAAOgpAAAA0QAA6CoAAOgqAAAA1gAA6CsAAOgrAAAA1QAA6CwAAOgsAAAA1AAA6QAAAOkAAAAA0gAA6QEAAOkBAAAAzwAA6QIAAOkCAAAA2AAA6QMAAOkDAAAAxgAA6QQAAOkEAAAAzAAA6QUAAOkFAAAAyAAA6QYAAOkGAAAAyQAA6QcAAOkHAAAAxQAA6QgAAOkIAAAAzgAA6QkAAOkJAAAAygAA6QoAAOkKAAAAxwAA6QsAAOkLAAAAzQAA6QwAAOkMAAAAywAA6Q0AAOkNAAAAwQAA6Q4AAOkOAAAAwAAA6Q8AAOkPAAAAwwAA6RAAAOkQAAAAvAAA6REAAOkRAAAAwgAA6RIAAOkSAAAAuwAA6RMAAOkTAAAAxAAA6RQAAOkUAAAAvwAA6RUAAOkVAAAAvQAA6RYAAOkWAAAAvgAA6RcAAOkXAAAAsAAA6RgAAOkYAAAAuQAA6RkAAOkZAAAArwAA6RoAAOkaAAAAtQAA6RsAAOkbAAAAtAAA6RwAAOkcAAAAtgAA6R0AAOkdAAAAsgAA6R4AAOkeAAAAuAAA6R8AAOkfAAAAsQAA6SAAAOkgAAAAugAA6SEAAOkhAAAAtwAA6SIAAOkiAAAAswAA6wQAAOsEAAACXwAA6wUAAOsFAAACXAAA6wYAAOsGAAACYAAA6wcAAOsHAAACZgAA6wgAAOsIAAACZQAA6wkAAOsJAAACZAAA6woAAOsKAAACYwAA6wsAAOsLAAACYgAA6wwAAOsMAAACYQAA6w0AAOsNAAACXQAA6w4AAOsOAAACWwAA6w8AAOsPAAACWgAA6xAAAOsQAAACWQAA6xEAAOsRAAACUwAA6xIAAOsSAAACVgAA6xMAAOsTAAACUQAA6xQAAOsUAAACUgAA6xUAAOsVAAACVAAA6xYAAOsWAAACVQAA6xcAAOsXAAACVwAA6xgAAOsYAAACWAAA6xoAAOsaAAACUAAA6xsAAOsbAAACTwAA6xwAAOscAAACTgAA6x0AAOsdAAACTQAA6x4AAOseAAACTAAA6x8AAOsfAAABsAAA6yAAAOsgAAACSwAA6yEAAOshAAACSgAA6yIAAOsiAAACRQAA6yMAAOsjAAACRgAA6yQAAOskAAACQQAA6yUAAOslAAACQgAA6yYAAOsmAAACQwAA6ycAAOsnAAACRAAA6ygAAOsoAAACMQAA6ykAAOspAAACMAAA6yoAAOsqAAACPwAA6ysAAOsrAAACPgAA6ywAAOssAAACPQAA6y0AAOstAAACPAAA6y4AAOsuAAACOwAA6y8AAOsvAAACOAAA6zAAAOswAAACOQAA6zEAAOsxAAACOgAA6zIAAOsyAAACMwAA6zMAAOszAAACNAAA6zQAAOs0AAACNQAA6zUAAOs1AAACNgAA6zYAAOs2AAACNwAA6zcAAOs3AAACMgAA6zgAAOs4AAACLwAA6zkAAOs5AAACLgAA6zoAAOs6AAACLQAA6zsAAOs7AAACLAAA6zwAAOs8AAACKwAA6z0AAOs9AAACKgAA6z4AAOs+AAACKQAA6z8AAOs/AAACKAAA60EAAOtBAAACJwAA60IAAOtCAAACJgAA60MAAOtDAAACJQAA60QAAOtEAAACJAAA60UAAOtFAAACIwAA60YAAOtGAAACIgAA60cAAOtHAAACIAAA60gAAOtIAAACIQAA60kAAOtJAAACHwAA60oAAOtKAAACHgAA60sAAOtLAAACHQAA60wAAOtMAAACHAAA600AAOtNAAACGwAA604AAOtOAAACGgAA608AAOtPAAACGQAA61EAAOtRAAACGAAA61IAAOtSAAACFwAA61MAAOtTAAACFgAA61QAAOtUAAACFQAA61UAAOtVAAACFAAA61YAAOtWAAACEwAA61cAAOtXAAACEgAA61gAAOtYAAACEQAA61kAAOtZAAACEAAA61oAAOtaAAACDwAA61sAAOtbAAACDgAA61wAAOtcAAACDQAA610AAOtdAAACDAAA614AAOteAAACCwAA618AAOtfAAACCgAA62AAAOtgAAACCQAA62EAAOthAAACCAAA62IAAOtiAAACBwAA62MAAOtjAAACBgAA62QAAOtkAAACBQAA62UAAOtlAAACBAAA62YAAOtmAAACAwAA62cAAOtnAAACAgAA62gAAOtoAAACAQAA62kAAOtpAAACAAAA62oAAOtqAAAB/wAA62sAAOtrAAAB/gAA62wAAOtsAAAB/QAA620AAOttAAAB/AAA624AAOtuAAAB+wAA628AAOtvAAAB+gAA63EAAOtxAAAB+QAA63IAAOtyAAAB+AAA63MAAOtzAAAB9wAA63QAAOt0AAAB9gAA63UAAOt1AAAB9QAA63YAAOt2AAAB9AAA63cAAOt3AAAB8wAA63gAAOt4AAAB8gAA63kAAOt5AAAB8QAA63oAAOt6AAAB8AAA63sAAOt7AAAB7wAA63wAAOt8AAAB7gAA630AAOt9AAAB7QAA634AAOt+AAAB7AAA638AAOt/AAABrwAA64EAAOuBAAAB6wAA64IAAOuCAAAB6gAA64MAAOuDAAAB5gAA64QAAOuEAAAB5QAA64UAAOuFAAAB5AAA64YAAOuGAAAB4wAA64cAAOuHAAAB4gAA64gAAOuIAAAB4QAA64kAAOuJAAAB4AAA65oAAOuaAAAB3wAA65sAAOubAAAB3gAA65wAAOucAAAB3QAA650AAOudAAAB3AAA654AAOueAAAB2wAA658AAOufAAAB2gAA66AAAOugAAAB2QAA66EAAOuhAAAB2AAA66IAAOuiAAAB1wAA66MAAOujAAAB1gAA66QAAOukAAAB1QAA66UAAOulAAAB1AAA66YAAOumAAAB0wAA66cAAOunAAAB0gAA66gAAOuoAAAB0QAA66kAAOupAAAB0AAA67AAAOuwAAABzwAA67EAAOuxAAABzgAA67IAAOuyAAABzQAA67MAAOuzAAABzAAA67QAAOu0AAABywAA67UAAOu1AAABygAA67YAAOu2AAAByQAA67cAAOu3AAAByAAA67gAAOu4AAABxwAA67kAAOu5AAABxgAA68AAAOvAAAABxQAA68EAAOvBAAABxAAA68IAAOvCAAABwwAA68MAAOvDAAABwgAA68QAAOvEAAABwQAA68UAAOvFAAABwAAA68YAAOvGAAABvwAA68cAAOvHAAABvgAA68gAAOvIAAABvQAA68kAAOvJAAABvAAA69AAAOvQAAABuwAA69EAAOvRAAABugAA69IAAOvSAAABuQAA69MAAOvTAAABuAAA69QAAOvUAAABtwAA69UAAOvVAAABtgAA69YAAOvWAAABtQAA69cAAOvXAAABtAAA69gAAOvYAAABswAA69kAAOvZAAABsgAA6+EAAOvhAAABsQAA6+IAAOviAAABsAAA6+MAAOvjAAABrwAA6+QAAOvkAAABrgAA6+UAAOvlAAABrQAA6+YAAOvmAAABrAAA6+cAAOvnAAABqwAA6+gAAOvoAAABqgAA6+kAAOvpAAABqQAA6/AAAOvwAAABqAAA6/EAAOvxAAABpwAA6/IAAOvyAAABpgAA6/MAAOvzAAABpQAA6/QAAOv0AAABpAAA6/UAAOv1AAABowAA6/YAAOv2AAABogAA6/cAAOv3AAABoQAA6/gAAOv4AAABoAAA6/kAAOv5AAABnwAA7KAAAOygAAABngAA7KEAAOyhAAABnQAA7KIAAOyiAAABnAAA7KMAAOyjAAABmwAA7KQAAOykAAABlgAA7KUAAOylAAABlQAA7KYAAOymAAABlAAA7KcAAOynAAABkwAA7KgAAOyoAAABkgAA7KkAAOypAAABkQAA7LAAAOywAAABkAAA7LEAAOyx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Ad8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCAAphLWNodWxpcmVuCmNsb2NrLWVjYjUKY2xvY2stZTEwNwllMTAwLXVuZG8OZTIwOS1zdWJ0aXRsZXMHZTIwOC1oZBJlMTE3LWNhbmNlbC1jaXJjbGUTZTExNi1jYW5jZWwtb3V0bGluZQxlMTNkLXByZXZpZXcLZTExNS1jYW5jZWwEc3RvcApjYWxjdWxhdG9yDHNvcnQtZGVzYy1zbQ5lbmNsb3N1cmVfZWRpdBJlMDFjLWFycm93LXBhcmVudDENZTIwYS1wbGF5bGlzdBBlMDFkLWFycm93LXJvb3QxEWUwMjAtYXJyb3dzLXN3YXAxF2UwMWYtYXJyb3dzLWRpbWVuc2lvbnMxE2UxMDQtbm9uLXJlY3VycmVuY2UVZTAxZS1hcnJvd3MtcmVzaXppbmcxEGUxMjctc29ydC1hc2Mtc20IZTE0MS1wYW4OZTIwNi12b2x1bWUtdXAKZTIwMS1wYXVzZQllMjAwLXBsYXkMZTIwNC1mb3J3YXJkEGUyMDUtdm9sdW1lLWRvd24UZTE0OS1rcGktc3RhdHVzLW9wZW4PZTIwNy12b2x1bWUtb2ZmC2UyMDMtcmV3aW5kDWUxMzItZG93bmxvYWQSZTExOS1jaGVjay1vdXRsaW5lC2UxMzMtdXBsb2FkEmUxMjMtbWludXMtY2lyY2xlMQ1lMTI0LXNvcnQtYXNjC2UxMjktZmlsdGVyC2UxMjYtdW5zb3J0C2UxMzEtbG9nb3V0CmUxMzAtbG9naW4OZTEyNS1zb3J0LWRlc2MQZTEyMC1wbHVzLWNpcmNsZRRlMTQ4LWtwaS1zdGF0dXMtaG9sZAxlMTQ1LXBsdXMtc20OZTE0NC1jb25uZWN0b3IWZTEzNS1oeXBlcmxpbmstb3Blbi1zbQtlMTM2LWxhdW5jaBRlMTQ3LWtwaS1zdGF0dXMtZGVueQllMTQzLWNhcnQLZTEzNy13aW5kb3cNZTE0Ni1taW51cy1zbQ1lMTQwLXpvb20tb3V0FGUxMzktd2luZG93LW1pbmltaXplE2UxMzQtaHlwZXJsaW5rLW9wZW4SZTExMS1saW5rLXZlcnRpY2FsCWUxMTMtbG9jawtlMTAzLXJlbG9hZA1lMTA1LXJlc2V0LXNtFGUxMTItdW5saW5rLXZlcnRpY2FsFmUxMTAtdW5saW5rLWhvcml6b250YWwOZTEwNi1yZWxvYWQtc20LZTExNC11bmxvY2sLZTEwOS1mbG9wcHkKZTExOC1jaGVjaxFlMTJhLWZpbHRlci1jbGVhchJlMTBlLWF0dGFjaG1lbnQtNDULZTEzYy13cmVuY2gaZTEyZS1maWx0ZXItYWRkLWV4cHJlc3Npb24OZTEyYi1maWx0ZXItc20PZTEwZC1hdHRhY2htZW50FWUxMmYtZmlsdGVyLWFkZC1ncm91cBJlMTFjLWNsb3NlLW91dGxpbmUYZTEyZC1maWx0ZXItc29ydC1kZXNjLXNtFGUxMGYtbGluay1ob3Jpem9udGFsCGUxMGItZGl0F2UxMmMtZmlsdGVyLXNvcnQtYXNjLXNtCmUxM2ItZ2VhcnMJZTAzMC1tZW51CWUxMDEtcmVkbwplMjBiLWF1ZGlvEmUwMjktbGF5b3V0LTEtYnktNBFlMDI3LWhhbmRsZXItZHJhZw9lMDIyLWNhdGVnb3JpemUMZTIwYy1wbGF5LXNtEmUwMzEtbW9yZS12ZXJ0aWNhbAtlMDI4LWxheW91dAxlMTNmLXpvb20taW4SZTAyMS1kcmFnLWFuZC1kcm9wEmUwMmEtbGF5b3V0LTItYnktMgllMDJlLXJvd3MKZTEwMi1yZXNldAplMTBhLXByaW50GGUwMmItbGF5b3V0LXNpZGUtYnktc2lkZRBlMDFiLWFycm93LWRyaWxsE2UwMmMtbGF5b3V0LXN0YWNrZWQMZTAyZC1jb2x1bW5zFWUwMDMtYXJyb3ctNDUtdXAtbGVmdBNlMDBhLWFycm93LWVuZC1kb3duFWUwMTEtYXJyb3dzLW5vLWNoYW5nZQtlMDBiLXNlZWstdxRlMDA5LWFycm93LWVuZC1yaWdodBdlMDAyLWFycm93LTQ1LWRvd24tbGVmdBFlMDA4LWFycm93LWVuZC11cBBlMDE4LWFycm93LXJpZ2h0D2UwMTktYXJyb3ctZG93bg9lMDFhLWFycm93LWxlZnQYZTAwMS1hcnJvdy00NS1kb3duLXJpZ2h0GGUwMTItYXJyb3ctb3ZlcmZsb3ctZG93bg1lMDE3LWFycm93LXVwFmU3MDMtbWFya2VyLXBpbi10YXJnZXQNZTgwOC1kaWdnLWJveAplODA5LWVtYWlsCWU4MDctZGlnZxJlODA2LWRlbGljaW91cy1ib3gMZTgwMy1ibG9nZ2VyEGU4MDQtYmxvZ2dlci1ib3gOZTgwNS1kZWxpY2lvdXMKZTgwMi1pbmJveAllODAxLXVzZXIKZTgwMC1zaGFyZQplNzA1LXVucGluCGU3MDQtcGluDmU2OTktZm9udC1zaXplEGU2ODktcGFuZS1mcmVlemUcZTY5MC10b2dnbGUtZnVsbC1zY3JlZW4tbW9kZRJlNjg4LXRhYmxlLXVubWVyZ2UKZTcwMS1nbG9iZRJlNjk2LWN1c3RvbS1mb3JtYXQPZTY5MS1mb3JtdWxhLWZ4EmU3MDAtZ2xvYmUtb3V0bGluZQ9lNzAyLW1hcmtlci1waW4LZTY5NC1kb2xsYXIVZTY5OC1kZWNpbWFsLWRlY3JlYXNlFWU2OTctZGVjaW1hbC1pbmNyZWFzZQtlNjkzLXN5bWJvbAxlNjk1LXBlcmNlbnQIZTY5Mi1zdW0TZTY0My10ZXh0Ym94LWhpZGRlbhVlNjQ3LXRlbXBsYXRlLW1hbmFnZXIUZTY3Mi1oeXBlcmxpbmstZ2xvYmUbZTY3My1oeXBlcmxpbmstZ2xvYmUtcmVtb3ZlDGU2NDItdGV4dGJveA9lNjQ2LWVkaXQtdG9vbHMLZTYzZC1idXR0b24KZTY3Ny10YWJsZRFlNjgyLXRhYmxlLWRlbGV0ZRVlNjc4LXRhYmxlLXByb3BlcnRpZXMQZTY4My1jZWxscy1tZXJnZRxlNjg2LWNlbGwtc3BsaXQtaG9yaXpvbnRhbGx5FmU2ODEtdGFibGUtY2VsbC1kZWxldGULZTY3NS1hbmNob3IbZTY4Ny1jY2VsbC1zcGxpdC12ZXJ0aWNhbGx5EWU4MGMtZmFjZWJvb2stYm94G2U2ODUtY2VsbHMtbWVyZ2UtdmVydGljYWxseR1lNjg0LWNlbGxzLW1lcmdlLWhvcml6b250YWxseRVlNjgwLXRhYmxlLXJvdy1kZWxldGUPZTY3OS10YWJsZS1jZWxsFGU2NzQtaHlwZXJsaW5rLWVtYWlsF2U2NzYtdGFibGUtbGlnaHQtZGlhbG9nHmU2N2MtdGFibGUtY29sdW1uLWluc2VydC1yaWdodBRlNjhmLXZhbGlkYXRpb24tZGF0YQ1lODBiLWZjYWVib29rD2U2OGEtcm93LWZyZWV6ZRJlNjhiLWNvbHVtbi1mcmVlemUbZTY3ZS10YWJsZS1yb3ctaW5zZXJ0LWJlbG93HWU2N2ItdGFibGUtY29sdW1uLWluc2VydC1sZWZ0G2U2N2QtdGFibGUtcm93LWluc2VydC1hYm92ZRplNjdhLXRhYmxlLWNlbGwtcHJvcGVydGllcxxlNjlhLWltYWdlLWFic29sdXRlLXBvc2l0aW9uEmU2OGMtdG9vbGJhci1mbG9hdBhlNjdmLXRhYmxlLWNvbHVtbi1kZWxldGUOZTgwYS1lbWFpbC1ib3gSZTY4ZC1zcGVsbC1jaGVja2VyFWU2OGUtdmFsaWRhdGlvbi14aHRtbAhlOTE5LWNzcwplOTE3LWh0bWw1B2U5MWYtdmILZTkxZC12YnByb2oUZTkyMi1maWxlLWhvcml6b250YWwIZTkxYi1leGUHZTkxYS1qcwtlOTFjLWNzcHJvagplOTIxLWNsb3VkB2U5MWUtY3MJZTkxOC1odG1sCGU5MjAtc2xuDmU5MTItZmlsZS1hc2N4D2U5MTAtZmlsZS1mbGFzaAllOTE1LWZpbG0JZTkxNi1jc3MzDWU5MTQtZmlsZS16aXANZTkwZS1maWxlLXBkZg1lOTBkLWZpbGUtcHB0EGU5MTEtZmlsZS1jb25maWcNZTkwZi1maWxlLXBzZA1lOTEzLWZpbGUtYmFjDWU5MDctZmlsZS1hZGQOZTkwMy1mb2xkZXItdXAPZTkwYS1maWxlLWV4Y2VsFWU5MDUtYWdncmVnYXRlLWZpZWxkcwllOTA2LWZpbGUIZTkwOS1jc3YIZTkwYy1tZGIQZTkwNC1mb2xkZXItbW9yZQ5lOTBiLWZpbGUtd29yZA1lOTA4LWZpbGUtdHh0EGU5MDEtZm9sZGVyLW9wZW4IZTgyNy1yc3MKZTgyOS12aW1lbwtlOTAwLWZvbGRlcgxlODI4LXJzcy1ib3gQZTgyYy15b3V0dWJlLWJveAxlODJiLXlvdXR1YmUOZTgyYS12aW1lby1ib3gRZTgyNi1kcmliYmJsZS1ib3gPZTkwMi1mb2xkZXItYWRkFmU4MWMtdGVsbC1hLWZyaWVuZC1ib3gPZTgxZS10dW1ibHItYm94C2U4MWQtdHVtYmxyEGU4MjAtdHdpdHRlci1ib3gPZTgyMi15YW1tZXItYm94C2U4MjEteWFtbWVyDGU4MjMtYmVoYW5jZRBlODI0LWJlaGFuY2UtYm94DWU4MjUtZHJpYmJibGUMZTgxZi10d2l0dGVyDmU4MTUtcGludGVyZXN0EmU4MTYtcGludGVyZXN0LWJveBFlODE5LXN0dW1ibGUtdXBvbgtlODBkLWdvb2dsZRBlODE0LW15c3BhY2UtYm94FWU4MWEtc3R1bWJsZS11cG9uLWJveA1lODExLWxpbmtlZGluEWU4MTItbGlua2VkaW4tYm94EGU4MGYtZ29vZ2xlLXBsdXMPZTgwZS1nb29nbGUtYm94D2U4MTgtcmVkZGl0LWJveBRlODEwLWdvb2dsZS1wbHVzLWJveAxlODEzLW15c3BhY2ULZTgxNy1yZWRkaXQSZTgxYi10ZWxsLWEtZnJpZW5kEHN0cmlwLWNzcy1mb3JtYXQOdmlkZW8tZXh0ZXJuYWwTc3RyaXAtc3Bhbi1lbGVtZW50cwpzZWxlY3QtYWxsGHRhYmxlLWFsaWduLWJvdHRvbS1yaWdodBNzdHJpcC1hbGwtZm9ybWF0aW5nCHRleHRhcmVhCmltYWdlLWVkaXQJdGV4dC13cmFwGHRhYmxlLWFsaWduLW1pZGRsZS1yaWdodBJ0YWJsZS1hbGlnbi1yZW1vdmUNdHJhY2stY2hhbmdlcxh0cmFjay1jaGFuZ2VzLXJlamVjdC1hbGwMYWxpZ24tcmVtb3ZlDGFsaWduLWNlbnRlcg1hbGlnbi1qdXN0aWZ5C2FsaWduLXJpZ2h0CWJvcmRlci1ubwxhcHBseS1mb3JtYXQLYm9yZGVyLWxlZnQNYm9yZGVyLWJvdHRvbQtib3JkZXJzLWFsbBdib3JkZXJzLWluc2lkZS12ZXJ0aWNhbA9ib3JkZXJzLW91dHNpZGUZYm9yZGVycy1pbnNpZGUtaG9yaXpvbnRhbARjb3B5CWNsZWFyLWNzcwpib3JkZXItdG9wDGJvcmRlci1yaWdodBtlNjcxLWh5cGVybGluay1saWdodC1kaWFsb2cRYm9yZGVycy1zaG93LWhpZGUOYm9yZGVycy1pbnNpZGUOZGljdGlvbmFyeS1hZGQLY3VzdG9tLWljb24HY29tbWVudBBkb2N1bWVudC1tYW5hZ2VyC2NvcHktZm9ybWF0D2NoYW5nZS1tYW51YWxseQ5jb21tZW50LXJlbW92ZQ1jYWxlbmRhci1kYXRlE2NvbW1lbnRzLXJlbW92ZS1hbGwQaW1hZ2UtbWFwLWVkaXRvcgNjdXQObW9kdWxlLW1hbmFnZXIFcGFzdGUSaW1hZ2UtbGlnaHQtZGlhbG9nDGNvZGUtc25pcHBldAxmb3JtLWVsZW1lbnQNbWVkaWEtbWFuYWdlcg1mbGFzaC1tYW5hZ2VyDXBhcmFncmFwaC1hZGQacGFzdGUtZnJvbS13b3JkLXN0cmlwLWZpbGUPcnVsZS1ob3Jpem9udGFsD3Bhc3RlLWZyb20td29yZA1wYXN0ZS1hcy1odG1sE3N0cmlwLWZvbnQtZWxlbWVudHMXdGFibGUtYWxpZ24tYm90dG9tLWxlZnQQZmluZC1hbmQtcmVwbGFjZRZ0YWJsZS1hbGlnbi10b3AtY2VudGVyCnBhc3RlLWh0bWwVc3RyaXAtd29yZC1mb3JtYXR0aW5nGXRhYmxlLWFsaWduLW1pZGRsZS1jZW50ZXIRZm9ybWF0LWNvZGUtYmxvY2sUdHJhY2stY2hhbmdlcy1yZWplY3QJZ3JvdXAtYm94BGZvcm0ZdGFibGUtYWxpZ24tYm90dG9tLWNlbnRlcgtzaWx2ZXJsaWdodBBwYXN0ZS1wbGFpbi10ZXh0CnNlbGVjdC1ib3gOcGFzdGUtbWFya2Rvd24XdGFibGUtYWxpZ24tbWlkZGxlLWxlZnQUdHJhY2stY2hhbmdlcy1lbmFibGUVdGFibGUtYWxpZ24tdG9wLXJpZ2h0DXN0eWxlLWJ1aWxkZXIUdGFibGUtYWxpZ24tdG9wLWxlZnQUdHJhY2stY2hhbmdlcy1hY2NlcHQYdHJhY2stY2hhbmdlcy1hY2NlcHQtYWxsEWEtZTYwNGZvbnQtZmFtaWx5EGEtZTYwOXN1Yi1zY3JpcHQWYS1lNjA1Zm9yZWdyb3VuZC1jb2xvcgphLWU2MDFib2xkCGEtZTYxMGg0E2EtZTYwOHN0cmlrZXRocm91Z2gXYS1lNjA2Y29udmVydC1sb3dlcmNhc2UXYS1lNjA3Y29udmVydC11cHBlcmNhc2UMYS1lNjAyaXRhbGljD2EtZTYwM3VuZGVybGluZRJhLWU2MWNhbGlnbi1ib3R0b20IYS1lNjBkaDEIYS1lNjBmaDMJYS1lNjBjYWxsCGEtZTYwZWgyEGEtZTYwYXN1cC1zY3JpcHQJYS1lNjBiZGl2EGEtZTYxZGFsaWduLWxlZnQPYS1lNjFhYWxpZ24tdG9wEmEtZTYxYmFsaWduLW1pZGRsZRVhLWU2MTVpbmRlbnQtaW5jcmVhc2UTYS1lNjE4aW5zZXJ0LW1pZGRsZRRhLWU2MTRsaXN0LXVub3JkZXJlZBVhLWU2MTZpbmRlbnQtZGVjcmVhc2UPYS1lNjE3aW5zZXJ0LXVwEWEtZTYxOWluc2VydC1kb3duCGEtZTYxMmg2EmEtZTYxM2xpc3Qtb3JkZXJlZAhhLWU2MTFoNRNhLWU1MjR0aHVtYm5haWxzLXVwFmEtZTUyOWZ1bGwtc2NyZWVuLWV4aXQVYS1lNTI2dGh1bWJuYWlscy1kb3duFWEtZTYwMHBhZ2UtcHJvcGVydGllcxVhLWU1Mjd0aHVtYm5haWxzLWxlZnQaYS1lNTIzYWxpZ24tYm90dG9tLWVsZW1lbnQRYS1lNTI4ZnVsbC1zY3JlZW4WYS1lNTI1dGh1bWJuYWlscy1yaWdodBFhLWU1MmFyZXNldC1jb2xvchphLWU1MjJhbGlnbi1taWRkbGUtZWxlbWVudBJhLWU1MWJiYWNrLWVsZW1lbnQZYS1lNTIwYWxpZ24tcmlnaHQtZWxlbWVudBVhLWU1MWNmb3J3YXJkLWVsZW1lbnQLYS1lNTE4c2hhcGUXYS1lNTIxYWxpZ24tdG9wLWVsZW1lbnQWYS1lNTFkYmFja3dhcmQtZWxlbWVudBNhLWU1MTlyb3VuZC1jb3JuZXJzGGEtZTUxZWFsaWduLWxlZnQtZWxlbWVudBNhLWU1MWFmcm9udC1lbGVtZW50GmEtZTUxZmFsaWduLWNlbnRlci1lbGVtZW50CmEtZTUxMGxpbmUZYS1lNTExYnJpZ2h0bmVzcy1jb250cmFzdAthLWU1MGZwYWludA9hLWU1MTVncmV5c2NhbGUNYS1lNTBlcGFsZXR0ZQ1hLWU1MTdzaGFycGVuE2EtZTUxM2ludmVydC1jb2xvcnMKYS1lNTE2Ymx1chBhLWU1MTJzYXR1cmF0aW9uEmEtZTUxNHRyYW5zcGVyYW5jeQxhLWU1MGFyb3RhdGUTYS1lNTA0em9vbS1iZXN0LWZpdAthLWU1MGRicnVzaBFhLWU1MGNyb3RhdGUtbGVmdAphLWU1MDZjcm9wE2EtZTUwOWZsaXAtdmVydGljYWwMYS1lNTA3bWlycm9yFWEtZTUwOGZsaXAtaG9yaXpvbnRhbBJhLWU1MDVpbWFnZS1yZXNpemUSYS1lNTBicm90YXRlLXJpZ2h0DWEtZTIwZXN0b3Atc20SYS1lNTAyaW1hZ2UtZXhwb3J0FGEtZTMwN3RyaS1zdGF0ZS1udWxsC2EtZTUwMWltYWdlE2EtZTMwMGhlYXJ0LW91dGxpbmUWYS1lNTAzem9vbS1hY3R1YWwtc2l6ZQxhLWUzMDhjaXJjbGULYS1lMzAxaGVhcnQSYS1lNTAwcGhvdG8tY2FtZXJhDmEtZTIwZHBhdXNlLXNtC2NvbGxhcHNlLW5lCXRodW1idGFjawtzLXRodW1idGFjawZtb3ZldG8NZmlsdGVyX2RlbGV0ZQ9maWx0ZXJfZ3JvdXBpbmcKZmlsdGVyX2FkZBNmaWx0ZXJfY2FuY2VsbGF0aW9uBnZlcm5hdgpjdy1hcnJvd2RlCGN3LWhvdGVsB2N3LXRyaXAFemhhZ2UHZGVuZ2hhbw10aXNoaXNodW9taW5nBERyYWcGYmlhbmppBmNoYWthbgJiZwRsaGp0CGR1bGltaW1hEXFpYW5taW5ncWlhbnpoYW5nBmZhbmt1aRRhLUNGX0Rlc2NlbmRpbmdPcmRlchNhLUNGX0FzY2VuZGluZ09yZGVyBWFib3V0CXl1bnhpYW94aRBlbmNsb3N1cmVfZGVsZXRlEmVuY2xvc3VyZV9kb3dubG9hZBBlbmNsb3N1cmVfdXBsb2FkEGVuY2xvc3VyZV9icm93c2UKdXBsb2FkX2JpZw9jYWxlbmRhcnNfbGluZTEJbW9yZV9saW5lDmRyb3AtZG93bl9saW5lEHBlcnNwZWN0aXZlX3ZpZXcKY2hhcnRfdmlldwlmb3JtX3ZpZXcJbGlzdF92aWV3CWNhcmRfdmlldwtyZW1vdmVfZmFjZQtkdWl6aGFuZ2Rhbg1kaXpoaXNoZW5xaW5nDWppbmd4aWFvcmVud3UHYmFpZmFuZwprZWh1Z3VhbnhpCGZheXVuZGFuCWxpYW54aXJlbg1mdWt1YW50b25nemhpD2thaXBpYW9zaGVucWluZw94aWFvc2hvdWRhY2hlbmcOeGlhb3Nob3VxaWFubGkOeGlhb3Nob3VtdWJpYW8Nc2h1anVzaGFuZ2Jhbwx4dWtlc2hhbmdwaW4Jemhlbmd6aGFvDHhpYW9zaG91eXVjZQ94aWFvc2hvdXR1YW5kdWkFaGVscDELaW5mby1jaXJjbGUKZGVwYXJ0bWVudARjb2RlBHBhdGgPZmxvd2xpbmUtbWFudWFsDWZsb3dsaW5lLW1vcmUSZmxvd2xpbmUtc2NoZWR1bGVkEWZsb3dsaW5lLWNhbmNlbGVkEGZsb3dsaW5lLXBlbmRpbmcMZmxvd2xpbmUtcnVuEGZsb3dsaW5lLWNyZWF0ZWQQZmxvd2xpbmUtcnVubmluZxBmbG93bGluZS13YWl0aW5nEGZsb3dsaW5lLXNraXBwZWQNZmxvd2xpbmUtdmlldxBmbG93bGluZS13YXJuaW5nC29yaWVudGF0aW9uBGxhc3QFZmlyc3QOeXVuaGFuZ3NoaWljb24aQ29sdW1uLWZpbHRlcmFuZGRlc2NlbmRpbmcZQ29sdW1uLWZpbHRlcmFuZGFzY2VuZGluZxxDb2x1bW5zLURlZmF1bHRmaWx0ZXJhbmRzb3J0DUNvbHVtbi1maWx0ZXISQ29sdW1ucy1kZXNjZW5kaW5nEUNvbHVtbnMtYXNjZW5kaW5nE0NvbHVtbnMtRGVmYXVsdHNvcnQPbGF1bmNocGFkLWZhY2UyCmxhdW5jaHBhZDIPZi1pY29uLWNoZWNrYm94DGYtaWNvbi1taW51cwpmLWljb24tYWRkCGRyb3Bkb3duCm5hdmlnYXRpb24Ray1pLW1lc3NhZ2VfZXJyb3ITay1pLW1lc3NhZ2Vfc3VjY2VzcwpzdWRva3UtbmV3CGxpc3QtbmV3CXRpbGVkLW5ldwxxaWVodWFuenV6aGkHcmFkaW8tMgZ0ZW5hbnQGc3Vkb2t1BXRpbGVkBWxpc3QxC3Nob3VjYW5namlhCmNvbGxlY3Rpb24DaWRlDG9jY2x1ZGUtZmFjZQdvY2NsdWRlDmxhdW5jaHBhZC1mYWNlCWxhdW5jaHBhZAtpbmZvcm1hdGlvbgdiYWNrbG9nB21lc3NhZ2UJbWF4aW1pemUxBnNlYXJjaAppbmRleC1mYWNlBWluZGV4CHl4c190ZXh0DXl4c19jb250YWluZXILeXhzX2NvbHVtbnMIeXhzX21vdmUIeXhzX2NvcHkKeXhzX2RlbGV0ZQl5eHNfbGV2ZWwJeXhzX2VhcnRoDXl4c19jdXN0b21pemUIc2lnbl9vdXQLdXNlcl9jZW50ZXIGcmVtb3ZlBnBhY2t1cAZjYW1lcmEGbmFycm93DWFtcGxpZmljYXRpb24JY2xvY2t3aXNlEGNvdW50ZXJjbG9ja3dpc2UGZWRpdG9yBHNraW4EYXJlYQhwYXNzd29yZAhsYW5ndWFnZQViYXNpYwhtaW5pbWl6ZQxtYXhpbWl6YXRpb24NbmV3LWRpbWVuc2lvbhFmaWxlLWZvbGRlci1jbG9zZRBmaWxlLWZvbGRlci1vcGVuCG5ldy1lZGl0CG5ldy1mb3JtBXdvbWFuA21hbgZyZWNvcmQEbW9yZQRsaXN0CXRlbGVwaG9uZQhmdW5jdGlvbgtwcm9kdWN0bGlzdA5hdHRhY2htZW50bGlzdBNkb2N1bWVudGluZm9ybWF0aW9uDG5ldy1maWx0cmF0ZQ5uZXctZnVsbHNjcmVlbgdyb29maW5nDUJvdHRvbXNldHRpbmcPcGFnZS10aXRsZS10YXNrEXBhZ2UtdGl0bGUtcmV2aWV3EHBhZ2UtdGl0bGUtc3RhcnQPcGFnZS10aXRsZS10eXBlEXBhZ2UtdGl0bGUtcmVjb3JkEnBhZ2UtdGl0bGUtdm91Y2hlchBwYWdlLXRpdGxlLXF1ZXJ5EXBhZ2UtdGl0bGUtbnVtYmVyEXBhZ2UtdGl0bGUtbWFuYWdlFnBhZ2UtdGl0bGUtbWFpbnRlbmFuY2UVcGFnZS10aXRsZS1kaWN0aW9uYXJ5GHBhZ2UtdGl0bGUtY29uZmlndXJhdGlvbhVwYWdlLXRpdGxlLWFkbWluaXN0ZXIRcGFnZS10aXRsZS1kZWZpbmUXdHJpLXN0YXRlLWluZGV0ZXJtaW5hdGUQcGFuZWwtcmV0cmFjdGlvbgtlZGl0LWJ1dHRvbg5pbnB1dC1sYW5ndWFnZRdhdHRyaWJ1dGUtY29uZmlndXJhdGlvbgtFbmdpbmVlcmluZwNnaXQTcmFkaW9idXR0b24tY2hlY2tlZAxzaGFwZS1jaXJjbGUQY2hlY2tib3gtY2hlY2tlZBVrLWktaG9tZS13ZWF0aGVyLWxlYWYNay1pLWhvbWUtbW9yZQ1rLWktaG9tZS1yaW5nDGstaS1ob21lLWFkZA5rLWktaG9tZS1zZXR1cA5rLWktaG9tZS13b21hbgxrLWktaG9tZS1tYW4Oay1pLXRvcF9hZ2VuY3kMay1pLXRvcF9uZXdzDGstaS10b3BfaG9tZRJrLWktdG9wX2ltX2RlZmF1bHQXay1pLXRvcF9kZXZlbG9wbWVudHRvb2wMay1pLXRvcF9tZW51DmstaS10b3Bfc2VhcmNoCmstaS10b3BfbXkPay1pLWZsYWdfdXJnZW50DGstaS1uZXh0cGFnZRBrLWktcHJldmlvdXNwYWdlE2staS1tZXNzYWdlX3JvdXRpbmUTay1pLUV4aGFsZS1EaXNjb3VudBNrLWktbW9yZS1ob3Jpem9udGFsEGstaS1tZXNzYWdlX2hlbHATay1pLW1lc3NhZ2Vfd2FybmluZxZrLWktc3RlcHMtZGVsaXZlcmdvb2RzFWstaS1zdGVwcy1yZWNlaXZhYmxlcxFrLWktc3RlcHMtaW52b2ljZRRrLWktc3RlcHMtb3V0b2ZzdG9jaxRrLWktc3RlcHMtc2V0dGxlbWVudBNrLWktc3RlcHMtdHJhbnNwb3J0DGstaS1ib29rbWFyaxBrLWktc3Rhci1vdXRsaW5lCGstaS16b29tEGstaS1jbG9zZS1jaXJjbGUQay1pLWNoZWNrLWNpcmNsZQlrLWktY2xvc2UQay1pLXBsdXMtb3V0bGluZRFrLWktbWludXMtb3V0bGluZQtrLWktcmVvcmRlcg1rLWktcmV3aW5kLXNtDmstaS1mb3J3YXJkLXNtE2staS1hcnJvdy1zZWVrLWRvd24Ray1pLWFycm93LXNlZWstdXAKay1pLWRlbGV0ZQlrLWktZ3JvdXAIay1pLWdyaWQPay1pLWdyaWQtbGF5b3V0DmstaS1hcnJvd3Mta3BpFmstaS1hcnJvdy1jaGV2cm9uLWxlZnQXay1pLWFycm93LWNoZXZyb24tcmlnaHQWay1pLWFycm93LWNoZXZyb24tZG93bhRrLWktYXJyb3ctY2hldnJvbi11cBFrLWktYXJyb3ctNjAtbGVmdAtrLWktYXJyb3ctZRFrLWktYXJyb3ctNjAtZG93bg9rLWktYXJyb3ctNjAtdXAAAAA=) format("truetype")}.f-page-root{top:0}.f-page{top:0;display:flex;flex-direction:column;background:#EFF2F4}.f-page-main{flex-shrink:1;flex-grow:1;flex-basis:0;background:var(--f-neutral-19);box-shadow:0 2px 20px 0 rgba(3,18,51,.05);margin:.5rem}.f-page-has-query .f-page-main,.f-page-has-scheme .f-page-main{box-shadow:1px 3px 4px 0 rgba(0,28,64,.04)}.f-page-main>.f-section:last-child{margin-bottom:0}.f-page-main>.f-section:last-child::after{display:none}.f-page-is-managelist .f-page-main,.f-page-is-managelistwithsidebar .f-page-main{display:flex;flex-direction:column;overflow:hidden}.f-page-has-scheme .f-page-header{border-radius:.5rem .5rem 0 0}.f-page-has-query .f-page-main{margin-top:-.75rem}.f-page-has-query .f-page-header{margin:.5rem .5rem 0;border-radius:.5rem .5rem 0 0}.f-page-navigate .f-page-main{display:flex;flex-direction:column;overflow:hidden}.f-page-navigate .f-page-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:row;flex-wrap:nowrap;overflow:hidden}.f-page-navigate .f-page-content>.col,.f-page-navigate .f-page-content>[class*=col-]{padding-left:0;padding-right:0}.f-page-navigate .f-page-content-nav{display:flex;flex-direction:column;box-shadow:none;padding:0;position:relative;z-index:100}.f-page-navigate .f-page-content-main>.f-section:last-child::after,.f-scrollspy-container .f-struct-subsub-wrapper::after{display:none}.f-page-navigate .f-page-content-nav-extend{padding:.875rem .875rem 0}.f-page-navigate .f-page-content-main{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto}.f-page-navigate .f-page-content-nav.f-component-splitter-pane{padding:0}.f-page-is-listnav .f-page-content-main{position:relative;margin:0 0 0 -.25rem}.f-page-is-listnav .f-page-content-main .f-section-query.f-section,.f-page-is-listnav .f-page-content-main .f-section-scheme.f-section{margin:.5rem .5rem 0;padding:.625rem .875rem .125rem}.f-page-is-listnav .f-page-content-main .f-page-header{margin:.5rem .5rem 0}.f-page-is-listnav .f-page-content-main .f-page-header-base{padding-left:.75rem;padding-right:.75rem}.f-page-is-listnav .f-page-content-main .f-page-footer{padding-left:.75rem;padding-right:.75rem;margin-bottom:.5rem}.f-page-is-grid-grid .f-page-content-main,.f-page-is-tree-grid .f-page-content-main{display:flex;flex-direction:column}.f-page-card .f-page-main{overflow:auto}.f-page-is-wizard .f-page-main{display:flex;flex-direction:column;overflow:hidden}.f-page-is-managelist .f-section+.f-section,.f-page-is-managelist .f-struct-wrapper+.f-struct-wrapper>.f-section{margin:.5rem 0 0}.f-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-content{flex-shrink:1;flex-grow:1;flex-basis:0}.f-struct-like-card{background:#fff;border-radius:4px;margin:0 0 .5rem}.f-page-is-mainsubcard .f-page-main,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content{margin:0}.f-page-is-mainsubcard .f-page-main::-webkit-scrollbar-track,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content::-webkit-scrollbar-track{background-color:#EFF2F4}.f-page-is-mainsubcard .f-page-main>.f-struct-like-card:last-child,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content>.f-struct-like-card:last-child{margin-bottom:0}.f-struct-subsub-wrapper{position:relative}.f-struct-subsub-wrapper::before{content:"";height:4px;background:#fff;display:block;margin:0 0 4px;box-shadow:2px 3px 3px 0 rgba(31,35,41,.08)}.f-struct-subsub-wrapper::after{content:"";position:absolute;width:16px;height:16px;background:#fff;top:-4px;left:50%;box-shadow:2px 2px 3px 0 rgba(31,35,41,.08);transform:rotate(45deg);z-index:100}.f-scrollspy-container .f-struct-subsub-wrapper{position:initial}.f-cmp-lib-portlet,.f-viewchange-content-item lib-portlet{height:100%}.f-area-hide{opacity:0;visibility:hidden;z-index:100;position:absolute;transform:scaleY(0);transform-origin:100% top;backface-visibility:hidden;transition:opacity .12s linear .12s,visibility .12s linear .12s,transform .12s linear .12s}.f-area-show{opacity:1;visibility:visible;transform:scaleY(1)}.f-page-is-listnav-with-header .f-page-content-main{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-page-content-main-extend{padding:20px 22px 0}.f-page-content-main-header{text-align:center}.f-page-content-main-header .f-title{margin:0 auto;font-size:20px}.f-page-content-main-header .f-description{margin:0 auto;color:var(--f-text-04)}.f-page-content-main-overflow{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:auto;padding:20px 22px}.f-page-content-main-overflow .f-struct-like-card{margin:0 auto;width:100%;max-width:1092px;box-shadow:none}.f-subgrid-by-table-footer{padding:0 .875rem}.f-subgrid-by-table-footer .btn{color:var(--f-semantic-info-01);background:var(--f-semantic-info-03);width:100%;justify-content:center;height:36px}.f-subgrid-by-table-footer .btn:disabled{color:var(--f-text-07);background:var(--f-neutral-08)}.f-section-oa-table .f-section-header .f-title{padding-left:0}.f-section-oa-table .f-section-header .f-title::before{display:none}.f-section-form.f-section{padding:.625rem 0 .25rem}.f-section-form .f-section-header{padding:0 .875rem;margin-bottom:.875rem}.f-form-layout{display:flex;flex-wrap:wrap}.f-form-layout .f-section-formgroup{flex:0 0 100%;max-width:100%}.f-section-formgroup .f-section-formgroup-legend{width:100%}.f-section-formgroup-legend{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between}.f-section-formgroup-legend .f-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;justify-content:flex-start;color:var(--f-text-04);flex-shrink:1;flex-grow:1;flex-basis:auto;padding:0 .875rem;cursor:pointer;font-size:.875rem}.f-section-formgroup-legend .f-toolbar{justify-content:flex-start}.f-section-formgroup-legend .f-toolbar .btn{border:none;display:flex;align-items:center;font-size:13px;padding-left:.375rem;padding-right:.375rem}.f-section-formgroup-legend .f-btn-collapse-expand{color:var(--f-text-04)}.f-section-formgroup-legend .f-btn-collapse-expand::after{margin:0;font-size:14px}.f-section-formgroup-legend:hover .f-title,.f-section-formgroup-legend:hover .f-toolbar .f-btn-collapse-expand{color:var(--f-theme-05)}.f-section-formgroup-legend:active .f-title,.f-section-formgroup-legend:active .f-toolbar .f-btn-collapse-expand{color:var(--f-theme-01)}.f-section-formgroup-legend.legend-with-toolbar{height:2rem}.f-section-formgroup-legend.legend-with-toolbar .f-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;flex-shrink:1;flex-grow:1;flex-basis:auto;border:1px solid var(--f-aid-08);padding:0 .875rem;height:1.875rem;background:var(--f-aid-09)}.f-section-formgroup-legend.legend-with-toolbar .f-title{font-size:.875rem;color:var(--f-text-02);flex-shrink:1;flex-grow:1;flex-basis:0;cursor:pointer}.f-section-formgroup-inputs{display:flex;flex-wrap:wrap}.f-section-formgroup.f-state-collapse .f-section-formgroup-inputs{display:none}.f-section-formgroup+.f-section-formgroup{margin:.375rem 0 0}.f-cmp-grid-is-sub{min-height:19.375rem}.farris-subgrid{min-height:25.625rem}.f-section-grid.f-section-in-main,.f-section-grid.f-section-in-managelist,.f-section-grid.f-section-in-nav{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section-grid.f-section-in-main .f-section-content,.f-section-grid.f-section-in-managelist .f-section-content,.f-section-grid.f-section-in-nav .f-section-content{flex-shrink:1;flex-grow:1;flex-basis:0;display:flex;flex-direction:column}.f-section-grid.f-section-in-main .f-component-grid,.f-section-grid.f-section-in-managelist .f-component-grid,.f-section-grid.f-section-in-nav .f-component-grid{flex-shrink:1;flex-grow:1;flex-basis:0}.f-section-extend-gridfilter,.f-tmpl-staticinfo-wrapper .staticinfo--header,.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title{display:flex;align-items:center}.f-section-grid .f-component-grid{overflow:hidden}.f-grid-is-sub,.f-grid-is-subsub{height:21.875rem}.f-section-extend-gridfilter{background:var(--f-aid-02);border:1px solid;border-radius:2px;height:2.375rem;padding:.25rem .875rem}.f-page .f-page::before,.f-page-has-scheme .f-page-main .f-page-header::before,.f-page-is-listnav::before,.f-page-is-midcard::before{display:none}.f-section-extend-gridfilter>*{margin:0 .625rem 0 0}.f-grid-is-sub .f-component-grid{flex-shrink:1;flex-grow:1;flex-basis:0;overflow:hidden}.f-page .f-page{background:0 0}.f-page .f-page .f-page-layout{box-shadow:none}.f-page .f-page .f-page-header{margin:0}.f-page .f-page .f-page-main{margin-right:0;margin-left:0;margin-bottom:0}.f-page .f-page-has-scheme .f-section-scheme.f-section{margin-top:0;margin-right:0;margin-left:0}.f-page .f-page-has-scheme .f-page-header{margin-top:.5rem}.f-page-header,.farris-header{box-shadow:none}.f-page-header+.f-page-main,.f-page-header+.farris-split-section,.farris-header+.f-page-main,.farris-header+.farris-split-section{margin-top:0}.f-page-main{border-radius:8px 8px 12px 12px}.f-struct-like-card{box-shadow:none}.f-page.f-page-card,.f-page.f-page-is-managelist,.f-page.f-page-is-managelistwithsidebar,.f-page.f-page-is-onepage,.f-page.f-page-navigate{z-index:10}.f-page.f-page-card::before,.f-page.f-page-is-managelist::before,.f-page.f-page-is-managelistwithsidebar::before,.f-page.f-page-is-onepage::before,.f-page.f-page-navigate::before{z-index:-1;position:absolute;content:"";top:.5rem;bottom:.5rem;left:.5rem;right:.5rem;background:var(--f-neutral-18);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-16),.1);border-radius:12px}.f-page-card .f-page-header,.f-page-card .farris-header,.f-page-is-managelist .f-page-header,.f-page-is-managelist .farris-header,.f-page-is-managelistwithsidebar .f-page-header,.f-page-is-managelistwithsidebar .farris-header,.f-page-is-onepage .f-page-header,.f-page-is-onepage .farris-header,.f-page-navigate .f-page-header,.f-page-navigate .farris-header{margin:.5rem .5rem 0;background:0 0}.f-page-footer{margin-left:.5rem;margin-right:.5rem;margin-bottom:.5rem;background:0 0}.f-page-main+.f-page-footer{margin-top:-.5rem}.f-page-navigate .f-page-main{background:rgba(255,255,255,.7);margin:0 .5rem .5rem}.f-page-navigate .f-page-content-nav{border-right:1px solid var(--f-neutral-07)}.f-page-navigate .f-page-content-nav.has-resize-bar{border-right:none}.f-page-navigate .f-page-content-nav .f-page,.f-page-navigate .f-page-content-nav .farris-main-area{background:0 0}.f-page-navigate .f-page-content-main .f-page-main{background:#fff}.f-page-headerextend{margin:.5rem .5rem 0}.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content{padding:0}.f-scrollspy-tabs{position:relative;box-shadow:0 -2px 20px 0 rgba(3,18,51,.05)!important;z-index:100}.f-scrollspy-tabs .f-scrollspy-monitor-btn.active::after{background-image:var(--f-theme-11);left:14px!important;right:14px!important;width:auto!important;margin:0!important}.f-page-is-midcard .f-page-header{margin:0;background:0 0;box-shadow:none}.f-page-has-scheme .f-page-header{margin:0 .5rem;background:var(--f-neutral-19);position:relative}.f-page-has-scheme .f-page-header::before{content:"";position:absolute;top:-1px;left:0;right:0;box-shadow:0 2px 20px 0 rgba(3,18,51,.05);bottom:5px;z-index:-1;border-radius:.5rem .5rem 0 0}.f-page-has-scheme .f-page-main{margin-top:-.5rem}.f-page-is-mainsubcard .f-page-main{margin:.5rem}.f-page-is-mainsubcard .f-page-header+.f-page-main,.f-page-is-mainsubcard .farris-header+.f-page-main{margin-top:0}.f-page-is-mainsubcard .f-page-main,.f-page-is-mainsubcard.f-page-is-sidescrollspy .f-page-main .f-scrollspy-content{padding:0}.f-page-is-listnav-with-header .f-page-main{background:0 0}.f-page-is-listnav-with-header .f-page-content-main{background:var(--f-neutral-18)}.f-page-is-listnav .f-page-content,.f-page-is-listnav .f-page-content .f-page-content-main .f-page-card,.f-page-is-listnav .f-page-content .f-page-content-main .f-page-is-managelist,.f-page-is-listnav .f-page-content .f-page-content-nav .f-page{background:0 0}.f-page-is-listnav>.f-page-main{margin:.5rem}.f-page-is-listnav .f-page-content .f-page-content-nav{padding:0;box-shadow:0 0 8px 0 rgba(0,28,64,.08);border-right:none}.f-page-is-listnav .f-page-content .f-page-content-nav .f-page::before{top:0;left:0;right:0;bottom:0;border-radius:0;display:block}.f-page-is-listnav .f-page-content .f-page-content-main{margin:0}.f-page-is-listnav .f-page-content .f-page-content-main .f-page-card::before,.f-page-is-listnav .f-page-content .f-page-content-main .f-page-is-managelist::before{top:0;left:0;right:0;bottom:0;border-radius:0;display:block}.f-page .f-list-nav .f-list-nav-in{background:0 0!important;box-shadow:none!important}.f-page.f-page-is-midcard{overflow-y:auto;display:block}.f-page.f-page-is-midcard::-webkit-scrollbar-track{background-color:#EFF2F4}.f-page-layout{background:var(--f-neutral-19);box-shadow:0 2px 8px 0 rgba(var(--f-neutral-16),.1);border-radius:12px;margin:1rem}.f-page-layout .f-page-header{box-shadow:none}.f-page-layout .f-page-header .f-page-header-base{padding-top:1rem;padding-bottom:1rem}.f-page-container{margin:0 auto}@media (min-width:888px){.f-page-container{width:80%}.farris-form .farris-group-wrap{max-width:26.625rem}.farris-form .farris-group-auto .farris-group-wrap,.farris-form-auto .farris-group-wrap{max-width:none}}@media (min-width:1200px){.f-page-container{width:80%}}@media (min-width:1690px){.f-page-container{width:60%}}.f-btn-wrapper{padding-top:18px;padding-bottom:16px;text-align:center}.f-btn-wrapper .btn-lg{margin:0 6px}.f-tmpl-staticinfo-top{font-size:12px;color:rgba(0,0,0,.45);padding:0 0 40px}.f-tmpl-staticinfo-wrapper{background:rgba(42,135,255,.05);border:1px solid rgba(42,135,255,.2);border-radius:3px;padding:14px 20px 6px;margin:0 0 6px}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-icon{margin:0 0 0 12px;border:1px solid #80B8FF;background:#D8E9FF;color:#4796FF;text-align:center;border-radius:2px}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-icon:before{font-size:12px;line-height:14px;display:block}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-icon.f-icon-woman{color:#FF7E7E;border-color:#FCABAB;background:#FFE9E9}.f-tmpl-staticinfo-wrapper .staticinfo--header .f-title .f-title-text{font-size:17px;color:#2D2F33;line-height:30px;margin:0}.f-tmpl-staticinfo-wrapper .staticinfo--content{padding:12px 0 0}.f-tmpl-staticinfo-wrapper .staticinfo--list{display:flex;margin:0 -14px 0 0;flex-wrap:wrap}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item{position:relative;padding:0 14px 0 0;margin:0 14px 8px 0;color:#36434D;font-size:14px;display:flex;align-items:center}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item:last-child::after,.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select .custom-control{display:none}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item .f-icon{color:#878D99;font-size:13px;margin:0 4px 0 0}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item .f-title{margin:0 4px 0 0}.f-tmpl-staticinfo-wrapper .staticinfo--list .staticinfo--list-item::after{content:"";height:10px;width:1px;background:#E4E7EF;top:50%;margin-top:-5px;right:0;position:absolute}.f-section-scheme.f-section{background:0 0;margin:.5rem .5rem 0;padding:.625rem .875rem .25rem;box-shadow:none;border-radius:6px 6px 0 0}.f-section-like-query.f-section,.f-section-query.f-section{background:var(--f-neutral-19);margin:.5rem .5rem 0;padding:.625rem .875rem .25rem}.f-section-like-query .f-list-filter.list-filter-autolabel,.f-section-query .f-list-filter.list-filter-autolabel{padding-bottom:0!important}.f-section-like-query.f-section-form{margin:0!important;padding:.625rem 0 .25rem!important}.f-page-child-fill{flex-direction:column;flex:1 1 0;display:flex!important}.f-page-child-fill .f-struct-like-card-child-fill{display:flex;flex-direction:column;flex:1 1 0;overflow-y:auto}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child{flex:1 1 0;flex-direction:column;display:flex;min-height:26.875rem}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child:has(>.f-section-accordion.f-state-collapse){min-height:unset;display:block;flex:initial}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child .f-section .f-component-tabs{flex:1 1 0;display:flex!important;flex-direction:column!important;overflow:hidden}.f-page-child-fill .f-struct-wrapper-child .f-struct-is-subgrid{flex:1 1 0;flex-direction:column;display:flex}.f-page-child-fill .f-struct-wrapper-child .f-grid-is-sub{height:auto;flex:1 1 0;flex-direction:column;display:flex}.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child .f-section .f-multiview-fill,.f-page-child-fill .f-struct-wrapper.f-struct-wrapper-child .f-section .f-multiview-fill .f-viewchange-content-item{display:flex;flex-direction:column;flex:1 1 0}.f-page-child-fill .f-struct-wrapper-child .f-section.f-section-fill .f-section-content{overflow:auto}.f-tmpl-subgrid-by-card{position:relative}.f-tmpl-subgrid-by-card .subgrid-by-card-item{padding:12px 12px 10px 40px;border-bottom:1px solid #E9E9E9;position:relative}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--order{position:absolute;top:16px;left:14px;border-radius:2px;background:#51BD78;line-height:1rem;color:#fff;font-size:12px;text-align:center;padding:0 2px;min-width:16px}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--header{padding:0;position:relative;margin:0 0 8px}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--header .card-item--toolbar{position:absolute;right:0;top:0}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--detail,.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--title{font-size:1rem}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--detail{font-size:14px;padding:0;color:rgba(0,0,0,.75)}.f-tmpl-subgrid-by-card .subgrid-by-card-item .card-item--detail .card-item--item{margin-bottom:4px}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select{position:absolute;width:20px;height:20px;right:0;bottom:0}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select::before{position:absolute;font-size:12px;content:"\e118";color:#fff;font-family:FarrisIcons;z-index:100;right:0;bottom:-3px}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-list-select::after{content:"";width:20px;height:20px;border:10px solid #fff;border-color:#fff #E6E6E6 #e6e6e6 #fff;position:absolute;bottom:0;right:0}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-listview-active .subgrid-by-card-item{background:linear-gradient(270deg,rgba(235,244,255,.6) 0,#EBF4FF 100%)}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-listview-active .f-list-select::after{border-color:#fff #63B7FF #63B7FF #fff}.f-tmpl-subgrid-by-card-list .f-list-view-multiple .f-tmpl-subgrid-by-card:hover .f-list-select::after{border-color:#fff #2A87FF #2A87FF #fff}.f-tmpl-subgrid-by-card-list .subgrid-by-card-footer{margin:8px 0 0;border:1px dashed #D9D9D9;height:28px}.f-tmpl-subgrid-by-card-list .subgrid-by-card-footer .btn{display:block;text-align:center;width:100%;height:100%}.farris-split-section{background:var(--f-neutral-19);box-shadow:0 2px 20px 0 rgba(3,18,51,.05);border-radius:8px;margin:.5rem;overflow:hidden;flex-wrap:nowrap}.farris-split-section .farris-lsection{padding:.875rem;box-shadow:1px 1px 4px 0 rgba(0,28,64,.1)}.farris-header,.farris-header+.farris-header{box-shadow:none}.farris-split-section .farris-rsection{padding:.875rem}.f-form-next-tab{margin-bottom:.3125rem!important}.farris-header{min-height:2.875rem;padding:.75rem .875rem;flex-shrink:0;background:var(--f-neutral-00)}.farris-form-title{margin:0;color:var(--f-text-01);font-size:1.0625rem;line-height:1.625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.farris-card-content-bg .farris-panel .card-body{padding:.9375rem 0 0;background:var(--f-neutral-00)}.farris-card-section{padding:.875rem 0 .5rem}.farris-main-area{top:0;bottom:0;position:absolute;right:0;left:0;margin:0 auto;display:flex;background:#EFF2F4;overflow:hidden}.farris-cardpart-title{font-size:1rem;line-height:1.375rem;color:var(--f-text-01);margin:0 0 .75rem}.farris-grid-toolbar{display:flex;margin:0 0 .5rem;flex-shrink:0}.farris-grid-toolbar .farris-grid-title{padding:0;margin:0;font-size:1rem;line-height:1.375rem;color:var(--f-text-01)}.f-header-navbar{padding:0}.form-control{display:block;width:100%;height:calc(1.5357375rem + 2px);padding:.1875rem .5rem;font-size:.8125rem;line-height:1.4286;color:var(--f-text-02);background-color:var(--f-neutral-12);background-clip:padding-box;border:1px solid var(--f-neutral-04);border-radius:6px;box-shadow:0 0 0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:var(--f-text-02);background-color:var(--f-neutral-12);border-color:var(--f-theme-08);outline:0;box-shadow:0 0 0,0 0 4px 2px rgba(99,136,255,.12)}.form-control::-moz-placeholder{color:var(--f-text-09);opacity:1}.form-control::placeholder{color:var(--f-text-09);opacity:1}.form-control:disabled,.form-control[readonly]{background-color:var(--f-neutral-12);opacity:1}select.form-control:focus::-ms-value{color:var(--f-text-02);background-color:var(--f-neutral-12)}.form-control-file,.form-control-range{display:block;width:100%}.form-control-plaintext{display:block;width:100%;padding-top:.1875rem;padding-bottom:.1875rem;margin-bottom:0;line-height:1.4286;color:var(--f-text-01);background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.32145rem + 2px);padding:.125rem .4375rem;font-size:.75rem;line-height:1.4286;border-radius:6px}.form-control-lg{height:calc(1.750025rem + 2px);padding:.25rem .3125rem;font-size:.875rem;line-height:1.4286;border-radius:6px}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:var(--f-text-08)}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.col-form-label{font-size:inherit;line-height:1.4286}.col-form-label-lg{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.4286}.col-form-label-sm{padding-top:calc(.125rem + 1px);padding-bottom:calc(.125rem + 1px);font-size:.75rem;line-height:1.4286}.form-group{margin-bottom:.375rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex-grow:0;flex-shrink:0;flex-basis:auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.farris-form{flex-shrink:0}.farris-input-wrap{display:block;position:relative}.farris-input-wrap .form-control{width:100%;display:block}.farris-input-wrap .form-control.form-control-invalid{border-color:var(--f-semantic-danger-01)}.farris-input-wrap .form-control.form-control-invalid:focus{box-shadow:0 0 2px 1px rgba(244,97,96,.3)}.farris-input-wrap .input-group .form-control{width:1%}.farris-input-wrap .farris-feedback{position:absolute;top:100%;left:0;padding:.1875rem .5rem;z-index:122;display:none;border-radius:6px;transition:all .2s linear;cursor:pointer}.farris-input-wrap .farris-feedback .f-feedback-message{font-size:.8125rem;line-height:1.4286}.farris-input-wrap .farris-feedback .f-feedback-icon{font-size:14px}.farris-input-wrap .farris-feedback.f-state-invalid,.farris-input-wrap .farris-feedback.f-state-valid{display:block}.farris-input-wrap .farris-feedback.f-state-invalid{background:var(--f-semantic-danger-03);color:var(--f-semantic-danger-01)}.farris-input-wrap .farris-feedback.f-state-valid{background:var(--f-semantic-success-03);color:var(--f-semantic-success-01)}.farris-form-group{flex-wrap:nowrap!important}.farris-form-group .col-form-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.farris-form-group .farris-input-wrap .custom-control-label{display:inline}.farris-form-group .farris-input-wrap .custom-checkbox,.farris-form-group .farris-input-wrap .custom-radio{margin-bottom:0;margin-top:.125rem}.farris-label-info{padding:0 .25rem 0 0;flex-shrink:0}.farris-form-controls-inline .farris-group-wrap .farris-input-wrap,.form-inline .farris-input-wrap{flex-shrink:1;flex-grow:1;flex-basis:auto;min-width:1px}.farris-form-controls-inline .farris-group-wrap .col-form-label,.form-inline .col-form-label{display:flex;align-items:center;justify-content:flex-end!important;flex-direction:row!important}.farris-form-controls-inline .farris-group-wrap,.farris-form-inline{display:block}.farris-form-controls-inline .farris-group-wrap .col-form-label,.farris-form-inline .col-form-label{width:6rem;flex-shrink:0;margin-right:.625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;justify-content:flex-end!important;flex-direction:row!important;align-self:start}.farris-form-controls-inline .farris-group-wrap .col-form-label>*,.farris-form-inline .col-form-label>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.farris-form-controls-inline .farris-group-wrap .col-form-label.col-form-label-multi,.farris-form-inline .col-form-label.col-form-label-multi{word-break:break-all;white-space:initial}.farris-form-controls-inline .farris-group-wrap .col-form-label.col-form-label-multi .farris-label-info,.farris-form-inline .col-form-label.col-form-label-multi .farris-label-info{align-self:flex-start;line-height:1.4286}.farris-form-controls-inline .farris-group-wrap .col-form-label.col-form-label-multi .farris-label-text,.farris-form-inline .col-form-label.col-form-label-multi .farris-label-text{white-space:initial;text-align:right;max-height:2.321475rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.farris-form-controls-inline .farris-group-wrap .form-group,.farris-form-inline .form-group{margin-bottom:.5rem;flex-wrap:nowrap!important}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap,.form-inline .farris-group-multi-label .farris-group-wrap{margin-bottom:0}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label,.form-inline .farris-group-multi-label .farris-group-wrap .col-form-label{padding-top:0;padding-bottom:0;word-break:break-all;white-space:initial}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-info,.form-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-info{align-self:flex-start;line-height:1.4286}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-text,.form-inline .farris-group-multi-label .farris-group-wrap .col-form-label .farris-label-text{white-space:pre-wrap;text-align:right;max-height:2.321475rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.farris-form-controls-inline .farris-group-multi-label .farris-group-wrap .farris-input-wrap,.form-inline .farris-group-multi-label .farris-group-wrap .farris-input-wrap{align-self:flex-start}.farris-form-controls-inline.f-form-label-sm .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-sm .col-form-label{width:4.25rem}.farris-form-controls-inline.f-form-label-lg .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-lg .col-form-label{width:7.75rem}.farris-form-controls-inline.f-form-label-xl .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-xl .col-form-label{width:9.5rem}.farris-form-controls-inline.f-form-label-el .farris-group-wrap .col-form-label,.farris-form-inline.f-form-label-el .col-form-label{width:13rem}.farris-form-controls-inline .f-empty-input-placeholder,.farris-form-inline .f-empty-input-placeholder{padding-top:0;margin-top:0;margin-bottom:.5rem}.farris-form-controls-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.farris-form-controls-inline .farris-group-ver .col-form-label,.farris-form-controls-inline .farris-group-ver .form-group{display:block}.f-checkradio-no-label .farris-form-controls-inline .col-form-label,.f-checkradio-no-label .farris-form-inline .col-form-label{width:1px;overflow:hidden;height:calc(1.5357375rem + 1px * 2)}.f-checkradio-no-label .farris-form-controls-inline .custom-checkbox,.f-checkradio-no-label .farris-form-controls-inline .custom-radio,.f-checkradio-no-label .farris-form-inline .custom-checkbox,.f-checkradio-no-label .farris-form-inline .custom-radio{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-form-lable-auto .col-form-label{width:auto!important}.farris-form-controls-inline .f-checkradio-no-label .col-form-label,.farris-form-inline .f-checkradio-no-label .col-form-label{width:1px;overflow:hidden;height:calc(1.4286 * 1.4286 + .1875rem * 2 + 1px * 2)}.custom-control-label{margin-left:0}.f-input-underline .form-control{border-radius:0;background:0 0;border-width:0 0 1px;border-color:var(--f-neutral-02);border-style:solid}.f-input-underline .form-control:focus{background:0 0;border-color:var(--f-theme-08);color:var(--f-text-02);box-shadow:none}.f-input-underline .form-control:disabled,.f-input-underline .form-control:disabled:hover{background:0 0;border-color:var(--f-neutral-04);border-style:dashed;color:var(--f-text-02)}.f-input-underline .form-control:disabled::-moz-placeholder,.f-input-underline .form-control[readonly]::-moz-placeholder{color:var(--f-text-09)}.f-input-underline .form-control:disabled::placeholder,.f-input-underline .form-control[readonly]::placeholder{color:var(--f-text-09)}.f-input-underline .form-control[readonly],.f-input-underline .form-control[readonly]:hover{background:0 0;border-color:var(--f-neutral-04);border-style:dashed;color:var(--f-text-02)}.f-input-underline .f-cmp-inputgroup.actived .input-group{box-shadow:none}.f-input-underline .input-group{border-radius:0;border-width:0 0 1px;border-color:var(--f-neutral-02);border-style:solid}.f-input-underline .input-group .form-control{border:0}.f-input-underline .input-group.f-state-disabled,.f-input-underline .input-group.f-state-readonly{border-color:var(--f-neutral-04);border-style:dashed}.f-input-underline .input-group.f-state-focus{box-shadow:none}.f-state-form-view .farris-group-wrap .farris-label-text{color:var(--f-text-02)}.f-state-form-view .form-control:focus{background:var(--f-neutral-12);border-color:transparent;color:var(--f-text-02);box-shadow:none}.f-state-form-view .form-control:disabled,.f-state-form-view .form-control:disabled:hover,.f-state-form-view .form-control[readonly],.f-state-form-view .form-control[readonly]:hover{background:var(--f-neutral-12);border-color:transparent;color:var(--f-text-02)}.f-state-form-view .input-group,.f-state-form-view .input-group.f-state-disabled,.f-state-form-view .input-group.f-state-readonly{border-color:transparent}.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-dirty .input-group,.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-dirty .input-group:hover,.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-touched .input-group,.farris-input-wrap .f-cmp-inputgroup.ng-invalid.ng-touched .input-group:hover,.farris-input-wrap .form-control.ng-invalid.ng-dirty,.farris-input-wrap .form-control.ng-invalid.ng-touched{border-color:#dc3545}.f-form-controls-fixed-with .farris-input-wrap{width:3.75rem}.f-checkradio-single{margin:0;padding:0;width:1rem;height:1rem;min-height:1rem;display:inline-flex}.f-checkradio-single .custom-control-label::after,.f-checkradio-single .custom-control-label::before{top:0;left:0}.f-form-table{width:100%;table-layout:fixed}.f-form-table td{padding-left:14px;padding-right:14px}.farris-input-wrap .form-control.ng-invalid.ng-dirty:focus,.farris-input-wrap .form-control.ng-invalid.ng-touched:focus{box-shadow:0 0 2px 1px rgba(220,53,69,.3)}.f-form-state-default .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-input-wrap .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-12)}.f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-02);background:var(--f-neutral-12)!important}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-12)}.f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-default .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)!important}.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-create .farris-input-wrap .form-control:disabled,.f-form-state-create .farris-input-wrap .form-control[readonly],.f-form-state-edit .farris-input-wrap .form-control:disabled,.f-form-state-edit .farris-input-wrap .form-control[readonly],.f-input-text-light .farris-input-wrap .form-control:disabled,.f-input-text-light .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-create .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-edit .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-edit .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-input-text-light .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-input-text-light .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-create .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-component-timepicker .input-group .form-control[readonly],.f-input-text-light .f-cmp-inputgroup .input-group .form-control:disabled,.f-input-text-light .f-cmp-inputgroup .input-group .form-control[readonly],.f-input-text-light .f-cmp-number-spinner .input-group .form-control:disabled,.f-input-text-light .f-cmp-number-spinner .input-group .form-control[readonly],.f-input-text-light .f-component-timepicker .input-group .form-control:disabled,.f-input-text-light .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-component-timepicker .input-group.f-state-readonly,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly,.f-input-text-light .f-component-timepicker .input-group.f-state-disabled,.f-input-text-light .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-create .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-create .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .form-control,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-input-text-light .f-component-timepicker .input-group.f-state-disabled .form-control,.f-input-text-light .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-create .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-create .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-create .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-edit .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-edit .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-edit .f-component-timepicker .input-group.f-state-editable .form-control,.f-input-text-light .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-input-text-light .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-input-text-light .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-create .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-create .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-create .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-edit .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .k-autocomplete.k-state-disabled,.f-input-text-light .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-input-text-light .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-create .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-create .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-edit .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-autocomplete,.f-input-text-light .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-input-text-light .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .farris-editor.farris-editor-readonly .mce-container,.f-form-state-edit .farris-editor.farris-editor-readonly .mce-container,.f-input-text-light .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-create .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .farris-html-editor .ql-container.ql-disabled,.f-input-text-light .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-create .f-form-state-default .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control[readonly],.f-input-text-light .f-form-state-default .farris-input-wrap .form-control:disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-create .f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-edit .f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-input-text-light .f-form-state-default .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-input-text-light .f-form-state-default .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-component-timepicker .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-02);background:var(--f-neutral-12)!important}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .k-autocomplete.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-autocomplete,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .farris-editor.farris-editor-readonly .mce-container,.f-form-state-edit .f-form-state-default .farris-editor.farris-editor-readonly .mce-container,.f-input-text-light .f-form-state-default .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-html-editor .ql-container.ql-disabled,.f-input-text-light .f-form-state-default .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-02);background:var(--f-neutral-12);border-color:var(--f-neutral-04)!important}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group .form-control[readonly],.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control:disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-autocomplete.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-autocomplete,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-create .f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled,.f-input-text-light .f-form-state-default .f-form-pretend-lines .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-default .f-form-state-create .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control[readonly],.f-form-state-default .f-input-text-light .farris-input-wrap .form-control:disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .form-control[readonly]{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-form-state-create .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-form-state-edit .farris-input-wrap .form-control[readonly]+.input-append-wrapper,.f-form-state-default .f-input-text-light .farris-input-wrap .form-control:disabled+.input-append-wrapper,.f-form-state-default .f-input-text-light .farris-input-wrap .form-control[readonly]+.input-append-wrapper{background:var(--f-neutral-10)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-input-text-light .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group .form-control[readonly]{color:var(--f-text-02);background:var(--f-neutral-12)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-readonly{background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .form-control,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .form-control,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .form-control,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .form-control,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .form-control,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-disabled .form-control,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-readonly .form-control{color:var(--f-text-07);background:var(--f-neutral-10)!important}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-readonly .input-group-append,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-disabled .input-group-append,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-readonly .input-group-append{background:var(--f-neutral-10)}.f-form-state-default .f-form-state-create .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-create .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-create .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-edit .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-edit .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-form-state-edit .f-component-timepicker .input-group.f-state-editable .form-control,.f-form-state-default .f-input-text-light .f-cmp-inputgroup .input-group.f-state-editable .form-control,.f-form-state-default .f-input-text-light .f-cmp-number-spinner .input-group.f-state-editable .form-control,.f-form-state-default .f-input-text-light .f-component-timepicker .input-group.f-state-editable .form-control{color:var(--f-text-02);border-color:var(--f-neutral-04);background:var(--f-neutral-12)}.f-form-state-default .f-form-state-create .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-form-state-create .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .k-autocomplete.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-combobox .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-dateinput .k-dateinput-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-datepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-datetimepicker .k-picker-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-dropdown .k-dropdown-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-multiselect-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-numerictextbox .k-numeric-wrap.k-state-disabled,.f-form-state-default .f-input-text-light .farris-input-wrap .k-timepicker .k-picker-wrap.k-state-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-create .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-form-state-edit .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-autocomplete,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-combobox .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-datepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-datetimepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-dropdown .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-multiselect-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .f-state-readonly.k-timepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap .k-state-disabled.k-dateinput .k-dateinput-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-autocomplete,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-combobox .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dateinput .k-dateinput-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-datetimepicker .k-picker-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-dropdown .k-dropdown-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-multiselect-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-numerictextbox .k-numeric-wrap,.f-form-state-default .f-input-text-light .farris-input-wrap [ng-reflect-readonly=true].k-timepicker .k-picker-wrap{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .farris-editor.farris-editor-readonly .mce-container,.f-form-state-default .f-form-state-edit .farris-editor.farris-editor-readonly .mce-container,.f-form-state-default .f-input-text-light .farris-editor.farris-editor-readonly .mce-container{color:var(--f-text-07);background:var(--f-neutral-10)}.f-form-state-default .f-form-state-create .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-input-text-light .farris-html-editor .ql-container.ql-disabled{color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)!important}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-section-form .f-form-layout .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:0 0 1px!important;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-create .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-edit .f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:0 0 1px!important;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:0 0 1px;border-radius:0;border-style:solid;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-rregion-mtable-form-next-tab .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-section-form .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-sidebar-content .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-content-bg .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .farris-card-section .f-form-pretend-lines .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .form-control[readonly]{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .farris-html-editor .ql-container.ql-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-disabled .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .farris-editor.farris-editor-readonly .mce-tinymce,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .farris-html-editor .ql-container.ql-disabled{border-width:1px!important;border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group .form-control[readonly],.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control:disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group .form-control[readonly]{border:0}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-readonly.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-disabled.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-readonly.f-state-focus{border-width:1px;border-color:var(--f-neutral-06)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-editable,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-editable{border-width:1px;border-color:var(--f-neutral-04)}.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-create .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-rregion-mtable-form-next-tab .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-section-form .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .f-sidebar-content .farris-form .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-content-bg .farris-input-wrap .f-component-timepicker .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-inputgroup .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-cmp-number-spinner .input-group.f-state-focus,.f-form-state-default .f-form-state-edit .farris-card-section .farris-input-wrap .f-component-timepicker .input-group.f-state-focus{border-color:var(--f-theme-08);color:var(--f-text-02)}.f-form-pretend-lines .f-form-control-text,.f-form-pretend-lines .f-form-control-textarea{border-width:1px!important;color:var(--f-text-07);background:var(--f-neutral-10);border-color:var(--f-neutral-06)}.form-group--has-tips{position:relative}.form-group--has-tips .farris-label-tips{position:absolute;right:0;bottom:calc(.75rem + 1px);margin-bottom:-7px}.farris-label-tips,.farris-label-tips--highlight{display:inline-block;width:14px;height:14px;border:1px solid var(--f-theme-03);background:var(--f-aid-04);color:var(--f-theme-03);border-radius:7px;line-height:1;text-align:center}.farris-label-tips .f-icon,.farris-label-tips--highlight .f-icon{font-size:13px;vertical-align:top;transform:scale(.7)}.badge,.farris-label-tips--highlight .f-icon{vertical-align:baseline}.farris-label-tips--highlight:has(.f-icon-question),.farris-label-tips:has(.f-icon-question){border-color:var(--f-semantic-warning-01)}.farris-label-tips--highlight{border:none;color:#fff;background-image:linear-gradient(225deg,#FFB362 0,#FF8538 100%)}.form-label-plaintext .farris-label-text{color:var(--f-text-08)}.form-row{margin-right:-.5rem;margin-left:-.5rem}.form-row>.col,.form-row>[class*=col-]{padding-right:.5rem;padding-left:.5rem}.col-form-label{padding-top:0;padding-bottom:0;margin-bottom:.375rem;margin-left:0}.farris-form-controls-inline .farris-group-wrap .col-form-label,.farris-form-inline .col-form-label{padding-top:calc(.1875rem + 1px);padding-bottom:calc(.1875rem + 1px);margin-bottom:0}.f-list-view-content .f-list-view-group .f-list-content .f-tmpl-card--header-multicontent01 .header-multicontent01--content .header-multicontent01--footer{min-height:31px}.f-component-wizard-page-detail-footer{border-top:1px solid var(--f-neutral-08);padding:.75rem .875rem .875rem}.f-tmpl-card--header-multicontent01{background:#FEFEFF;border:1px solid #E4E7EF;border-radius:4px;width:19.375rem;margin:0 1rem 1rem 0;box-shadow:0 2px 10px 0 rgba(0,25,58,.1)}.f-tmpl-card--header-multicontent01 .header-multicontent01--header{color:#fff;border-radius:4px;height:2.5rem;padding:0 1.375rem;position:relative;background:linear-gradient(225deg,var(--f-aid-01),var(--f-theme-03))}.f-tmpl-card--header-multicontent01 .header-multicontent01--header .f-title{font-size:1rem;line-height:2.5rem;margin:0}.f-tmpl-card--header-multicontent01 .header-multicontent01--header .f-state{text-align:center;position:absolute;top:-1px;right:-1px;width:3.75rem;height:1.5rem;line-height:1.5rem;color:#fff;font-size:.75rem}.f-tmpl-card--header-multicontent01 .header-multicontent01--header .f-state span{display:block;border-radius:0 0 0 6px}.f-tmpl-card--header-multicontent01 .header-multicontent01--content{padding:1rem 1.375rem;position:relative}.f-tmpl-card--header-multicontent01 .header-multicontent01--content .f-title{font-size:1rem;height:22px}.f-tmpl-card--header-multicontent01 .header-multicontent01--content p{margin:0 0 .5rem}.f-tmpl-card--header-multicontent01 .header-multicontent01--content .f-state{position:absolute;right:0;top:13px}.f-tmpl-card--header-multicontent01 .header-multicontent01--content .f-state span{border-radius:4px 0 0 4px;padding-top:4px;padding-bottom:4px}.f-tmpl-card--header-multicontent01 .header-multicontent01--footer .f-emphasize{font-size:1.375rem;color:#F7962A}.f-tmpl-card--header-multicontent01 .header-multicontent01--footer .f-toolbar{margin:0}.f-tmpl-card--header-multicontent01 .header-multicontent01--footer .f-toolbar span{cursor:pointer;margin:0 1rem 0 0}.f-tmpl-list--columns01{display:flex;flex-wrap:no-wrap;border:1px solid #ddd;position:relative;margin:-1px 8px 0;flex-direction:row;padding:20px 8px 12px;align-items:center}.f-tmpl-list--columns01 p{margin-bottom:4px}.f-tmpl-list--columns01 .f-state{position:absolute;top:-1px;left:0}.f-tmpl-list--columns01 .f-state span{border-radius:0 0 4px 4px;padding-left:12px;padding-right:11px}.f-tmpl-list--columns01 .f-emphasize{font-size:1.375rem;color:#F7962A}.f-template-common-row{padding:12px 16px;align-items:center}.f-template-common-row .item-action-primary{display:inline-block;margin-right:16px;width:60px;height:60px;border-radius:50%;overflow:hidden}.f-template-common-row .item-action-primary .ap-img{display:block;width:60px;height:60px;border-radius:50%}.f-template-common-row .listview-item-content{border-bottom:1px solid #d9d9d9;flex:1 1 auto}.f-template-common-row .listview-item-content .listview-item-main{flex-grow:1;flex-shrink:1;flex-basis:0}.f-template-common-row .listview-item-content .listview-item-title{font-size:16px;color:rgba(0,0,0,.85)}.f-template-common-row .listview-item-content .listview-item-subtitle{font-size:14px;color:rgba(0,0,0,.45)}.badge-pill-success,.badge-success{color:#fff}.f-template-common-row .listview-item-content .listview-item-btns .btn{margin-left:6px;margin-right:6px}.f-listview-active .f-tmpl-list--columns01{box-shadow:0 2px 10px 0 rgba(0,25,58,.1)}.badge-arrow-left-success,.badge-arrow-right-success,.badge-pill-success,.badge-round-success,.badge-success{background:var(--f-semantic-success-01)}.f-listview-active .f-template-common-row .listview-item-content{border-color:var(--f-theme-03)}.f-page-is-onepage .f-onepage-tabs{margin:0 .5rem}.f-onepage-content{overflow-y:auto}.badge{display:inline-block;padding:.1875rem .5rem;font-size:.75rem;line-height:1;text-align:center;white-space:nowrap;border-radius:6px}.badge-pill,.badge-pill-border-success,.badge-pill-success{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-border-arrow-left-success,.badge-border-success,.badge-pill-border-success{color:var(--f-semantic-success-01);background:var(--f-semantic-success-03)}.badge-pill-border-success{border:1px solid var(--f-semantic-success-01)}.badge-border-success{padding:.125rem .4375rem;border:1px solid var(--f-semantic-success-02);border-radius:2px}.badge-border-arrow-left-success{border:1px solid var(--f-semantic-success-02);position:relative;margin-left:12px}.badge-border-arrow-left-success::after,.badge-border-arrow-left-success::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-success::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-success-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-success::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-success-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-success{position:relative;margin-right:12px}.badge-border-arrow-right-success::after,.badge-border-arrow-right-success::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-success::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-success-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-success::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-success-03);border-width:5px 0 5px 10px}.badge-arrow-left-success::before,.badge-arrow-right-success::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-success{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-success::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-success-01)}.badge-arrow-right-success{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-success::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-success-01)}.badge-round-success{width:6px;height:6px;border-radius:3px;line-height:1;overflow:hidden;padding:0}.badge-round-outer-success{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-success-01),.18);border-radius:7px}.badge-round-outer-success::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-semantic-success-01)}.badge-pill-border-info,.badge-pill-info{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-info,.badge-pill-info{color:#fff;background:var(--f-semantic-info-01)}.badge-border-arrow-left-info,.badge-border-info,.badge-pill-border-info{color:var(--f-semantic-info-01);background:var(--f-semantic-info-03)}.badge-pill-border-info{border:1px solid var(--f-semantic-info-01)}.badge-border-info{padding:.125rem .4375rem;border:1px solid var(--f-semantic-info-02);border-radius:2px}.badge-border-arrow-left-info{border:1px solid var(--f-semantic-info-02);position:relative;margin-left:12px}.badge-arrow-left-info,.badge-arrow-right-info,.badge-round-info{background:var(--f-semantic-info-01)}.badge-border-arrow-left-info::after,.badge-border-arrow-left-info::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-info::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-info-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-info::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-info{position:relative;margin-right:12px}.badge-border-arrow-right-info::after,.badge-border-arrow-right-info::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-round-info,.badge-round-warning{width:6px;border-radius:3px;padding:0;display:inline-block!important;line-height:1;overflow:hidden;height:6px}.badge-border-arrow-right-info::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-info-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-info::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 0 5px 10px}.badge-arrow-left-info::before,.badge-arrow-right-info::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent}.badge-arrow-left-info{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-info::before{content:"";position:absolute;top:50%;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-info-01)}.badge-arrow-right-info{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-info::before,.badge-round-outer-info::after{position:absolute;content:"";top:50%}.badge-arrow-right-info::before{border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-info-01)}.badge-round-outer-info{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-info-01),.18);border-radius:7px}.badge-round-outer-info::after{width:8px;height:8px;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-semantic-info-01)}.badge-pill-border-warning,.badge-pill-warning{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-arrow-left-warning,.badge-arrow-right-warning,.badge-pill-warning,.badge-round-outer-warning::after,.badge-round-warning,.badge-warning{background:var(--f-semantic-warning-01)}.badge-pill-warning,.badge-warning{color:#fff}.badge-border-arrow-left-warning,.badge-border-warning,.badge-pill-border-warning{color:var(--f-semantic-warning-01);background:var(--f-semantic-warning-03)}.badge-pill-border-warning{border:1px solid var(--f-semantic-warning-01)}.badge-border-warning{padding:.125rem .4375rem;border:1px solid var(--f-semantic-warning-02);border-radius:2px}.badge-border-arrow-left-warning{border:1px solid var(--f-semantic-warning-02);position:relative;margin-left:12px}.badge-border-arrow-left-warning::after,.badge-border-arrow-left-warning::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-warning::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-warning-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-warning::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-warning-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-warning{position:relative;margin-right:12px}.badge-border-arrow-right-warning::after,.badge-border-arrow-right-warning::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-warning::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-warning-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-warning::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-warning-03);border-width:5px 0 5px 10px}.badge-arrow-left-warning::before,.badge-arrow-right-warning::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-warning{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-warning::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-warning-01)}.badge-arrow-right-warning{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-warning::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-warning-01)}.badge-round-outer-warning{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-warning-01),.18);border-radius:7px}.badge-round-outer-warning::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px}.badge-pill-border-danger,.badge-pill-danger{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-danger,.badge-pill-danger{color:#fff;background:#F46160}.badge-border-arrow-left-danger,.badge-border-danger,.badge-pill-border-danger{color:#F46160;background:var(--f-semantic-danger-03)}.badge-pill-border-danger{border:1px solid #F46160}.badge-border-danger{padding:.125rem .4375rem;border:1px solid var(--f-semantic-danger-02);border-radius:2px}.badge-border-arrow-left-danger{border:1px solid var(--f-semantic-danger-02);position:relative;margin-left:12px}.badge-border-arrow-left-danger::after,.badge-border-arrow-left-danger::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-danger::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-danger-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-danger::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-danger-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-danger{position:relative;margin-right:12px}.badge-border-arrow-right-danger::after,.badge-border-arrow-right-danger::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-danger::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-danger-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-danger::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-danger-03);border-width:5px 0 5px 10px}.badge-arrow-left-danger::before,.badge-arrow-right-danger::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent}.badge-arrow-left-danger{background:#F46160;position:relative;color:#fff;margin-left:8px}.badge-arrow-left-danger::before{content:"";position:absolute;top:50%;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:#F46160}.badge-arrow-right-danger{background:#F46160;position:relative;color:#fff;margin-right:8px}.badge-arrow-right-danger::before,.badge-round-outer-danger::after{position:absolute;content:"";top:50%}.badge-arrow-right-danger::before{border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:#F46160}.badge-round-danger{width:6px;height:6px;border-radius:3px;display:inline-block!important;line-height:1;overflow:hidden;padding:0;background:#F46160}.badge-round-outer-danger{position:relative;width:14px;height:14px;display:block;background:rgba(244,97,96,.18);border-radius:7px}.badge-round-outer-danger::after{width:8px;height:8px;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:#F46160}.badge-pill-border-primary,.badge-pill-primary{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-arrow-left-primary,.badge-arrow-right-primary,.badge-pill-primary,.badge-primary,.badge-round-primary{background:var(--f-theme-03)}.badge-pill-primary,.badge-primary{color:#fff}.badge-border-arrow-left-primary,.badge-border-primary,.badge-pill-border-primary{color:var(--f-theme-03);background:var(--f-semantic-info-03)}.badge-pill-border-primary{border:1px solid var(--f-theme-03)}.badge-border-primary{padding:.125rem .4375rem;border:1px solid var(--f-theme-05);border-radius:2px}.badge-border-arrow-left-primary{border:1px solid var(--f-theme-05);position:relative;margin-left:12px}.badge-border-arrow-left-primary::after,.badge-border-arrow-left-primary::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-primary::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-theme-05);border-width:6px 12px 6px 0}.badge-border-arrow-left-primary::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-primary{position:relative;margin-right:12px}.badge-border-arrow-right-primary::after,.badge-border-arrow-right-primary::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-round-continue,.badge-round-primary{border-radius:3px;display:inline-block!important;line-height:1;overflow:hidden}.badge-border-arrow-right-primary::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-theme-05);border-width:6px 0 6px 12px}.badge-border-arrow-right-primary::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-info-03);border-width:5px 0 5px 10px}.badge-arrow-left-primary::before,.badge-arrow-right-primary::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-primary{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-primary::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-theme-03)}.badge-arrow-right-primary{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-primary::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-theme-03)}.badge-round-primary{width:6px;height:6px;padding:0}.badge-round-outer-primary{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-theme-03),.18);border-radius:7px}.badge-round-outer-primary::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-theme-03)}.badge-pill-border-continue,.badge-pill-continue{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-continue,.badge-pill-continue{color:#fff;background:var(--f-semantic-submit-01)}.badge-border-arrow-left-continue,.badge-border-continue,.badge-pill-border-continue{color:var(--f-semantic-submit-01);background:var(--f-semantic-submit-03)}.badge-pill-border-continue{border:1px solid var(--f-semantic-submit-01)}.badge-border-continue{padding:.125rem .4375rem;border:1px solid var(--f-semantic-submit-02);border-radius:2px}.badge-border-arrow-left-continue{border:1px solid var(--f-semantic-submit-02);position:relative;margin-left:12px}.badge-arrow-left-continue,.badge-arrow-right-continue,.badge-round-continue{background:var(--f-semantic-submit-01)}.badge-border-arrow-left-continue::after,.badge-border-arrow-left-continue::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-left-continue::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-submit-02);border-width:6px 12px 6px 0}.badge-border-arrow-left-continue::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-submit-03);border-width:5px 10px 5px 0}.badge-border-arrow-right-continue{position:relative;margin-right:12px}.badge-border-arrow-right-continue::after,.badge-border-arrow-right-continue::before{width:0;height:0;content:"";position:absolute;top:50%;border:solid transparent}.badge-border-arrow-right-continue::before{left:-12px;z-index:2;margin-top:-6px;border-right-color:var(--f-semantic-submit-02);border-width:6px 0 6px 12px}.badge-border-arrow-right-continue::after{z-index:3;left:-10px;margin-top:-5px;border-right-color:var(--f-semantic-submit-03);border-width:5px 0 5px 10px}.badge-arrow-left-continue::before,.badge-arrow-right-continue::before{margin-top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;content:"";top:50%}.badge-arrow-left-continue{position:relative;color:#fff;margin-left:8px}.badge-arrow-left-continue::before{position:absolute;border-right:8px solid transparent;border-left:0 solid transparent;left:-8px;border-right-color:var(--f-semantic-submit-01)}.badge-arrow-right-continue{position:relative;color:#fff;margin-right:8px}.badge-arrow-right-continue::before{position:absolute;border-left:8px solid transparent;border-right:0 solid transparent;right:-8px;border-left-color:var(--f-semantic-submit-01)}.badge-round-continue{width:6px;height:6px;padding:0}.badge-round-outer-continue{position:relative;width:14px;height:14px;display:block;background:rgba(var(--f-semantic-submit-01),.18);border-radius:7px}.badge-round-outer-continue::after{content:"";width:8px;height:8px;position:absolute;top:50%;left:50%;margin:-4px 0 0 -4px;border-radius:4px;background:var(--f-semantic-submit-01)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:6px}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.card-body{flex-grow:1;flex-shrink:1;flex-basis:auto;padding:1.25rem}.card-footer,.card-header{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03)}.card-title{margin-bottom:.75rem}.card-header,.card-subtitle,.card-text:last-child{margin-bottom:0}.card-subtitle{margin-top:-.375rem}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-header{border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(6px - 1px) calc(6px - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(6px - 1px) calc(6px - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(6px - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(6px - 1px);border-top-right-radius:calc(6px - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(6px - 1px);border-bottom-left-radius:calc(6px - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:14px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-14px;margin-left:-14px}.card-deck .card{display:flex;flex-grow:1;flex-shrink:0;flex-basis:0%;flex-direction:column;margin-right:14px;margin-bottom:0;margin-left:14px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:14px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{flex-grow:1;flex-shrink:0;flex-basis:0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:6px}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:6px;border-top-right-radius:6px}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.card-group>.card:not(:first-child):not(:last-child):not(:only-child),.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}.card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.card-columns .card{margin-bottom:.75rem}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.f-form-is-table{box-shadow:0 2px 10px 0 rgba(0,0,0,.04)}.table.table-bordered.f-table-has-form td:first-child{border-left:unset}.table.table-bordered.f-table-has-form td:last-child{border-right:unset}.table.table-bordered.f-table-has-form>:first-child td{border-top:unset}.f-table-has-form{overflow:hidden;box-shadow:0 0 0 1px var(--f-neutral-07);border-radius:10px;margin:0}.f-table-has-form td{padding:0;height:43px;border:1px solid var(--f-neutral-07)}.f-table-has-form .farris-group-wrap--label{padding:.75rem 1rem;width:124px}.f-table-has-form .farris-group-wrap--label .farris-label-wrap{height:100%}.f-table-has-form .farris-group-wrap--label .form-group--has-tips{display:flex}.f-table-has-form .farris-group-wrap--label .form-group--has-tips .farris-label-tips{position:relative;bottom:auto;margin:1px 0 0 4px;flex-shrink:0}.f-table-has-form .farris-group-wrap--label .form-group--has-tips .col-form-label{flex:1 1 0}.f-table-has-form .farris-group-wrap--label .col-form-label{display:flex;margin:0;align-items:center;flex-shrink:0;justify-content:flex-end!important;flex-direction:row!important;align-self:start;word-break:break-all;min-width:82px;height:100%}.f-table-has-form .farris-group-wrap--label .farris-label-text{text-align:right;white-space:pre-wrap}.f-table-has-form .farris-group-wrap--label .farris-label-info{padding:0 .25rem 0 0;flex-shrink:0;line-height:1.4286;white-space:nowrap}.f-table-has-form .farris-group-wrap--input{position:relative;overflow:initial}.f-table-has-form .farris-group-wrap--input .farris-input-wrap{height:100%}.f-table-has-form .farris-group-wrap--input .farris-input-wrap.farris-textarea-wrap{min-height:60px}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .form-control{height:100%;border:none;border-radius:0;padding-left:1rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .form-control.form-control-invalid,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .form-control.form-control-invalid:focus{box-shadow:inset 0 0 0 1pxvar --f-semantic-danger-01}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-inputgroup,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-component-timepicker{height:100%}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-inputgroup .input-group,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-component-timepicker .input-group{height:100%;border:none}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group .btn-group-number{height:100%}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group .btn-group-number .btn-number-flag,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .input-group .btn-group-number .btn-number-flag:nth-child(2){border:none}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .f-cmp-number-spinner .number-arrow-chevron,.f-table-has-form .farris-group-wrap--input .farris-input-wrap .input-group .input-group-append.f-cmp-iconbtn-wrapper .f-cmp-iconbtn .f-icon{font-size:1rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .lookupbox .input-group-append .f-icon-lookup{font-size:1.125rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap farris-checkboxgroup .farris-input-wrap,.f-table-has-form .farris-group-wrap--input .farris-input-wrap farris-radiogroup .farris-input-wrap{padding:.75rem 1rem}.f-table-has-form .farris-group-wrap--input .farris-input-wrap .farris-checkradio-hor{align-items:center}.f-table-has-form .farris-group-wrap--input .farris-html-editor{border:none}.f-table-has-form .farris-group-wrap--input .farris-html-editor-border .ql-container.ql-disabled{border:none!important;padding:.75rem 1rem}.f-table-has-form .farris-group-wrap--input .farris-switch-outlayer{height:100%;display:flex;align-items:center;margin-left:1rem}.f-table-has-form .farris-group-wrap--input>.farris-input-wrap>.custom-control{height:100%;display:flex;align-items:center;padding:.75rem 1rem}.f-table-has-form .farris-group-wrap--input .f-component-text{height:100%;display:flex;align-items:center}.f-table-has-form .farris-group-wrap--input .f-component-text .f-form-control-text,.f-table-has-form .farris-group-wrap--input .f-component-text .f-form-control-textarea{border-color:transparent;padding-left:1rem}.f-table-has-form .input-group .input-group-append{padding-right:.5rem}.f-table-has-form .input-group .input-append-wrapper{padding-right:0}.f-table-has-form .input-group .input-group-append.f-cmp-iconbtn-wrapper{padding-right:.5rem}.f-table-has-form .input-group .input-group-append.f-cmp-iconbtn-wrapper .datepicker-clear{right:.5rem!important}.f-table-has-form .input-append-wrapper .input-group-text{padding-left:1rem;padding-right:1rem}.f-table-has-form .input-append-button{border-left:1px solid var(--f-neutral-07);margin-left:1px}.f-table-has-form .f-cmp-static-text-input-append .input-append-button,.f-table-has-form .f-cmp-text-input-append .input-append-button,.f-table-has-form .f-cmp-textarea-input-append .input-append-button{margin-left:0}.f-table-has-form .farris-editor .farris-editor-placeholder,.f-table-has-form .farris-editor .mce-tinymce{border:none}.f-table-has-form .farris-input-wrap .f-cmp-text-is-textarea{flex-direction:row}.f-table-has-form .farris-input-wrap .f-cmp-text-is-textarea .f-form-control-textarea{flex:1 1 0;width:100%}.f-table-has-form .farris-input-wrap .f-personnel-selector,.f-table-has-form .farris-input-wrap .f-personnel-selector .s-select-help{height:100%}.f-table-has-form .farris-input-wrap .f-personnel-selector .s-input-group{border:none!important}.f-table-has-form .farris-input-wrap .farris-tags{white-space:pre-wrap;height:100%;display:flex;align-items:center;margin-left:1rem}.f-table-has-form .farris-input-wrap .farris-tags .farris-tags-item-container{word-break:break-all;padding-left:4px}.f-table-has-form .farris-input-wrap .farris-tags .farris-tags-item-container .farris-tag-item{margin-top:4px;margin-bottom:4px;white-space:pre-wrap}@-moz-document url-prefix(){.f-table-has-form tr{height:43px}.f-table-has-form td{height:100%}} \ No newline at end of file diff --git a/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.component.tsx b/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.component.tsx index 995cb1d248a..155261f009e 100644 --- a/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.component.tsx +++ b/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.component.tsx @@ -141,17 +141,6 @@ export default defineComponent({ const { openNewFieldModal } = useOpenNewField(useFormSchema, newEntityCodeList, refreshEntityTree, serializedTreeData); const { openModifyFieldModal } = useOpenModifyField(useFormSchema, designViewModelUtils, refreshEntityTree, serializedTreeData, context); - /** 低代码:刷新实体(同步视图对象) */ - function renderHeader() { - if (designerMode !== DesignerMode.PC_RTC) { - return
-
- -
-
; - } - } - return () => { return
{{ - header: renderHeader, cellTemplate: ({ cell, row }) => { const rowData = row.raw; return <> @@ -183,6 +171,12 @@ export default defineComponent({ openModifyFieldModal(event, row.raw)}>
} + {/* 低代码表单实体节点,支持刷新实体数据 */} + {designerMode !== DesignerMode.PC_RTC && rowData.nodeType === 'entity' && !rowData.parent && +
+ +
+ }
; }, diff --git a/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.scss b/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.scss index d45d08b8533..9212163ba4f 100644 --- a/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.scss +++ b/packages/designer/src/components/components/entity-tree-view/components/entity-tree-view.scss @@ -31,4 +31,8 @@ bottom: 0; background: #fcfdff; } + + .fv-grid-row.fv-grid-row-selected .toolbar-panel { + background: #dae9ff; + } } \ No newline at end of file diff --git a/packages/designer/src/components/components/form-designer/components/external-component-panel/components/external-component-selector/external-component-selector.component.tsx b/packages/designer/src/components/components/form-designer/components/external-component-panel/components/external-component-selector/external-component-selector.component.tsx index d6ea25cf0ae..c5105f9eeb8 100644 --- a/packages/designer/src/components/components/form-designer/components/external-component-panel/components/external-component-selector/external-component-selector.component.tsx +++ b/packages/designer/src/components/components/form-designer/components/external-component-panel/components/external-component-selector/external-component-selector.component.tsx @@ -20,7 +20,7 @@ export default defineComponent({ const metadataService = new MetadataService(); const formBasicInfo = formSchemaUtils.getFormMetadataBasicInfo(); - const editorParams = { formBasicInfo }; + const editorParams = { formBasicInfo, enableGroup: false }; const viewOptions = [ { id: 'recommend', title: '推荐', type: 'Card', dataSource: 'Recommand', pagination: true }, { id: 'total', title: '全部', type: 'Card', dataSource: 'Total', pagination: true } diff --git a/packages/designer/src/components/components/form-designer/form-designer.component.tsx b/packages/designer/src/components/components/form-designer/form-designer.component.tsx index 0da86153b53..cd493444e61 100644 --- a/packages/designer/src/components/components/form-designer/form-designer.component.tsx +++ b/packages/designer/src/components/components/form-designer/form-designer.component.tsx @@ -3,7 +3,6 @@ import { ComponentSchema, DesignerComponentInstance, FDesignerCanvas, FTabs, FTa import { FormDesignerProps, formDesignerProps } from "./form-designer.props"; import { useComponentSchemaService } from '../../composition/component-schema.service'; import MonacoEditor from '../monaco-editor/monaco-editor.component'; -import modulePropertyConfig from '../../types/form-property-config.json'; import FEntityTreeView from '../entity-tree-view/components/entity-tree-view.component'; import { afterPropeControlPropertyChangedService } from "../../composition/control-property-changed.service"; import { UseDesignViewModel, UseFormSchema, UseSchemaService } from "../../types"; @@ -15,6 +14,7 @@ import { ExternalComponentSchema } from "./components/external-component-panel/c import { UseFormCommandService } from "../../../components/types/command"; import { useFormValidation } from "../../composition/use-form-validation"; import { DesignerMode } from "../../types/designer-context"; +import { resolveFormModulePropertyConfig } from "../../../components/types/form-property-config"; export default defineComponent({ name: 'FFormDesigner', @@ -192,7 +192,7 @@ export default defineComponent({ }; }); - propertyConfigSchemaMapForDesigner['Module'] = modulePropertyConfig; + propertyConfigSchemaMapForDesigner['Module'] = resolveFormModulePropertyConfig(designerMode);; const shouldRenderExternalComponentPanel = designerMode !== DesignerMode.PC_RTC; @@ -227,7 +227,7 @@ export default defineComponent({ if (selectionSchema?.type === 'Module') { propertyName.value = 'Module'; propertyPanelInstance?.value?.updateDesignerItem(null, selectionSchema.id); - focusingSchema.value = selectionSchema; + focusingSchema.value = Object.assign({}, useFormSchema.getFormMetadataBasicInfo(), { type: 'Module' }); clearComponentSelectionStyles(); } diff --git a/packages/designer/src/components/composition/form-metadata-rtc.service.tsx b/packages/designer/src/components/composition/form-metadata-rtc.service.tsx index 8d514940771..47aa19130ef 100644 --- a/packages/designer/src/components/composition/form-metadata-rtc.service.tsx +++ b/packages/designer/src/components/composition/form-metadata-rtc.service.tsx @@ -205,7 +205,7 @@ export function useRtcFormMetadata( dim1: formBasicInfo.dimension1, dim2: formBasicInfo.dimension2, isRtc: '1', - metadataId: formBasicInfo.id, + metadataId: formBasicInfo.rtcId, menuId: menuSelectedData.value.value.id }; diff --git a/packages/designer/src/components/composition/schema-repository/lookup/lookup-schema.service.ts b/packages/designer/src/components/composition/schema-repository/lookup/lookup-schema.service.ts index 66a64d3c5d6..09a9d4b8a7f 100644 --- a/packages/designer/src/components/composition/schema-repository/lookup/lookup-schema.service.ts +++ b/packages/designer/src/components/composition/schema-repository/lookup/lookup-schema.service.ts @@ -5,8 +5,7 @@ export class LookupSchemaService { private metadataType = '.hlp'; - constructor(private metadataService: MetadataService) { - } + constructor(private metadataService: MetadataService) { } private getLocalMetadata(metadataPath) { return this.metadataService?.getMetadataListInSu(metadataPath, this.metadataType); @@ -31,18 +30,37 @@ export class LookupSchemaService { }); } - getRecommandData = async (searchingText: string, pagination: SchemaRepositoryPagination, editorParams): Promise => { - const {relativePath} = editorParams.formBasicInfo; + private mergeAndDeduplicateById(...items: T[][]): T[] { + const idSet = new Set(); + const mergedItems: T[] = []; + + for (const array of items) { + for (const item of array) { + if (!idSet.has(item.id)) { + idSet.add(item.id); + mergedItems.push(item); + } + } + } + return mergedItems; + } + + getRecommandData = async (searchingText: string, pagination: SchemaRepositoryPagination, editorParams: any): Promise => { + const { relativePath } = editorParams.formBasicInfo; + const shouldDeduplicate = editorParams.enableGroup === false; const recentRequest = await this.getRecentMetadata(relativePath); const recentData = this.metadata2SchemaItem(recentRequest.data, 'recent'); const suMetadataRequest = await this.getLocalMetadata(relativePath); const localData = this.metadata2SchemaItem(suMetadataRequest.data, 'local'); + if (shouldDeduplicate) { + return this.mergeAndDeduplicateById(recentData, localData); + } return recentData.concat(localData); }; - getSchemaData = async (searchingText: string, pagination: SchemaRepositoryPagination, editorParams): Promise => { + getSchemaData = async (searchingText: string, pagination: SchemaRepositoryPagination, editorParams: any): Promise => { const { relativePath } = editorParams.formBasicInfo; const allMetadataRes = await this.metadataService?.getAllMetadataList(relativePath, this.metadataType); let items = allMetadataRes.data; diff --git a/packages/designer/src/components/types/form-property-config.json b/packages/designer/src/components/types/form-property-config.json deleted file mode 100644 index c84eac0932c..00000000000 --- a/packages/designer/src/components/types/form-property-config.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "title": "module", - "description": "表单元数据属性配置", - "type": "object", - "categories": { - "basic": { - "title": "基本信息", - "properties": { - "id": { - "title": "表单元数据标识", - "type": "string", - "readonly": true - }, - "code": { - "title": "表单元数据编号", - "type": "string", - "readonly": true - }, - "name": { - "title": "表单元数据名称", - "type": "string", - "readonly": true - } - } - } - } -} \ No newline at end of file diff --git a/packages/designer/src/components/types/form-property-config.ts b/packages/designer/src/components/types/form-property-config.ts new file mode 100644 index 00000000000..925108314e8 --- /dev/null +++ b/packages/designer/src/components/types/form-property-config.ts @@ -0,0 +1,52 @@ +import { DesignerMode } from "./designer-context"; + +export function resolveFormModulePropertyConfig(designerMode: DesignerMode) { + return { + "title": "module", + "description": "表单元数据属性配置", + "type": "object", + "categories": { + "rtcBasic": { + "title": "扩展表单", + "hide": designerMode !== DesignerMode.PC_RTC, + "properties": { + "rtcId": { + "title": "表单元数据标识", + "type": "string", + "readonly": true + }, + "rtcCode": { + "title": "表单元数据编号", + "type": "string", + "readonly": true + }, + "rtcName": { + "title": "表单元数据名称", + "type": "string", + "readonly": true + } + } + }, + "basic": { + "title": designerMode === DesignerMode.PC_RTC ? "基础表单" : "基本信息", + "properties": { + "id": { + "title": "表单元数据标识", + "type": "string", + "readonly": true + }, + "code": { + "title": "表单元数据编号", + "type": "string", + "readonly": true + }, + "name": { + "title": "表单元数据名称", + "type": "string", + "readonly": true + } + } + } + } + } +}; diff --git a/packages/devkit/lib/expression/expression-registry.ts b/packages/devkit/lib/expression/expression-registry.ts index 4aec4402831..b43c6df20be 100644 --- a/packages/devkit/lib/expression/expression-registry.ts +++ b/packages/devkit/lib/expression/expression-registry.ts @@ -16,7 +16,7 @@ export class ExpressionRegistry { } this.expressionObjects = []; expressions.forEach((expressionConfig: ExpressionConfig) => { - const { rules, target, targetType } = expressionConfig; + const { rules, target, targetType, targetId } = expressionConfig; if (!target || !targetType || !rules || rules.length < 1) { return; } @@ -36,7 +36,8 @@ export class ExpressionRegistry { message: rule.message, messageType: rule.messageType || 'error', deps: [], - elementId: rule.elementId + elementId: rule.elementId, + fieldId: targetId }; // 构造表达式提示信息 if ((rule.type === ExpressionType.Required || rule.type === ExpressionType.Validate || rule.type === ExpressionType.DataPicking)) { diff --git a/packages/devkit/lib/expression/types.ts b/packages/devkit/lib/expression/types.ts index 5437883e3fb..3984c15265f 100644 --- a/packages/devkit/lib/expression/types.ts +++ b/packages/devkit/lib/expression/types.ts @@ -66,6 +66,7 @@ export interface ExpressionConfig { target: string; targetType: ExpressionBindingType; rules: ExpressionRule[]; + targetId: string; } /** * 表达式对象 @@ -120,6 +121,7 @@ export interface ExpressionObject { */ factory?: any; elementId?: string; + fieldId?: string; } /** diff --git a/packages/devkit/lib/module/module.ts b/packages/devkit/lib/module/module.ts index 5c1ac02914e..e08f0d766ff 100644 --- a/packages/devkit/lib/module/module.ts +++ b/packages/devkit/lib/module/module.ts @@ -1,4 +1,4 @@ -import { DEFAULT_LOCALE, EventBus, Injector } from '../common/index'; +import { DEFAULT_LOCALE, EventBus,IDisposable, Injector } from '../common/index'; import { Devkit, useDevkit } from '../devkit'; import { Entity, EntityState, EntityStore, UIState, UIStore, @@ -18,7 +18,7 @@ const MODULE_INJECTION_TOKEN = Symbol('Module'); /** * 模块定义 */ -class Module { +class Module implements IDisposable{ /** * 模块ID */ @@ -73,6 +73,7 @@ class Module { * 上下文 */ private context: Context; + /** * 事件总线 */ @@ -82,6 +83,11 @@ class Module { */ private locale: string; + /** + * 可释放对象 + */ + private disposables: IDisposable[] + /** * 构造函数 */ @@ -97,6 +103,7 @@ class Module { this.context = new Context(); this.id = new Date().getTime().toString(); this.eventBus = new EventBus(); + this.disposables = []; } /** @@ -429,9 +436,17 @@ class Module { public getContext() { return this.context; } + + /** + * 获取模块ID + */ public getId() { return this.id; } + + /** + * 获取事件总线 + */ public getEventBus() { return this.eventBus; } @@ -442,6 +457,22 @@ class Module { public getLocale(){ return this.locale; } + + /** + * 注册可释放对象 + */ + public registerDisposable(disposable: IDisposable): void { + this.disposables.push(disposable); + } + + /** + * 释放资源 + */ + public dispose() { + this.disposables.forEach((disposable) => { + disposable.dispose(); + }); + } } /** diff --git a/packages/devkit/lib/store/entity-store/entity-data-loader.ts b/packages/devkit/lib/store/entity-store/entity-data-loader.ts index 1701159e600..2cf6918d3d7 100644 --- a/packages/devkit/lib/store/entity-store/entity-data-loader.ts +++ b/packages/devkit/lib/store/entity-store/entity-data-loader.ts @@ -2,6 +2,7 @@ import { FieldType, EntitySchema, EntityFieldSchema, PrimitiveFieldSchema, Entit import { Entity } from './entity'; import { createEntityBySchema } from './entity-creator'; import { createEntityListBySchema } from './entity-list-creator'; +import { Locale } from '../../i18n'; /** * 实体数据加载器 @@ -45,7 +46,22 @@ class EntityDataLoader { const multiLanguage = fieldSchema.multiLanguage; const dataField = multiLanguage ? `${fieldSchema.name}_MULTILANGUAGE` : fieldSchema.name; const propName = fieldSchema.name; - entity[propName] = entityData[dataField]; + const localeId = Locale.getLocaleId(); + if (multiLanguage) { + const currentValue = entityData[propName]; + if (currentValue && typeof currentValue === 'object') { + entity[propName] = currentValue; + } else { + if (entityData.hasOwnProperty(dataField)) { + entity[propName] = entityData[dataField]; + } else { + entity[propName] = { [localeId]: entityData[propName] }; + } + } + } else { + entity[propName] = entityData[propName]; + } + }); } diff --git a/packages/devkit/lib/store/entity-store/entity-data-peeker.ts b/packages/devkit/lib/store/entity-store/entity-data-peeker.ts index fb50a017fd2..a355eaa43fb 100644 --- a/packages/devkit/lib/store/entity-store/entity-data-peeker.ts +++ b/packages/devkit/lib/store/entity-store/entity-data-peeker.ts @@ -46,11 +46,16 @@ class EntityDataPeeker { // const dataField = fieldSchema.multiLanguage ? `${fieldSchema.name}_MULTILANGUAGE` : fieldSchema.name; const propName = fieldSchema.name; const value = entity[propName]; - if (fieldSchema.multiLanguage === true && !value) { + if (fieldSchema.multiLanguage === true) { const localeId = Locale.getLocaleId(); - entityData[propName] = { - [localeId]: entity[propName] - }; + if (typeof value === 'object') { + entityData[propName] = entity[propName]; + } else { + entityData[propName] = { + [localeId]: entity[propName] + }; + } + } else { entityData[propName] = entity[propName]; } diff --git a/packages/devkit/lib/store/entity-store/entity-state-query.ts b/packages/devkit/lib/store/entity-store/entity-state-query.ts index 8b253550da9..085282adbb2 100644 --- a/packages/devkit/lib/store/entity-store/entity-state-query.ts +++ b/packages/devkit/lib/store/entity-store/entity-state-query.ts @@ -3,6 +3,8 @@ import { EntityPath, EntityPathNodeType } from './entity-path/index'; import { Entity } from './entity'; import { EntityList } from './entity-list'; import { EntityState, EntityStore } from './entity-store'; +import { FieldType, PrimitiveFieldSchema } from './entity-schema'; +import { cloneDeep } from 'lodash-es'; /** @@ -18,7 +20,7 @@ class EntityStateQuery { /** * 实体集合 */ - private entityList: EntityList + private entityList: EntityList; /** * 构造函数 @@ -110,6 +112,14 @@ class EntityStateQuery { */ public getValueByPath(path: EntityPath) { const value = this.getEntityNode(path) as any; + const fieldSchema = this.entityStore.getEntitySchema().getFieldSchemaByPath(path); + if (fieldSchema && fieldSchema.type === FieldType.Primitive) { + const primitiveFielsSchema = fieldSchema as PrimitiveFieldSchema; + const { multiLanguage } = primitiveFielsSchema; + if (multiLanguage) { + return cloneDeep(value); + } + } return value; } diff --git a/packages/devkit/lib/store/entity-store/entity-state-updater.ts b/packages/devkit/lib/store/entity-store/entity-state-updater.ts index 92377189ca1..5c0e0377062 100644 --- a/packages/devkit/lib/store/entity-store/entity-state-updater.ts +++ b/packages/devkit/lib/store/entity-store/entity-state-updater.ts @@ -8,6 +8,8 @@ import { Entity } from './entity'; import { EntityList } from './entity-list'; import { EntityStateQuery } from './entity-state-query'; import { EntityState, EntityStore } from './entity-store'; +import { FieldType, PrimitiveFieldSchema } from './entity-schema'; +import { isEqual } from 'lodash-es'; /** * 实体状态更新 @@ -148,6 +150,14 @@ class EntityStateUpdater { if (oldValue === newValue) { return; } + const fieldSchema = this.entityStore.getEntitySchema().getFieldSchemaByPath(path); + if (fieldSchema && fieldSchema.type === FieldType.Primitive) { + const primitiveFielsSchema = fieldSchema as PrimitiveFieldSchema; + const { multiLanguage } = primitiveFielsSchema; + if (multiLanguage && isEqual(oldValue, newValue)) { + return; + } + } entity[fieldName] = newValue; const change: ChangeValueChange = { diff --git a/packages/devkit/lib/store/form/validation/validators/max-length-validator.ts b/packages/devkit/lib/store/form/validation/validators/max-length-validator.ts index 02a7cc8257b..6dae97e952b 100644 --- a/packages/devkit/lib/store/form/validation/validators/max-length-validator.ts +++ b/packages/devkit/lib/store/form/validation/validators/max-length-validator.ts @@ -24,6 +24,38 @@ class MaxLengthValidator extends BaseValidator { if (ValidatorUtil.isEmptyInput(value)) { return null; } + const maxLength = rule.maxLength; + + // 多语字段 + if (rule.multiLanguage && typeof value === 'object') { + if (Object.keys(value).length < 1) { + return null; + } + const isEmptyValue = Object.keys(value).every((key: string) => !value[key]); + if (isEmptyValue) { + return null; + } + let actualMaxLength = 0; + const isInputValid = Object.keys(value).every((key: string) => { + const currentValue = value[key]; + if (!currentValue) { + return true; + } + if (!ValidatorUtil.isStringLike(currentValue)) { + return true; + } + const actualLength = currentValue.length; + actualMaxLength = actualLength; + return actualLength <= maxLength; + }); + if (isInputValid) { + return null; + } + const name = rule.name; + const message = rule.message || `输入的值不应超过${maxLength}个字符`; + const error = { name, message, actualLength: actualMaxLength, maxLength }; + return error; + } // 输入值不是类似字符串的值,不触发校验 if (!ValidatorUtil.isStringLike(value)) { @@ -31,9 +63,7 @@ class MaxLengthValidator extends BaseValidator { } value = '' + value; - const maxLength = rule.maxLength; const actualLength = value.length; - if (actualLength > maxLength) { const name = rule.name; const message = rule.message || `输入的值不应超过${maxLength}个字符`; diff --git a/packages/farris-theme/theme/iteration/_variables.scss b/packages/farris-theme/theme/iteration/_variables.scss index 6bfb473225b..28579ea053e 100644 --- a/packages/farris-theme/theme/iteration/_variables.scss +++ b/packages/farris-theme/theme/iteration/_variables.scss @@ -621,7 +621,7 @@ $zindex-fixed: 1030 !default; $zindex-modal-backdrop: 1040 !default; $zindex-modal: 1050 !default; $zindex-popover: 1060 !default; -$zindex-tooltip: 1070 !default; +$zindex-tooltip: 1090 !default; // Navs diff --git a/packages/mobile-ui-vue/components/button-group/index.ts b/packages/mobile-ui-vue/components/button-group/index.ts index f825aa66e68..54ce956647f 100644 --- a/packages/mobile-ui-vue/components/button-group/index.ts +++ b/packages/mobile-ui-vue/components/button-group/index.ts @@ -1,7 +1,7 @@ import { withInstall, withRegister, withRegisterDesigner } from '@farris/mobile-ui-vue/common'; import ButtonGroupInstallless from './src/button-group.component'; import { propsResolverGenerator } from './src/button-group.props'; -import ButtonGroupDesign from './src/designer/card.design.component'; +import ButtonGroupDesign from './src/designer/button-group.design.component'; const BUTTON_GROUP_REGISTERED_NAME = 'button-group'; diff --git a/packages/mobile-ui-vue/components/button-group/src/button-group.props.ts b/packages/mobile-ui-vue/components/button-group/src/button-group.props.ts index ec5f39d8c95..fc19278a527 100644 --- a/packages/mobile-ui-vue/components/button-group/src/button-group.props.ts +++ b/packages/mobile-ui-vue/components/button-group/src/button-group.props.ts @@ -31,7 +31,7 @@ export const buttonGroupProps = { mode: { type: String as PropType, default: 'default' }, /** 按钮大小 */ - size: { type: String as PropType, default: 'normal' }, + size: { type: String as PropType, default: 'middle' }, /** 按钮样式 */ type: { type: String as PropType, default: 'primary' }, diff --git a/packages/mobile-ui-vue/components/button-group/src/button-group.scss b/packages/mobile-ui-vue/components/button-group/src/button-group.scss index 5660c571295..923bfdb58e3 100644 --- a/packages/mobile-ui-vue/components/button-group/src/button-group.scss +++ b/packages/mobile-ui-vue/components/button-group/src/button-group.scss @@ -45,6 +45,7 @@ &--block { display: flex; + width: 100%; } &--vertical { diff --git a/packages/mobile-ui-vue/components/button-group/src/designer/card.design.component.tsx b/packages/mobile-ui-vue/components/button-group/src/designer/button-group.design.component.tsx similarity index 75% rename from packages/mobile-ui-vue/components/button-group/src/designer/card.design.component.tsx rename to packages/mobile-ui-vue/components/button-group/src/designer/button-group.design.component.tsx index 145466524ca..0168446c921 100644 --- a/packages/mobile-ui-vue/components/button-group/src/designer/card.design.component.tsx +++ b/packages/mobile-ui-vue/components/button-group/src/designer/button-group.design.component.tsx @@ -28,8 +28,20 @@ export default defineComponent({ elementRef.value?.click?.(); } + const buttonGroupProps = computed(() => { + return { + items: props.items, + mode: props.mode, + size: props.size, + type: props.type, + round: props.round, + block: props.block, + vertical: props.vertical, + }; + }); + return () => ( - + ); } }); diff --git a/packages/mobile-ui-vue/components/button-group/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/button-group/src/designer/use-designer-rules.ts index e5c930c80df..da7c1b905f6 100644 --- a/packages/mobile-ui-vue/components/button-group/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/button-group/src/designer/use-designer-rules.ts @@ -12,6 +12,13 @@ export function useDesignerRulesForButtonGroup(designItemContext: DesignerItemCo return ''; } + function getDesignerClass(): string{ + if(designItemContext.schema.block !== false){ + return ' fm-button-group--block '; + } + return ''; + } + function checkCanMoveComponent() { return true; } @@ -36,6 +43,7 @@ export function useDesignerRulesForButtonGroup(designItemContext: DesignerItemCo checkCanMoveComponent, checkCanDeleteComponent, hideNestedPaddingInDesginerView, - getPropsConfig + getPropsConfig, + getDesignerClass }; } diff --git a/packages/mobile-ui-vue/components/button-group/src/property-config/button-group.property-config.ts b/packages/mobile-ui-vue/components/button-group/src/property-config/button-group.property-config.ts index bfa8c6387fa..71f11600eed 100644 --- a/packages/mobile-ui-vue/components/button-group/src/property-config/button-group.property-config.ts +++ b/packages/mobile-ui-vue/components/button-group/src/property-config/button-group.property-config.ts @@ -86,7 +86,7 @@ export class ButtonGroupProperty extends BaseControlProperty { valueField: 'value', data: [ { value: 'large', text: '大号按钮' }, - { value: 'normal', text: '普通按钮' }, + { value: 'middle', text: '普通按钮' }, { value: 'small', text: '小号按钮' }, { value: 'mini', text: '迷你按钮' }, ], diff --git a/packages/mobile-ui-vue/components/button-group/src/schema/button-group.schema.json b/packages/mobile-ui-vue/components/button-group/src/schema/button-group.schema.json index f9f7c17b46d..3b0aaa2ba42 100644 --- a/packages/mobile-ui-vue/components/button-group/src/schema/button-group.schema.json +++ b/packages/mobile-ui-vue/components/button-group/src/schema/button-group.schema.json @@ -38,7 +38,7 @@ "default": false }, "block": { - "description": "块级元素", + "description": "占满整行", "type": "boolean", "default": true }, @@ -55,7 +55,7 @@ "size": { "description": "按钮大小", "type": "string", - "default": "normal" + "default": "middle" }, "items": { "description": "按钮项集合", diff --git a/packages/mobile-ui-vue/components/button/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/button/src/designer/use-designer-rules.ts index da2a3b6fd2b..28b9375b4e3 100644 --- a/packages/mobile-ui-vue/components/button/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/button/src/designer/use-designer-rules.ts @@ -31,7 +31,10 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe } function getDesignerClass(): string { - return ' '; + if (designItemContext.schema.block !== false) { + return ' fm-button--block '; + } + return ''; } /** @@ -42,16 +45,16 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe const { schema } = designItemContext; return componentProp.getPropertyConfig(schema); } - + return { canAccepts, - // triggerBelongedComponentToMoveWhenMoved, - // triggerBelongedComponentToDeleteWhenDeleted, - // checkCanMoveComponent, - // checkCanDeleteComponent, + triggerBelongedComponentToMoveWhenMoved, + triggerBelongedComponentToDeleteWhenDeleted, + checkCanMoveComponent, + checkCanDeleteComponent, hideNestedPaddingInDesginerView, - // getStyles, - // getDesignerClass, + getStyles, + getDesignerClass, getPropsConfig }; } diff --git a/packages/mobile-ui-vue/components/button/src/schema/button.schema.json b/packages/mobile-ui-vue/components/button/src/schema/button.schema.json index adb0613d6d7..99b32da4d13 100644 --- a/packages/mobile-ui-vue/components/button/src/schema/button.schema.json +++ b/packages/mobile-ui-vue/components/button/src/schema/button.schema.json @@ -40,21 +40,22 @@ "displayType": { "description": "显示类型", "type": "string", - "default": "default" + "default": "primary" }, "text": { "description": "文本", - "type": "string" + "type": "string", + "default": "按钮" }, "block": { - "description": "沾满整行", + "description": "占满整行", "type": "boolean", - "default": false + "default": true }, "round": { "description": "圆角按钮", "type": "boolean", - "default": false + "default": true }, "plain": { "description": "朴素按钮", diff --git a/packages/mobile-ui-vue/components/card/src/card.component.tsx b/packages/mobile-ui-vue/components/card/src/card.component.tsx index 94e9eee1dfe..73c82f0a7cf 100644 --- a/packages/mobile-ui-vue/components/card/src/card.component.tsx +++ b/packages/mobile-ui-vue/components/card/src/card.component.tsx @@ -11,6 +11,7 @@ export default defineComponent({ const { bem } = useBem(CARD_NAME); const { slots } = context; const elementRef = ref(); + const contentElementRef = ref(); const toolbarItemCount = computed(() => props.toolbarItems?.length ?? 0); @@ -24,7 +25,7 @@ export default defineComponent({ return props.showFooter && !isFooterEmpty; }); - context.expose({ elementRef }); + context.expose({ elementRef, contentElementRef }); function renderHeader() { if (slots.header) { @@ -39,7 +40,7 @@ export default defineComponent({ function renderContent() { return ( -
+
{slots.content ? slots.content?.() : slots.default?.()}
); diff --git a/packages/mobile-ui-vue/components/card/src/designer/card.design.component.tsx b/packages/mobile-ui-vue/components/card/src/designer/card.design.component.tsx index 17122cf19c9..19ec0b4cf2f 100644 --- a/packages/mobile-ui-vue/components/card/src/designer/card.design.component.tsx +++ b/packages/mobile-ui-vue/components/card/src/designer/card.design.component.tsx @@ -11,7 +11,7 @@ export default defineComponent({ setup(props: CardProps, context) { const cardRef = ref(); const elementRef = computed(() => { - return cardRef.value?.elementRef; + return cardRef.value?.contentElementRef; }); const designerHostService = inject('designer-host-service'); @@ -21,16 +21,15 @@ export default defineComponent({ onMounted(() => { elementRef.value.componentInstance = componentInstance; + elementRef.value.setAttribute("data-dragref", `${designItemContext.schema.id}-container`); + elementRef.value.classList.add("drag-container"); }); context.expose(componentInstance.value); return () => ( + {...props}> {context.slots.default && context.slots.default()} ); diff --git a/packages/mobile-ui-vue/components/card/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/card/src/designer/use-designer-rules.ts index e0e932536a5..200a2719c6d 100644 --- a/packages/mobile-ui-vue/components/card/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/card/src/designer/use-designer-rules.ts @@ -1,10 +1,14 @@ -import { DesignerItemContext } from "@farris/mobile-ui-vue/common"; +import { DesignerItemContext, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { CardProperty } from "../property-config/card.property-config"; import { DesignerHostService, DraggingResolveContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; export function useDesignerRulesForCard(designItemContext: DesignerItemContext, designerHostService?: DesignerHostService): UseDesignerRules { function canAccepts(draggingContext: DraggingResolveContext): boolean { + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } return true; } diff --git a/packages/mobile-ui-vue/components/common/src/compositions/index.ts b/packages/mobile-ui-vue/components/common/src/compositions/index.ts index d4ed1c00f4d..79452bb26a0 100644 --- a/packages/mobile-ui-vue/components/common/src/compositions/index.ts +++ b/packages/mobile-ui-vue/components/common/src/compositions/index.ts @@ -18,3 +18,4 @@ export * from './use-scroll-parent'; export * from './use-resize-observer'; export * from './use-long-press'; export * from './use-designer-component/use-designer-component'; +export * from './use-dragula/use-dragula-common-rule'; diff --git a/packages/mobile-ui-vue/components/common/src/compositions/use-designer-component/use-designer-component.ts b/packages/mobile-ui-vue/components/common/src/compositions/use-designer-component/use-designer-component.ts index 7d820cfddb9..b2798d1669e 100644 --- a/packages/mobile-ui-vue/components/common/src/compositions/use-designer-component/use-designer-component.ts +++ b/packages/mobile-ui-vue/components/common/src/compositions/use-designer-component/use-designer-component.ts @@ -197,6 +197,14 @@ export function useDesignerComponent( return designerRules.onPropertyChanged(event); } } + + /** + * 配置控件的基础信息(展示标题、路径) + */ + function setComponentBasicInfoMap(designerHostService?: DesignerHostService) { + + } + componentInstance.value = { canMove: checkCanMoveComponent(), canSelectParent: checkCanSelectParentComponent(), @@ -221,7 +229,8 @@ export function useDesignerComponent( triggerBelongedComponentToDeleteWhenDeleted: !!designerRules && designerRules.triggerBelongedComponentToDeleteWhenDeleted || ref(false), onRemoveComponent, getCustomButtons, - onPropertyChanged + onPropertyChanged, + setComponentBasicInfoMap, } as DesignerComponentInstance; return componentInstance as any; diff --git a/packages/mobile-ui-vue/components/common/src/compositions/use-dragula/use-dragula-common-rule.ts b/packages/mobile-ui-vue/components/common/src/compositions/use-dragula/use-dragula-common-rule.ts new file mode 100644 index 00000000000..8337fec1d1f --- /dev/null +++ b/packages/mobile-ui-vue/components/common/src/compositions/use-dragula/use-dragula-common-rule.ts @@ -0,0 +1,54 @@ +import { DgControl } from "../../properties"; +import { DesignerHostService, DraggingResolveContext } from "../../types"; + +export function useDragulaCommonRule() { + + /** + * 容器类控件的基础控制规则 + */ + function basalDragulaRuleForContainer(draggingContext: DraggingResolveContext, designerHostService?: DesignerHostService): boolean { + // 检查基础条件 + if (!draggingContext) { + return false; + } + + // 目标容器的组件实例 + const targetCmpInstance = draggingContext.targetContainer?.componentInstance && + draggingContext.targetContainer.componentInstance.value; + + if (!targetCmpInstance) { + return false; + } + + const targetContainerType = targetCmpInstance.schema.type; + const { componentCategory, componentType } = draggingContext; + + // 限制输入类控件的可接收容器 + if (componentCategory === 'input' || componentType === 'form-group') { + return targetContainerType === DgControl["form"].type; + } + + // 限制导航栏的可接收容器 + if (componentType === 'navbar') { + return targetContainerType === DgControl["page-header-container"].type; + } + + // 限制容器控件的可接收容器 + const containerTypes = [ + DgControl["page-header-container"].type, + DgControl["page-body-container"].type, + DgControl["page-footer-container"].type, + DgControl["float-container"].type + ]; + + if (containerTypes.includes(componentType)) { + return targetContainerType === DgControl["page-container"].type; + } + + return true; + } + + return { + basalDragulaRuleForContainer + }; +} \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/common/src/properties/dg-control.ts b/packages/mobile-ui-vue/components/common/src/properties/dg-control.ts index 7686b232834..6d2e60860a5 100644 --- a/packages/mobile-ui-vue/components/common/src/properties/dg-control.ts +++ b/packages/mobile-ui-vue/components/common/src/properties/dg-control.ts @@ -30,7 +30,7 @@ export const DgControl = { 'lookup': { type: 'lookup', name: '帮助', icon: 'LookupEdit' }, - 'number-input': { type: 'number-input', name: '数值', icon: 'NumericBox' }, + 'number-spinner': { type: 'number-spinner', name: '数值', icon: 'NumericBox' }, 'date-picker': { type: 'date-picker', name: '日期', icon: 'DateBox' }, diff --git a/packages/mobile-ui-vue/components/common/src/properties/schema-dom-mapping.ts b/packages/mobile-ui-vue/components/common/src/properties/schema-dom-mapping.ts index 71f7291318c..c2fc3c7a24e 100644 --- a/packages/mobile-ui-vue/components/common/src/properties/schema-dom-mapping.ts +++ b/packages/mobile-ui-vue/components/common/src/properties/schema-dom-mapping.ts @@ -22,16 +22,16 @@ export class SchemaDOMMapping { { key: DgControl['lookup'].type, value: DgControl['lookup'].name } ], Decimal: [ - { key: DgControl['number-input'].type, value: DgControl['number-input'].name } + { key: DgControl['number-spinner'].type, value: DgControl['number-spinner'].name } ], Integer: [ - { key: DgControl['number-input'].type, value: DgControl['number-input'].name } + { key: DgControl['number-spinner'].type, value: DgControl['number-spinner'].name } ], Number: [ - { key: DgControl['number-input'].type, value: DgControl['number-input'].name } + { key: DgControl['number-spinner'].type, value: DgControl['number-spinner'].name } ], BigNumber: [ - { key: DgControl['number-input'].type, value: DgControl['number-input'].name } + { key: DgControl['number-spinner'].type, value: DgControl['number-spinner'].name } ], Date: [ { key: DgControl['date-picker'].type, value: DgControl['date-picker'].name } diff --git a/packages/mobile-ui-vue/components/component/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/component/src/designer/use-designer-rules.ts index 42ed7e2a757..84ba4678200 100644 --- a/packages/mobile-ui-vue/components/component/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/component/src/designer/use-designer-rules.ts @@ -1,4 +1,4 @@ -import { DesignerHostService, DesignerItemContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; +import { DesignerHostService, DesignerItemContext, DraggingResolveContext, UseDesignerRules, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { ComponentProperty } from "../property-config/component.property-config"; export function useDesignerRules(designItemContext: DesignerItemContext, designerHostService?: DesignerHostService): UseDesignerRules { @@ -6,7 +6,11 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe /** * 判断是否可以接收拖拽新增的子级控件 */ - function canAccepts(): boolean { + function canAccepts(draggingContext: DraggingResolveContext): boolean { + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } return true; } diff --git a/packages/mobile-ui-vue/components/content-container/src/designer/content-container.design.component.tsx b/packages/mobile-ui-vue/components/content-container/src/designer/content-container.design.component.tsx index edc18151625..2c387d1b976 100644 --- a/packages/mobile-ui-vue/components/content-container/src/designer/content-container.design.component.tsx +++ b/packages/mobile-ui-vue/components/content-container/src/designer/content-container.design.component.tsx @@ -25,8 +25,7 @@ export default defineComponent({ context.expose(componentInstance.value); const designProps = computed(() => ({ - ...props, - display: 'block', + ...props })); return () => { diff --git a/packages/mobile-ui-vue/components/content-container/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/content-container/src/designer/use-designer-rules.ts index 6871ed7a654..fedebf0e226 100644 --- a/packages/mobile-ui-vue/components/content-container/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/content-container/src/designer/use-designer-rules.ts @@ -1,10 +1,14 @@ -import { DesignerItemContext } from "@farris/mobile-ui-vue/common"; +import { DesignerItemContext, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { ContentContainerProperty } from "../property-config/content-container.property-config"; import { DesignerHostService, DraggingResolveContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; export function useDesignerRulesForContentContainer(designItemContext: DesignerItemContext, designerHostService?: DesignerHostService): UseDesignerRules { function canAccepts(draggingContext: DraggingResolveContext): boolean { + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } return true; } diff --git a/packages/mobile-ui-vue/components/date-picker/src/designer/date-picker.design.component.tsx b/packages/mobile-ui-vue/components/date-picker/src/designer/date-picker.design.component.tsx index 6bf49f080e9..f670582894e 100644 --- a/packages/mobile-ui-vue/components/date-picker/src/designer/date-picker.design.component.tsx +++ b/packages/mobile-ui-vue/components/date-picker/src/designer/date-picker.design.component.tsx @@ -34,7 +34,9 @@ export default defineComponent({ const inputProps = computed(() => ({ ...props, - editable: false + editable: false, + rightIcon: 's-arrow', + placeholder: props.placeholder || '请选择日期' })); return () => ; diff --git a/packages/mobile-ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts b/packages/mobile-ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts index 14815dbae02..060c423f2ff 100644 --- a/packages/mobile-ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts +++ b/packages/mobile-ui-vue/components/date-picker/src/property-config/date-picker.property-config.ts @@ -10,13 +10,8 @@ export class DatePickerProperty extends InputBaseProperty { const displayFormatOptions = this.getDateFormatOptions(propertyData?.editor); return this.getComponentConfig( propertyData, - {}, + { type: 'date-picker' }, { - title: { - description: '', - title: '标题', - type: 'string', - }, displayFormat: { description: '', title: '日期格式', diff --git a/packages/mobile-ui-vue/components/date-picker/src/schema/date-picker.schema.json b/packages/mobile-ui-vue/components/date-picker/src/schema/date-picker.schema.json index f0216d49dcc..7309b42382c 100644 --- a/packages/mobile-ui-vue/components/date-picker/src/schema/date-picker.schema.json +++ b/packages/mobile-ui-vue/components/date-picker/src/schema/date-picker.schema.json @@ -81,5 +81,5 @@ }, "events": ["onUpdate:modelValue"], "required": ["type"], - "ignore": ["id", "type", "appearance"] + "ignore": ["id", "appearance"] } diff --git a/packages/mobile-ui-vue/components/designer-canvas/index.ts b/packages/mobile-ui-vue/components/designer-canvas/index.ts deleted file mode 100644 index d2d31b946fc..00000000000 --- a/packages/mobile-ui-vue/components/designer-canvas/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { DgControl } from './src/composition/dg-control'; -import type { DesignerHostService, UseDesignerRules } from './src/composition/types'; -export * from './src/composition/props/designer-canvas.props'; -export * from './src/composition/function/use-designer-component'; -export * from './src/composition/function/use-designer-inner-component'; -export * from './src/types'; - -export { DgControl, UseDesignerRules, DesignerHostService }; diff --git a/packages/mobile-ui-vue/components/designer-canvas/src/components/designer-item.component.tsx b/packages/mobile-ui-vue/components/designer-canvas/src/components/designer-item.component.tsx deleted file mode 100644 index 10b54bee926..00000000000 --- a/packages/mobile-ui-vue/components/designer-canvas/src/components/designer-item.component.tsx +++ /dev/null @@ -1,340 +0,0 @@ - -import { Ref, SetupContext, computed, defineComponent, inject, onMounted, provide, ref, watch, onBeforeUnmount } from 'vue'; -import { DesignerItemPropsType, designerItemProps } from '../composition/props/designer-item.props'; -import { componentMap, componentPropsConverter } from './maps'; -import { UseDragula } from '../composition/types'; -import { ComponentSchema, DesignerComponentInstance, DesignerItemContext } from '../types'; -import FDesignerPlaceholder from './designer-placeholder.component'; -import { canvasChanged, setPositionOfButtonGroup } from '../composition/designer-canvas-changed'; -import { getCustomClass } from '@farris/mobile-ui-vue/common'; - -const FDesignerItem = defineComponent({ - name: 'FDesignerItem', - props: designerItemProps, - emits: ['selectionChange'], - setup(props: DesignerItemPropsType, context) { - const id = ref(`${props.modelValue.id}-component`); - const canMove = ref(props.canMove); - const canDelete = ref(props.canDelete); - const canNested = ref(false); - const schema = ref(props.modelValue); - const componentId = ref(props.componentId || ''); - const designComponentStyle = ref(''); - const designComponentClass = ref(''); - const designCustomClass = ref(props.customClass); - const designerItemElementRef = ref(); - const useDragulaComposition = inject('canvas-dragula'); - const componentInstance = ref() as Ref; - const parent = inject('design-item-context'); - const designItemContext = { designerItemElementRef, componentInstance, schema: schema.value, parent, setupContext: context as SetupContext }; - provide('design-item-context', designItemContext); - const useFormSchema = inject('useFormSchema'); - - const designerItemClass = computed(() => { - const componentClass = props.modelValue.appearance ? (props.modelValue.appearance.class as string) || '' : ''; - const customButtons = componentInstance.value?.getCustomButtons && componentInstance.value.getCustomButtons(); - let classObject = { - 'farris-component': true, - // 受position-relative影响,整个容器的高度不能被撑起 - 'flex-fill': schema.value.id === 'root-component', - 'position-relative': canMove.value && canDelete.value || (customButtons?.length), - 'farris-nested': canNested.value, - 'can-move': canMove.value, - 'd-none': designerItemElementRef.value && (designerItemElementRef.value as HTMLElement).classList.contains('d-none'), - 'dgComponentSelected': designerItemElementRef.value && (designerItemElementRef.value as HTMLElement).classList.contains('dgComponentSelected'), - 'dgComponentFocused': designerItemElementRef.value && (designerItemElementRef.value as HTMLElement).classList.contains('dgComponentFocused'), - } as Record; - classObject[`farris-component-${schema.value.type}`] = true; - classObject = getCustomClass(classObject, componentClass); - classObject = getCustomClass(classObject, designComponentClass.value); - classObject = getCustomClass(classObject, designCustomClass.value); - return classObject; - }); - - const desginerItemStyle = computed(() => { - const styleObject = {} as Record; - const componentStyle = props.modelValue.appearance ? (props.modelValue.appearance.style as string) || '' : ''; - if (componentStyle) { - componentStyle.split(';').reduce((result: Record, styleString: string) => { - const [styleKey, styleValue] = styleString.split(':'); - result[styleKey] = styleValue; - return result; - }, styleObject); - } - if (designComponentStyle.value) { - designComponentStyle.value.split(';').reduce((result: Record, styleString: string) => { - const [styleKey, styleValue] = styleString.split(':'); - if (styleKey) { - result[styleKey] = styleValue; - } - return result; - }, styleObject); - } - return styleObject; - }); - - function onClickDeleteButton(payload: MouseEvent, schemaToRemove: ComponentSchema) { - if (payload) { - payload.preventDefault(); - payload.stopPropagation(); - } - - // 连同所属组件一起删除,使用场景如data-grid、form控件等。 - if (componentInstance.value.triggerBelongedComponentToDeleteWhenDeleted) { - const belongedComponentInstance = componentInstance.value.getBelongedComponentInstance(componentInstance); - if (belongedComponentInstance && belongedComponentInstance.parent) { - const belongedComponentInstanceParent = ref(belongedComponentInstance?.parent) as any; - const indexToRemove = belongedComponentInstanceParent.value.contents.findIndex( - (contentItem: ComponentSchema) => contentItem.id === belongedComponentInstance.schema.id - ); - belongedComponentInstanceParent.value?.contents?.splice(indexToRemove, 1); - - canvasChanged.value++; - } - return; - } - componentInstance.value.onRemoveComponent(); - let parentContext = parent; - let locatePredicate: any = (contentItem: ComponentSchema) => contentItem.id === schemaToRemove.id; - if (schemaToRemove.type === 'component') { - parentContext = parent?.parent; - locatePredicate = (contentItem: ComponentSchema) => contentItem.component === schemaToRemove.id; - - } - if (parentContext && parentContext.schema.contents) { - const indexToRemove = parentContext.schema.contents.findIndex(locatePredicate); - parentContext.schema.contents.splice(indexToRemove, 1); - - canvasChanged.value++; - context.emit('selectionChange'); - - } - - } - - function renderDeleteButton(componentSchema: ComponentSchema) { - return ( - canDelete.value && ( -
{ - onClickDeleteButton(payload, componentSchema); - }}> - -
- ) - ); - } - - function renderMoveButton() { - return ( - canMove.value && ( -
- -
- ) - ); - } - - function renderCustomButtons() { - const customButtons = componentInstance.value?.getCustomButtons && componentInstance.value.getCustomButtons(); - - return ( - customButtons && - !!customButtons.length && - customButtons.map((buttonConfig: any) => { - return ( -
buttonConfig.onClick && buttonConfig.onClick(payload)}> - -
- ); - }) - ); - } - - function renderIconPanel(componentSchema: ComponentSchema) { - return ( -
-
- {renderDeleteButton(componentSchema)} - {renderMoveButton()} - {renderCustomButtons()} -
-
- ); - } - - function onSelectionChange(schemaType: string, schemaValue: ComponentSchema, componentId: string, componentInstance: DesignerComponentInstance) { - context.emit('selectionChange', schemaType, schemaValue, componentId, componentInstance); - } - - function renderContent(viewSchema: ComponentSchema) { - const componentKey = viewSchema.type; - const Component = componentMap[componentKey]; - const propsConverter = componentPropsConverter[componentKey]; - const viewProps = propsConverter ? propsConverter(viewSchema) : {}; - viewProps.customClass = props.ignore ? viewProps.customClass : ''; - viewProps.componentId = componentId.value; - viewProps.id = viewSchema.id; - const shouldShowPlaceholder = viewSchema.contents && viewSchema.contents.length === 0; - const hasContent = viewSchema.contents && !!viewSchema.contents.length; - return hasContent && Component ? ( - - {(viewSchema.contents as ComponentSchema[]).map((contentSchema: any) => ( - - ))} - - ) : Component ? ( - shouldShowPlaceholder ? ( - - - - ) : ( - - ) - ) : ( -
- ); - } - - function renderChildComponentContent(viewSchema: ComponentSchema) { - const componentKey = viewSchema.type; - if (componentKey === 'component-ref') { - // eslint-disable-next-line prefer-const - let componentSchema = useFormSchema?.getFormSchema().module.components - .find((component: any) => component.id === viewSchema.component); - if (componentSchema) { - - return ; - } - } - } - watch( - () => props.modelValue, - (value: any) => { - schema.value = value; - id.value = `${value.id}-component`; - componentId.value = value.id; - } - ); - - function updatePositionOfButtonGroup(event: Event | any) { - const targetElement = event?.target as any; - setPositionOfButtonGroup(targetElement); - } - /** - * 记录滚动区域 - */ - function recordScrollContainer(element: HTMLElement) { - if (!window['scrollContainerList']) { window['scrollContainerList'] = new Set(); } - - const id = element.getAttribute('id'); - if (id) { - window['scrollContainerList'].add(id); - } - } - - function updatePositionOfBtnGroupWhenScroll(event: Event | any) { - const targetElement = event?.target as any; - recordScrollContainer(targetElement); - updatePositionOfButtonGroup(event); - } - function bindingScrollEvent() { - if (schema.value?.contents?.length && designerItemElementRef.value) { - designerItemElementRef.value.addEventListener('scroll', updatePositionOfBtnGroupWhenScroll); - } - } - - onMounted(() => { - if (designerItemElementRef.value && componentInstance.value && componentInstance.value.schema) { - const draggableContainer = designerItemElementRef.value.querySelector( - `[data-dragref='${componentInstance.value.schema.id}-container']` - ); - if (useDragulaComposition && draggableContainer) { - useDragulaComposition.attachComponents(draggableContainer, schema.value); - } - canNested.value = componentInstance.value.canNested !== undefined ? componentInstance.value.canNested : canNested.value; - canDelete.value = componentInstance.value.canDelete !== undefined ? componentInstance.value.canDelete : canDelete.value; - canMove.value = componentInstance.value.canMove !== undefined ? componentInstance.value.canMove : canMove.value; - designComponentStyle.value = componentInstance.value.styles || ''; - designComponentClass.value = componentInstance.value.designerClass || ''; - if (designerItemElementRef.value) { - designerItemElementRef.value.componentInstance = componentInstance; - designerItemElementRef.value.designItemContext = designItemContext; - } - componentInstance.value.belongedComponentId = componentId.value; - - } - bindingScrollEvent(); - - canvasChanged.value++; - }); - - onBeforeUnmount(() => { - if (designerItemElementRef.value) { - designerItemElementRef.value.removeEventListener('scroll', updatePositionOfButtonGroup); - } - }); - - function onClickDesignerItem(payload: MouseEvent) { - if (payload) { - payload.preventDefault(); - payload.stopPropagation(); - } - let draggabledesignerItemElementRef: any = designItemContext.designerItemElementRef; - const designerItemElement = designerItemElementRef.value as HTMLElement; - if (designerItemElement) { - const currentFocusedElements = document.getElementsByClassName('dgComponentFocused') as HTMLCollectionOf; - // 重复点击 - const duplicateClick = - currentFocusedElements && - currentFocusedElements.length === 1 && - currentFocusedElements[0] === designerItemElementRef.value; - if (!duplicateClick) { - Array.from(currentFocusedElements).forEach((element: HTMLElement) => element.classList.remove('dgComponentFocused')); - Array.from(document.getElementsByClassName('dgComponentSelected') as HTMLCollectionOf).forEach( - (element: HTMLElement) => element.classList.remove('dgComponentSelected') - ); - - designerItemElement.classList.add('dgComponentFocused'); - context.emit('selectionChange', schema.value.type, schema.value, componentId.value, componentInstance.value); - if (componentInstance.value.getDraggableDesignItemElement) { - draggabledesignerItemElementRef = componentInstance.value.getDraggableDesignItemElement(designItemContext); - if (draggabledesignerItemElementRef && draggabledesignerItemElementRef.value) { - draggabledesignerItemElementRef.value.classList.add('dgComponentSelected'); - - } - } - - } - } - - updatePositionOfButtonGroup({ target: draggabledesignerItemElementRef?.value }); - } - - return () => { - return ( - schema.value.type === 'component-ref' ? - renderChildComponentContent(schema.value) : -
- {renderIconPanel(schema.value)} - {renderContent(schema.value)} -
- ); - }; - } -}); -export default FDesignerItem; diff --git a/packages/mobile-ui-vue/components/designer-canvas/src/components/maps.ts b/packages/mobile-ui-vue/components/designer-canvas/src/components/maps.ts deleted file mode 100644 index 329fd482b8e..00000000000 --- a/packages/mobile-ui-vue/components/designer-canvas/src/components/maps.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { CheckboxGroup, ContentContainer, DatePicker, FormItem, PageHeaderContainer, Picker, RadioGroup, Switch } from "@farris/mobile-ui-vue"; -import Button from "@farris/mobile-ui-vue/button"; -import Component from "@farris/mobile-ui-vue/component"; -import FloatContainer from "@farris/mobile-ui-vue/float-container"; -import Form from "@farris/mobile-ui-vue/form"; -import InputGroup from "@farris/mobile-ui-vue/input-group"; -import ListView from "@farris/mobile-ui-vue/list-view"; -import Navbar from "@farris/mobile-ui-vue/navbar"; -import PageBodyContainer from "@farris/mobile-ui-vue/page-body-container"; -import PageContainer from "@farris/mobile-ui-vue/page-container"; -import PageFooterContainer from "@farris/mobile-ui-vue/page-footer-container"; -import Textarea from "@farris/mobile-ui-vue/textarea"; - -const componentMap: Record = {}; -const componentPropsConverter: Record = {}; -const componentPropertyConfigConverter: Record = {}; - - -let hasLoaded = false; -/** - * 加载设计时组件 - */ -function loadDesignerRegister() { - if (!hasLoaded) { - hasLoaded = true; - Button.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - PageContainer.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - PageHeaderContainer.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - PageBodyContainer.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - PageFooterContainer.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - Navbar.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - Component.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - ListView.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - Form.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - InputGroup.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - FloatContainer.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - ContentContainer.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - FormItem.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - DatePicker.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - Textarea.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - RadioGroup.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - Switch.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - Picker.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - CheckboxGroup.registerDesigner(componentMap, componentPropsConverter, componentPropertyConfigConverter); - - } -} - -export { componentMap, componentPropsConverter, componentPropertyConfigConverter, loadDesignerRegister }; diff --git a/packages/mobile-ui-vue/components/designer-canvas/src/composition/function/drag-resolve.tsx b/packages/mobile-ui-vue/components/designer-canvas/src/composition/function/drag-resolve.tsx deleted file mode 100644 index 05dbcb49147..00000000000 --- a/packages/mobile-ui-vue/components/designer-canvas/src/composition/function/drag-resolve.tsx +++ /dev/null @@ -1,230 +0,0 @@ -import { ModalFunctions } from "../../../../modal/src/composition/type"; -import { ComponentBindingSourceContext, DesignerHostService, DesignerHTMLElement, DraggingResolveContext } from "../types"; -import { DesignViewModelField, FormVariable } from "../../../../common/src/entity/entity-schema"; -import { merge } from "lodash-es"; -import { DgControl } from "../dg-control"; -import { DesignerComponentInstance } from "@farris/mobile-ui-vue"; - -export function dragResolveService(designerHostService: DesignerHostService) { - /** 弹窗实例 */ - let modalEditorRef: ModalFunctions; - /** 拖拽上下文 */ - let componentResolveContext: DraggingResolveContext; - - /** - * 获取拖拽上下文信息 - */ - function getComponentResolveContext(sourceElement: DesignerHTMLElement, sourceContainer: DesignerHTMLElement, targetContainer: DesignerHTMLElement) - : DraggingResolveContext { - - const resolveContext: DraggingResolveContext = { - componentType: String(sourceElement.getAttribute('data-controltype')), - componentFeature: String(sourceElement.getAttribute('data-feature')), - componentCategory: String(sourceElement.getAttribute('data-category')), - label: String(sourceElement.getAttribute('data-controlTypeName')), - sourceType: String(sourceElement.getAttribute('data-sourceType') || 'move'), - parentComponentInstance: targetContainer.componentInstance.value, - sourceElement, - sourceContainer, - targetContainer, - bindingSourceContext: null - }; - - // 现有控件移动位置:从控件实例上获取控件类型 - if (sourceElement.componentInstance) { - resolveContext.componentType = sourceElement.componentInstance.value.schema?.type; - // resolveContext.componentCategory = sourceElement.componentInstance.value.category; - } - - return resolveContext; - } - /** - * 选择绑定实体后事件 - */ - function onSubmitEntitySelctor(bindingSourceContext: ComponentBindingSourceContext) { - componentResolveContext.bindingSourceContext = bindingSourceContext; - - if (modalEditorRef?.modalRef?.value.close) { - modalEditorRef?.modalRef?.value.close(); - } - } - /** - * 取消绑定实体 - */ - function onCancelEntitySelector() { - componentResolveContext.bindingSourceContext = undefined; - if (modalEditorRef?.modalRef?.value.close) { - modalEditorRef?.modalRef?.value.close(); - } - } - /** - * 选择绑定实体窗口 - */ - function renderEntityComponent() { - const { componentType } = componentResolveContext; - const FEntityBindingSelector = designerHostService.uiProviderService.getUiComponent('FEntityBindingSelector'); - return () => (<> ); - } - /** - * 弹出实体绑定窗口 - */ - function triggerBindingEntity() { - return new Promise((resolve, reject) => { - modalEditorRef = designerHostService.modalService.open({ - title: '选择绑定', - width: 800, - height: 600, - fitContent: false, - showButtons: false, - render: renderEntityComponent(), - rejectCallback:()=>{ - componentResolveContext.bindingSourceContext = undefined; - }, - closedCallback: () => { - resolve(componentResolveContext); - }, - draggable: true - }); - }); - } - /** - * 取消绑定字段后事件 - */ - function onCancelFieldSelector() { - componentResolveContext.bindingSourceContext = undefined; - if (modalEditorRef?.modalRef?.value.close) { - modalEditorRef?.modalRef?.value.close(); - } - } - /** - * 获取控件拖拽后的分组信息,以便于后续记录到视图模型 - */ - function getFieldGroupInfo(parentComponentInstance: DesignerComponentInstance) { - let groupId = ''; - let groupName = ''; - if (DgControl['field-set'] && parentComponentInstance.schema.type === DgControl['field-set'].type) { - groupId = parentComponentInstance.schema.id; - groupName = parentComponentInstance.schema.title; - } - return { groupId, groupName }; - } - /** - * 选择绑定字段后事件 - */ - function onSubmitFieldSelctor(data: { selectedData: any, bindingType: any }) { - if (!data || !data.selectedData || !data.bindingType) { - return; - } - const { selectedData, bindingType } = data; - // 若添加到小分组内,需要向vm保存groupId和groupName - const { groupId, groupName } = getFieldGroupInfo(componentResolveContext.parentComponentInstance); - const bindingSourceContext: ComponentBindingSourceContext = { bindingType: 'field' }; - - if (bindingType === 'Form') { - // 绑定字段 - const entityField = selectedData as DesignViewModelField; - bindingSourceContext.entityFieldNode = entityField; - - bindingSourceContext.designViewModelField = merge({}, entityField, { groupId, groupName }); - - componentResolveContext.bindingSourceContext = bindingSourceContext; - } else { - // 绑定变量 - const varibleField = selectedData as FormVariable; - bindingSourceContext.variableFieldNode = merge({}, varibleField, { groupId, groupName }); - componentResolveContext.bindingSourceContext = bindingSourceContext; - } - - if (modalEditorRef?.modalRef?.value.close) { - modalEditorRef?.modalRef?.value.close(); - } - } - /** - * 绑定字段弹窗 - */ - function renderFieldComponent() { - const { parentComponentInstance } = componentResolveContext; - const viewModelId = designerHostService.formSchemaUtils.getViewModelIdByComponentId(parentComponentInstance?.belongedComponentId); - const editorParams = { - viewModelId, - designerHostService, - disableOccupiedFields: true, - componentSchema: { editor: { type: componentResolveContext.componentType } } - }; - const bindingSettings = { enable: false }; - - const FBindingSelectorContainer = designerHostService.uiProviderService.getUiComponent('FBindingSelectorContainer'); - - return () => (<> ); - } - /** - * 弹出绑定字段的窗口 - */ - function triggerBindingField() { - return new Promise((resolve, reject) => { - modalEditorRef = designerHostService.modalService.open({ - title: '选择绑定', - width: 800, - height: 600, - fitContent: false, - showButtons: false, - render: renderFieldComponent(), - rejectCallback:()=>{ - componentResolveContext.bindingSourceContext = undefined; - }, - closedCallback: () => { - resolve(componentResolveContext); - }, - draggable: true - }); - }); - } - /** - * 生成控件schema结构 - */ - function resolveComponentSchema() { - const { parentComponentInstance } = componentResolveContext; - const componentSchema = parentComponentInstance.addNewChildComponentSchema(componentResolveContext, designerHostService); - componentResolveContext.componentSchema = componentSchema; - } - /** - * 解析拖拽元素,并根据场景展示不同的绑定窗口 - */ - async function resolveBindingSource() { - const { componentCategory } = componentResolveContext; - - switch (componentCategory) { - case 'input': { - await triggerBindingField(); - break; - } - case 'dataCollection': { - await triggerBindingEntity(); - break; - } - - } - } - /** - * 根据拖拽元素解析并创建控件 - */ - async function resolveComponentCreationContextByDrop(sourceElement: DesignerHTMLElement, sourceContainer: DesignerHTMLElement, targetContainer: DesignerHTMLElement): Promise { - componentResolveContext = getComponentResolveContext(sourceElement, sourceContainer, targetContainer); - - await resolveBindingSource(); - - // 若返回 undefined 代表终止后续生成 - if (componentResolveContext.bindingSourceContext === undefined) { - return null; - } else { - resolveComponentSchema(); - return componentResolveContext; - } - - } - - return { - getComponentResolveContext, - resolveComponentCreationContextByDrop - }; -} diff --git a/packages/mobile-ui-vue/components/designer-canvas/src/designer-canvas.component.tsx b/packages/mobile-ui-vue/components/designer-canvas/src/designer-canvas.component.tsx deleted file mode 100644 index a8b6a7287e1..00000000000 --- a/packages/mobile-ui-vue/components/designer-canvas/src/designer-canvas.component.tsx +++ /dev/null @@ -1,143 +0,0 @@ - -import { computed, defineComponent, inject, onMounted, onUnmounted, provide, ref, watch } from 'vue'; -import { ComponentSchema, DesignerComponentInstance, DesignerItemContext } from './types'; -import { canvasChanged, setPositionOfButtonGroup } from './composition/designer-canvas-changed'; -import { designerCanvasProps, DesignerCanvasPropsType } from './composition/props/designer-canvas.props'; -import { useDragula } from './composition/function/use-dragula'; -import { DesignerHostService, UseDragula } from './composition/types'; -import FDesignerItem from './components/designer-item.component'; -import './composition/class/designer-canvas.css'; -import './composition/class/control.css'; -import { loadDesignerRegister } from './components/maps'; -import { FM_MODAL_SERVICE_TOKEN } from '../../modal'; -import { FM_UI_PROVIDER_SERVICE_TOKEN } from '@farris/mobile-ui-vue/common'; - -export default defineComponent({ - name: 'FDesignerCanvas', - props: designerCanvasProps, - emits: ['init', 'selectionChange', 'canvasChanged'], - setup(props: DesignerCanvasPropsType, context) { - const schema = ref(); - const componentSchema = ref(); - const designerCanvasElementRef = ref(); - const designerCanvasContainerElementRef = ref(); - const designerItemElementRef = ref(); - const componentInstance = ref(); - const componentId = ref(props.componentId); - let resizeObserver: ResizeObserver | null; - let resizeObserverTimer; - - const designerHostService = { - eventsEditorUtils: inject('eventsEditorUtils'), - formSchemaUtils: inject('useFormSchema'), - formMetadataConverter: inject('formMetadataConverter'), - designViewModelUtils: inject('designViewModelUtils'), - controlCreatorUtils: inject('controlCreatorUtils'), - metadataService: inject('Meatdata_Http_Service_Token'), - schemaService: inject('schemaService'), - useFormCommand: inject('useFormCommand'), - modalService: inject(FM_MODAL_SERVICE_TOKEN), - formStateMachineUtils: inject('useFormStateMachine'), - uiProviderService: inject(FM_UI_PROVIDER_SERVICE_TOKEN), - - }; - provide('designer-host-service', designerHostService); - - const useDragulaComposition = useDragula(designerHostService); - loadDesignerRegister(); - - provide('canvas-dragula', useDragulaComposition); - provide('design-item-context', { - designerItemElementRef, - componentInstance, - schema: componentSchema.value, - parent: undefined - }); - - const designerCanvasClass = computed(() => { - const classObject = { - 'd-flex': true, - 'flex-fill': true, - 'flex-column': true - } as Record; - return classObject; - }); - - /** - * 用于在设计器里 - * @param designerItem - */ - function updateDesignerItem(item: any, compId: string) { - schema.value = item; - componentId.value = compId; - } - - watch(canvasChanged, () => { - setPositionOfButtonGroup(designerCanvasElementRef.value); - - context.emit('canvasChanged'); - }, { flush: 'post' }); - - /** - * 监听画布尺寸变化,重新计算操作图标位置 - */ - function registerResizeListenner() { - resizeObserver = new ResizeObserver(() => { - if (resizeObserverTimer) { - clearTimeout(resizeObserverTimer); - } - - resizeObserverTimer = setTimeout(() => { - setPositionOfButtonGroup(designerCanvasElementRef.value); - }); - }); - resizeObserver.observe(designerCanvasElementRef.value); - } - - function onSelectionChange(schemaType: string, schemaValue: ComponentSchema, cmpId: string, componentInst: DesignerComponentInstance) { - context.emit('selectionChange', schemaType, schemaValue, cmpId, componentInst); - } - - /** - * 监听画布父容器横向滚动条的滚动,重新计算操作图标位置 - */ - function registerEditorPanelScrollEvent() { - designerCanvasContainerElementRef.value.addEventListener('scroll', (e) => { - setPositionOfButtonGroup(designerCanvasElementRef.value); - }); - } - onMounted(() => { - if (designerCanvasElementRef.value) { - useDragulaComposition.initializeDragula(designerCanvasElementRef.value); - } - schema.value = props.modelValue; - context.emit('init', useDragulaComposition); - registerResizeListenner(); - registerEditorPanelScrollEvent(); - }); - - onUnmounted(() => { - if (resizeObserver) { - resizeObserver.unobserve(designerCanvasElementRef.value); - resizeObserver.disconnect(); - resizeObserver = null; - } - }); - - context.expose({ - updateDesignerItem - }); - - return () => { - return ( -
-
-
- {schema.value && } -
-
-
- ); - }; - } -}); diff --git a/packages/mobile-ui-vue/components/form-item/src/designer/form-item-use-designer-rules.ts b/packages/mobile-ui-vue/components/form-item/src/designer/form-item-use-designer-rules.ts index 6a9344e98d4..fcf537d99d5 100644 --- a/packages/mobile-ui-vue/components/form-item/src/designer/form-item-use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/form-item/src/designer/form-item-use-designer-rules.ts @@ -1,4 +1,4 @@ -import { DesignerItemContext, DesignerHostService, UseDesignerRules, DesignerComponentInstance, ComponentSchema } from "@farris/mobile-ui-vue/common"; +import { DesignerItemContext, DesignerHostService, UseDesignerRules, DesignerComponentInstance, ComponentSchema, DraggingResolveContext } from "@farris/mobile-ui-vue/common"; import { FormGroupProperty } from "../property-config/form-group.property-config"; export function useDesignerRulesForFormItem(designItemContext: DesignerItemContext, designerHostService?: DesignerHostService): UseDesignerRules { @@ -11,7 +11,7 @@ export function useDesignerRulesForFormItem(designItemContext: DesignerItemConte return true; } - function canAccepts() { + function canAccepts(draggingContext: DraggingResolveContext) { return false; } diff --git a/packages/mobile-ui-vue/components/form-item/src/designer/form-item.design.component.tsx b/packages/mobile-ui-vue/components/form-item/src/designer/form-item.design.component.tsx index 6164f934fb1..4d5edd794d6 100644 --- a/packages/mobile-ui-vue/components/form-item/src/designer/form-item.design.component.tsx +++ b/packages/mobile-ui-vue/components/form-item/src/designer/form-item.design.component.tsx @@ -1,5 +1,5 @@ -import { computed, defineComponent, inject, onMounted, PropType, ref } from 'vue'; -import { DesignerHostService, DesignerItemContext, extractProperties, useDesignerComponent } from '@farris/mobile-ui-vue/common';; +import { computed, defineComponent, inject, onMounted, PropType, ref, watch } from 'vue'; +import { DesignerHostService, DesignerItemContext, extractProperties, useDesignerComponent } from '@farris/mobile-ui-vue/common'; import { propertyConfigSchemaMapForDesigner, useTypeResolverDesign } from '@farris/mobile-ui-vue/dynamic-resolver'; import { useDesignerRulesForFormItem } from './form-item-use-designer-rules'; import { formItemProps } from '../form-item.props'; @@ -8,17 +8,13 @@ import FormItem from '../form-item.component'; export default defineComponent({ name: 'FmFormItemDesign', inheritAttrs: false, - props: { - ...extractProperties(formItemProps, ['label', 'labelAlign', 'labelWidth']), - editor: { type: Object as PropType, default: ()=>({}) } - }, + props: formItemProps, setup(props, context) { - const { slots } = context; - const { resolveEditorProps, resolveEditorType } = useTypeResolverDesign(); const elementRef = ref(); const editorRef = ref(); + const editor = ref(props.editor); const designItemContext = inject('design-item-context') as DesignerItemContext; const designerHostService = inject('designer-host-service'); @@ -29,47 +25,42 @@ export default defineComponent({ elementRef.value.componentInstance = componentInstance; componentInstance.value.getPropConfig = (...args) => { - let propertyConfigSchema = propertyConfigSchemaMapForDesigner[props.editor.type]; - if (propertyConfigSchema && Object.keys(propertyConfigSchema).length === 0 && editorRef && editorRef.value && editorRef.value?.getPropConfig) { + let propertyConfigSchema = propertyConfigSchemaMapForDesigner[editor.value.type]; + if ( + propertyConfigSchema && + Object.keys(propertyConfigSchema).length === 0 && + editorRef.value?.getPropConfig + ) { propertyConfigSchema = editorRef.value.getPropConfig(...args, componentInstance.value); } return propertyConfigSchema; - }; }); context.expose(componentInstance.value); - const editorProps = computed(()=>{ - const editorType = props.editor.type || 'input-group'; - return resolveEditorProps(editorType, props.editor); - }); - - const renderConditionEditor = () => { - const editorType = props.editor.type || 'input-group'; + const renderConditionEditor = computed(() => { + const editorType = editor.value.type || 'input-group'; const Component = resolveEditorType(editorType); - return ; - }; - - const innerSlots = { - ...slots, - default: renderConditionEditor, - }; - - const formItemProps = computed(()=>{ - return { - ...props, - required: editorProps.value.required - }; + const editorProps = resolveEditorProps(editorType, editor.value); + return () => ; }); + watch( + [ + () => props.editor, + ], + ([newEditor]) => { + editor.value = { ...newEditor }; + }, { deep: true } + ); + return () => ( - + {...props}> + {renderConditionEditor.value()} ); - } -}); +}); \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/form-item/src/designer/response-form-use-designer-rules.ts b/packages/mobile-ui-vue/components/form-item/src/designer/response-form-use-designer-rules.ts index f0180528884..b4932e52029 100644 --- a/packages/mobile-ui-vue/components/form-item/src/designer/response-form-use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/form-item/src/designer/response-form-use-designer-rules.ts @@ -1,4 +1,4 @@ -import { ComponentSchema, DesignerComponentInstance, DesignerHostService, DesignerItemContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; +import { ComponentSchema, DesignerComponentInstance, DesignerHostService, DesignerItemContext, UseDesignerRules, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { DraggingResolveContext } from "@farris/mobile-ui-vue/common"; import { getSchemaByTypeForDesigner } from "@farris/mobile-ui-vue/dynamic-resolver"; import { ref } from "vue"; @@ -16,6 +16,14 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe const isInFixedContextRules = true; function canAccepts(draggingContext: DraggingResolveContext): boolean { + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } + // 只接受输入类控件 + if (draggingContext.componentCategory !== 'input' && draggingContext.componentType !== 'form-group') { + return false; + } return true; } diff --git a/packages/mobile-ui-vue/components/form-item/src/form-item.props.ts b/packages/mobile-ui-vue/components/form-item/src/form-item.props.ts index 42952726e03..c46682de91a 100644 --- a/packages/mobile-ui-vue/components/form-item/src/form-item.props.ts +++ b/packages/mobile-ui-vue/components/form-item/src/form-item.props.ts @@ -35,8 +35,9 @@ export const formItemProps = { showErrorMessage: { type: Boolean, default: undefined }, /** 错误信息位置 */ - errorMessageAlign: { type: String as PropType, deafult: undefined } - + errorMessageAlign: { type: String as PropType, deafult: undefined }, + + editor: { type: Object as PropType, default: {} } }; export type FormItemProps = ExtractPropTypes; diff --git a/packages/mobile-ui-vue/components/form-item/src/form-item.scss b/packages/mobile-ui-vue/components/form-item/src/form-item.scss index c663b4ccc65..060df8e5ea2 100644 --- a/packages/mobile-ui-vue/components/form-item/src/form-item.scss +++ b/packages/mobile-ui-vue/components/form-item/src/form-item.scss @@ -104,4 +104,23 @@ text-align: right; } } + +} + +.fm-input-wrapper { + &:not(:last-child) { + .fm-cell { + &:not(.fm-no-hairline) { + @include hairline('bottom', #ddd); + + &::after { + left: 16px; + } + } + } + } +} + +.fm-input-wrapper.farris-component.can-move { + padding: 0px !important; } \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json b/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json index cbc0fe9417f..4e61562309c 100644 --- a/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json +++ b/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json @@ -55,6 +55,11 @@ "description": "编辑器", "type": "obejct", "default": null + }, + "binding": { + "description": "绑定", + "type": "obejct", + "default": null } }, "required": [ diff --git a/packages/mobile-ui-vue/components/index.ts b/packages/mobile-ui-vue/components/index.ts index 089ff28b2a2..0ff592aba4c 100644 --- a/packages/mobile-ui-vue/components/index.ts +++ b/packages/mobile-ui-vue/components/index.ts @@ -58,7 +58,7 @@ export * from './designer'; export { type DynamicViewContext, DYNAMIC_VIEW_CONTEXT, DefaultDynamicViewContext } from './dynamic-view'; export { LOOKUP_HTTP_SERVICE_TOKEN } from './lookup'; -const components = [ +export const components = [ Button, ButtonEdit, ButtonGroup, diff --git a/packages/mobile-ui-vue/components/input-group/src/input-group.scss b/packages/mobile-ui-vue/components/input-group/src/input-group.scss index a88f7777506..b7c0776a8eb 100644 --- a/packages/mobile-ui-vue/components/input-group/src/input-group.scss +++ b/packages/mobile-ui-vue/components/input-group/src/input-group.scss @@ -42,6 +42,7 @@ background-color: transparent; &::placeholder { color: var(--fm-input-group-sub-color); + font-size: var(--fm-input-group-size); } &:disabled { opacity: 1; diff --git a/packages/mobile-ui-vue/components/input-group/src/property-config/input-group.property-config.ts b/packages/mobile-ui-vue/components/input-group/src/property-config/input-group.property-config.ts index 27d9818b323..66d9a859d4b 100644 --- a/packages/mobile-ui-vue/components/input-group/src/property-config/input-group.property-config.ts +++ b/packages/mobile-ui-vue/components/input-group/src/property-config/input-group.property-config.ts @@ -19,6 +19,15 @@ export class InputGroupProperty extends InputBaseProperty { getEditorProperties(propertyData: any) { const self = this; + // 获取绑定字段schema中的长度属性 + let maxLength; + if (propertyData?.binding?.type === 'Form') { + const fieldInfo = this.schemaService.getFieldByIDAndVMID(propertyData.binding.field, this.viewModelId); + if (fieldInfo?.schemaField?.type) { + maxLength = fieldInfo.schemaField.type.length; + } + } + const editorProperties = self.getComponentConfig( propertyData, {}, @@ -29,7 +38,9 @@ export class InputGroupProperty extends InputBaseProperty { type: 'number', editor: { nullable: true, - min: 0 + min: 0, + useThousands: false, + max: maxLength } } }, diff --git a/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json b/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json index 4e2924c5f6d..5d090e1359e 100644 --- a/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json +++ b/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json @@ -56,6 +56,11 @@ "type": "object", "default": {} }, + "maxLength": { + "description": "最大长度", + "type": "number", + "default": false + }, "onUpdate:modelValue": { "description": "值更新事件", "type": "string", diff --git a/packages/mobile-ui-vue/components/list-view/src/designer/list-view.design.component.tsx b/packages/mobile-ui-vue/components/list-view/src/designer/list-view.design.component.tsx index 0a55f2f851e..5f579bf0c9c 100644 --- a/packages/mobile-ui-vue/components/list-view/src/designer/list-view.design.component.tsx +++ b/packages/mobile-ui-vue/components/list-view/src/designer/list-view.design.component.tsx @@ -33,7 +33,7 @@ export default defineComponent({ function renderItemTemplate() { return ( -
+
); } diff --git a/packages/mobile-ui-vue/components/list-view/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/list-view/src/designer/use-designer-rules.ts index eba98e41793..63b69455ba5 100644 --- a/packages/mobile-ui-vue/components/list-view/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/list-view/src/designer/use-designer-rules.ts @@ -20,14 +20,14 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe } function checkCanMoveComponent() { - return !isInFixedContextRules; + return true; } function checkCanDeleteComponent() { - return !isInFixedContextRules; + return true; } function hideNestedPaddingInDesginerView() { - return hideNestedPadding; + return false; } function getStyles(): string { diff --git a/packages/mobile-ui-vue/components/lookup/src/designer/lookup.design.component.tsx b/packages/mobile-ui-vue/components/lookup/src/designer/lookup.design.component.tsx index 17407092fa7..1814c31f1c6 100644 --- a/packages/mobile-ui-vue/components/lookup/src/designer/lookup.design.component.tsx +++ b/packages/mobile-ui-vue/components/lookup/src/designer/lookup.design.component.tsx @@ -34,7 +34,9 @@ export default defineComponent({ const inputProps = computed(() => ({ ...props, - editable: false + editable: false, + rightIcon: 's-arrow', + placeholder: props.placeholder || '请选择' })); return () => ; diff --git a/packages/mobile-ui-vue/components/navbar/src/schema/navbar.schema.json b/packages/mobile-ui-vue/components/navbar/src/schema/navbar.schema.json index 2de5cdc461a..f59dc40179f 100644 --- a/packages/mobile-ui-vue/components/navbar/src/schema/navbar.schema.json +++ b/packages/mobile-ui-vue/components/navbar/src/schema/navbar.schema.json @@ -35,7 +35,7 @@ "title": { "description": "标题", "type": "string", - "default": "" + "default": "导航栏" }, "leftArrow": { "description": "左侧返回按钮", diff --git a/packages/mobile-ui-vue/components/number-input/index.ts b/packages/mobile-ui-vue/components/number-input/index.ts index 3f43cf190a4..9003f2c043a 100644 --- a/packages/mobile-ui-vue/components/number-input/index.ts +++ b/packages/mobile-ui-vue/components/number-input/index.ts @@ -5,7 +5,7 @@ import NumberInputDesign from './src/designer/number-input.design.component'; export * from './src/number-input.props'; -const NUMBER_INPUT_REGISTERED_NAME = 'number-input'; +const NUMBER_INPUT_REGISTERED_NAME = 'number-spinner'; const NumberInput = withInstall(NumberInputInstallless); diff --git a/packages/mobile-ui-vue/components/number-input/src/property-config/number-input.property-config.ts b/packages/mobile-ui-vue/components/number-input/src/property-config/number-input.property-config.ts index 3d51c021344..02d8c88f144 100644 --- a/packages/mobile-ui-vue/components/number-input/src/property-config/number-input.property-config.ts +++ b/packages/mobile-ui-vue/components/number-input/src/property-config/number-input.property-config.ts @@ -6,14 +6,27 @@ export class NumberInputProperty extends InputBaseProperty { } getEditorProperties(propertyData: any) { + let maxPrecision; + if (propertyData?.binding?.type === 'Form') { + const fieldInfo = this.schemaService.getFieldByIDAndVMID(propertyData.binding.field, this.viewModelId); + if (fieldInfo?.schemaField?.type) { + maxPrecision = fieldInfo.schemaField.type.precision; + } + } return this.getComponentConfig( propertyData, - { type: 'number-input' }, + { type: 'number-spinner' }, { precision: { - description: '', - title: '精度', - type: 'number' + description: "", + title: "精度", + type: "number", + editor: { + readonly: maxPrecision === 0, + min: 0, + max: maxPrecision + }, + refreshPanelAfterChanged: true }, max: { description: '', diff --git a/packages/mobile-ui-vue/components/number-input/src/schema/number-input.schema.json b/packages/mobile-ui-vue/components/number-input/src/schema/number-input.schema.json index 9e63068025a..d480151a9a7 100644 --- a/packages/mobile-ui-vue/components/number-input/src/schema/number-input.schema.json +++ b/packages/mobile-ui-vue/components/number-input/src/schema/number-input.schema.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://farris-design.gitee.io/textarea.schema.json", - "title": "number-input", + "title": "number-spinner", "description": "数字输入框", "type": "object", "properties": { @@ -12,7 +12,7 @@ "type": { "description": "控件类型", "type": "string", - "default": "number-input" + "default": "number-spinner" }, "appearance": { "description": "外观", diff --git a/packages/mobile-ui-vue/components/page-body-container/src/designer/page-body-container.design.component.tsx b/packages/mobile-ui-vue/components/page-body-container/src/designer/page-body-container.design.component.tsx index 6a35ae95978..23099f4fd85 100644 --- a/packages/mobile-ui-vue/components/page-body-container/src/designer/page-body-container.design.component.tsx +++ b/packages/mobile-ui-vue/components/page-body-container/src/designer/page-body-container.design.component.tsx @@ -9,7 +9,7 @@ export default defineComponent({ emits: [], setup(props: PageBodyContainerProps, context: SetupContext) { const elementRef = ref(); - const designerHostService = inject('designer-host-service'); + const designerHostService = inject('designer-host-service') as DesignerHostService; const designItemContext = inject('design-item-context') as DesignerItemContext; const designerRulesComposition = useDesignerRules(designItemContext, designerHostService); const componentInstance = useDesignerComponent(elementRef, designItemContext, designerRulesComposition); diff --git a/packages/mobile-ui-vue/components/page-body-container/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/page-body-container/src/designer/use-designer-rules.ts index c94334a2b7c..1c1772314e4 100644 --- a/packages/mobile-ui-vue/components/page-body-container/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/page-body-container/src/designer/use-designer-rules.ts @@ -1,6 +1,6 @@ import { nextTick, ref } from "vue"; import { PAGE_BODY_CONTAINER_NAME } from '../page-body-container.props'; -import { DesignerHostService, DraggingResolveContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; +import { DesignerHostService, DraggingResolveContext, UseDesignerRules, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { DesignerItemContext } from "@farris/mobile-ui-vue/common"; import { PageBodyContainerProperty } from "../property-config/page-body-container.property-config"; @@ -26,6 +26,12 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe if (unAcceptableControlTypes.includes(componentType)) { return false; } + + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } + return true; } diff --git a/packages/mobile-ui-vue/components/page-container/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/page-container/src/designer/use-designer-rules.ts index efe4894171d..ca8fc22a4ca 100644 --- a/packages/mobile-ui-vue/components/page-container/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/page-container/src/designer/use-designer-rules.ts @@ -1,6 +1,6 @@ import { ref } from "vue"; import { PAGE_CONTAINER_NAME } from '../page-container.props'; -import { DesignerHostService, DesignerItemContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; +import { DesignerHostService, DesignerItemContext, UseDesignerRules, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { DraggingResolveContext } from "@farris/mobile-ui-vue/common"; import { PageContainerProperty } from "../property-config/page-container.property-config"; @@ -15,21 +15,18 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe const isInFixedContextRules = true; function canAccepts(draggingContext: DraggingResolveContext): boolean { - const acceptableControlTypes = [ - 'page-header-container', - 'page-footer-container', - 'page-body-container', - 'float-container', - ]; + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } + const uniqueControlTypes = [ 'page-header-container', 'page-footer-container', 'page-body-container', ]; const { componentType, parentComponentInstance } = draggingContext; - if (!acceptableControlTypes.includes(componentType)) { - return false; - } + const shouldBeUnique = uniqueControlTypes.includes(componentType); if (shouldBeUnique) { const parentComponent = parentComponentInstance; diff --git a/packages/mobile-ui-vue/components/page-footer-container/src/designer/page-footer-container.design.component.tsx b/packages/mobile-ui-vue/components/page-footer-container/src/designer/page-footer-container.design.component.tsx index 22c581508dc..5d800295fff 100644 --- a/packages/mobile-ui-vue/components/page-footer-container/src/designer/page-footer-container.design.component.tsx +++ b/packages/mobile-ui-vue/components/page-footer-container/src/designer/page-footer-container.design.component.tsx @@ -9,7 +9,7 @@ export default defineComponent({ emits: [], setup(props: PageFooterContainerProps, context: SetupContext) { const elementRef = ref(); - const designerHostService = inject('designer-host-service'); + const designerHostService = inject('designer-host-service') as DesignerHostService; const designItemContext = inject('design-item-context') as DesignerItemContext; const designerRulesComposition = useDesignerRules(designItemContext, designerHostService); const componentInstance = useDesignerComponent(elementRef, designItemContext, designerRulesComposition); diff --git a/packages/mobile-ui-vue/components/page-footer-container/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/page-footer-container/src/designer/use-designer-rules.ts index 2020dc0f0eb..4b4c4093eb5 100644 --- a/packages/mobile-ui-vue/components/page-footer-container/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/page-footer-container/src/designer/use-designer-rules.ts @@ -1,6 +1,6 @@ import { ref } from "vue"; import { PAGE_FOOTER_CONTAINER_NAME } from '../page-footer-container.props'; -import { DesignerHostService, DesignerItemContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; +import { DesignerHostService, DesignerItemContext, UseDesignerRules, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { DraggingResolveContext } from "@farris/mobile-ui-vue/common"; import { PageFooterContainerProperty } from "../property-config/page-footer-container.property-config"; @@ -23,6 +23,10 @@ export function useDesignerRules(designItemContext: DesignerItemContext, designe if (!acceptableControlTypes.includes(componentType)) { return false; } + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } return true; } diff --git a/packages/mobile-ui-vue/components/page-header-container/src/designer/page-header-container.design.component.tsx b/packages/mobile-ui-vue/components/page-header-container/src/designer/page-header-container.design.component.tsx index 0f354e8dd11..8cd5b13c5c9 100644 --- a/packages/mobile-ui-vue/components/page-header-container/src/designer/page-header-container.design.component.tsx +++ b/packages/mobile-ui-vue/components/page-header-container/src/designer/page-header-container.design.component.tsx @@ -10,7 +10,7 @@ export default defineComponent({ setup(props: PageHeaderContainerProps, context: SetupContext) { const elementRef = ref(); const designItemContext = inject('design-item-context') as DesignerItemContext; - const designerHostService = inject('designer-host-service'); + const designerHostService = inject('designer-host-service') as DesignerHostService; const designerRulesComposition = useDesignerRules(designItemContext, designerHostService); const componentInstance = useDesignerComponent(elementRef, designItemContext, designerRulesComposition); diff --git a/packages/mobile-ui-vue/components/page-header-container/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/page-header-container/src/designer/use-designer-rules.ts index 4015500d20a..89e42ddd5a0 100644 --- a/packages/mobile-ui-vue/components/page-header-container/src/designer/use-designer-rules.ts +++ b/packages/mobile-ui-vue/components/page-header-container/src/designer/use-designer-rules.ts @@ -1,35 +1,32 @@ import { ref } from "vue"; import { PAGE_HEADER_CONTAINER_NAME } from '../page-header-container.props'; -import { DesignerItemContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; +import { DesignerHostService, DesignerItemContext, UseDesignerRules, useDragulaCommonRule } from "@farris/mobile-ui-vue/common"; import { DraggingResolveContext } from "@farris/mobile-ui-vue/common"; import { PageHeaderContainerProperty } from "../property-config/page-header-container.property-config"; -export function useDesignerRules(designItemContext: DesignerItemContext, designerHostService): UseDesignerRules { +export function useDesignerRules(designItemContext: DesignerItemContext, designerHostService: DesignerHostService): UseDesignerRules { const triggerBelongedComponentToMoveWhenMoved = ref(false); const triggerBelongedComponentToDeleteWhenDeleted = ref(false); const hideNestedPadding = true; + const { formSchemaUtils } = designerHostService; function canAccepts(draggingContext: DraggingResolveContext): boolean { - const acceptableControlTypes = [ - 'navbar', - 'content-container', - 'html-template', - ]; + const { componentType, parentComponentInstance } = draggingContext; + const basalRule = useDragulaCommonRule().basalDragulaRuleForContainer(draggingContext, designerHostService); + if (!basalRule) { + return false; + } + const uniqueControlTypes = [ 'navbar', ]; - const { sourceType, parentComponentInstance } = draggingContext; - if (!acceptableControlTypes.includes(sourceType)) { - return false; - } - const shouldBeUnique = uniqueControlTypes.includes(sourceType); + const shouldBeUnique = uniqueControlTypes.includes(componentType); if (shouldBeUnique) { - const parentComponent = parentComponentInstance?.parent?.value; - const contents: any[] = parentComponent?.contents || []; - const hasSameTypeControl = !!contents.find((content) => content.type === sourceType); + const contents: any[] = parentComponentInstance?.contents || []; + const hasSameTypeControl = !!contents.find((content) => content.type === componentType); if (hasSameTypeControl) { return false; } diff --git a/packages/mobile-ui-vue/components/picker/src/designer/enum-field-input.design.component.tsx b/packages/mobile-ui-vue/components/picker/src/designer/enum-field-input.design.component.tsx deleted file mode 100644 index a8e103fb4d7..00000000000 --- a/packages/mobile-ui-vue/components/picker/src/designer/enum-field-input.design.component.tsx +++ /dev/null @@ -1,75 +0,0 @@ - -/** - * Copyright (c) 2020 - present, Inspur Genersoft Co., 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 { computed, defineComponent, inject, onMounted, readonly, ref, SetupContext } from 'vue'; -import { DesignerHostService, DesignerItemContext, useDesignerComponent } from '@farris/mobile-ui-vue/designer-canvas'; -import { pickerProps } from '../picker.props'; -import Picker from '../picker.component'; -import { useEnumFieldDesignerRules } from './use-designer-rules';; - -export default defineComponent({ - name: 'FmEnumFieldInputDesign', - props: pickerProps, - emits: [] as (string[] & ThisType) | undefined, - setup(props, context: SetupContext) { - const elementRef = ref(); - const designerHostService = inject('designer-host-service'); - const designItemContext = inject('design-item-context') as DesignerItemContext; - const designerRulesComposition = useEnumFieldDesignerRules(designItemContext, designerHostService); - const componentInstance = useDesignerComponent(elementRef, designItemContext, designerRulesComposition); - - onMounted(() => { - elementRef.value.componentInstance = componentInstance; - }); - - /** - * 解决在设计时,数据为空数组,界面不显示内容的问题 - */ - const realEnumData = computed(() => { - if (!props.columns || props.columns.length === 0) { - const result = [] as any; - [ - { value: 'example1', name: '示例一' }, - { value: 'example2', name: '示例二' } - ].map(item => { - const tempData = {}; - tempData[props.valueField] = item['value']; - tempData[props.textField] = item['name']; - result.push(tempData); - }); - return result; - } - return props.columns; - }); - - const inputGroupProps = computed(() => ({ - ...props, - editable: false, - readonly: true, - modelValue:null, - columns:realEnumData.value, - type:null - })); - - context.expose(componentInstance.value); - - return () => { - return ( - - ); - }; - } -}); diff --git a/packages/mobile-ui-vue/components/picker/src/designer/picker.design.component.tsx b/packages/mobile-ui-vue/components/picker/src/designer/picker.design.component.tsx index 8f16c721e37..b146f229496 100644 --- a/packages/mobile-ui-vue/components/picker/src/designer/picker.design.component.tsx +++ b/packages/mobile-ui-vue/components/picker/src/designer/picker.design.component.tsx @@ -54,7 +54,9 @@ export default defineComponent({ const inputProps = computed(() => ({ ...props, - editable: false + editable: false, + rightIcon: 's-arrow', + placeholder: props.placeholder || '请选择' })); return () => ; diff --git a/packages/mobile-ui-vue/components/property-panel/src/composition/entity/base-property.ts b/packages/mobile-ui-vue/components/property-panel/src/composition/entity/base-property.ts deleted file mode 100644 index 9ec35abb278..00000000000 --- a/packages/mobile-ui-vue/components/property-panel/src/composition/entity/base-property.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { DesignerComponentInstance } from "@farris/mobile-ui-vue/designer-canvas"; -import { DgControl } from "../../../../designer-canvas/src/composition/dg-control"; -import { cloneDeep } from "lodash-es"; - -/** - * 控件属性基类 - */ -export class BaseControlProperty { - public componentId: string; - - public viewModelId: string; - - public eventsEditorUtils: any; - - public formSchemaUtils: any; - public formMetadataConverter: any; - public designViewModelUtils: any; - public designViewModelField: any; - public controlCreatorUtils: any; - public designerHostService: any; - - schemaService: any = null; - - metadataService: any = null; - - protected propertyConfig = { - type: 'object', - categories: {} - }; - - constructor(componentId: string, designerHostService: any) { - this.componentId = componentId; - this.designerHostService = designerHostService; - this.eventsEditorUtils = designerHostService['eventsEditorUtils']; - this.formSchemaUtils = designerHostService['formSchemaUtils']; - this.formMetadataConverter = designerHostService['formMetadataConverter']; - this.viewModelId = this.formSchemaUtils?.getViewModelIdByComponentId(componentId) || ''; - this.designViewModelUtils = designerHostService['designViewModelUtils']; - this.controlCreatorUtils = designerHostService['controlCreatorUtils']; - this.metadataService = designerHostService['metadataService']; - this.schemaService = designerHostService['schemaService']; - } - - getTableInfo() { - return this.schemaService?.getTableInfoByViewModelId(this.viewModelId); - } - - setDesignViewModelField(propertyData: any) { - const bindingFieldId = propertyData.binding && propertyData.binding.type === 'Form' && propertyData.binding.field; - // 视图模型中[字段更新时机]属性现在要在控件上维护,所以在控件上复制一份属性值 - if (bindingFieldId) { - if (!this.designViewModelField) { - const dgViewModel = this.designViewModelUtils.getDgViewModel(this.viewModelId); - this.designViewModelField = dgViewModel.fields.find(f => f.id === bindingFieldId); - } - propertyData.updateOn = this.designViewModelField?.updateOn; - } - } - - getBasicPropConfig(propertyData: any): any { - return { - description: 'Basic Information', - title: '基本信息', - properties: { - id: { - description: '组件标识', - title: '标识', - type: 'string', - readonly: true - }, - type: { - description: '组件类型', - title: '控件类型', - type: 'select', - editor: { - type: 'combo-list', - textField: 'name', - valueField: 'value', - editable: false, - data: [{ value: propertyData.type, name: DgControl[propertyData.type] && DgControl[propertyData.type].name }] - } - } - } - }; - - } - - - protected getAppearanceConfig(propertyData = null): any { - return { - title: "外观", - description: "Appearance", - properties: { - class: { - title: "class样式", - type: "string", - description: "组件的CSS样式", - $converter: "/converter/appearance.converter" - }, - style: { - title: "style样式", - type: "string", - description: "组件的样式", - $converter: "/converter/appearance.converter" - } - } - }; - } - - /** - * - * @param propertyId - * @param componentInstance - * @returns - */ - public updateElementByParentContainer(propertyId:string, componentInstance: DesignerComponentInstance){ - // 1、定位控件父容器 - const parentContainer = componentInstance && componentInstance.parent && componentInstance.parent['schema']; - if (!parentContainer) { - return; - } - const index = parentContainer.contents.findIndex(c => c.id === propertyId); - // 通过cloneDeep方式的触发更新 - const controlSchema = cloneDeep(parentContainer.contents[index]); - // 5、替换控件 - parentContainer.contents.splice(index, 1); - parentContainer.contents.splice(index, 0, controlSchema); - } - -} diff --git a/packages/mobile-ui-vue/components/property-panel/src/composition/entity/input-base-property.ts b/packages/mobile-ui-vue/components/property-panel/src/composition/entity/input-base-property.ts deleted file mode 100644 index a8dd354e606..00000000000 --- a/packages/mobile-ui-vue/components/property-panel/src/composition/entity/input-base-property.ts +++ /dev/null @@ -1,390 +0,0 @@ - -import { BaseControlProperty } from "./base-property"; -import { SchemaDOMMapping } from './schema-dom-mapping'; -import { canvasChanged } from '../../../../designer-canvas/src/composition/designer-canvas-changed'; -import { DesignerComponentInstance } from "../../../../designer-canvas/src/types"; -import { FormUnifiedColumnLayout } from "../type"; -import { - ResponseFormLayoutContext, - UseResponseLayoutEditorSetting, -} from "@farris/mobile-ui-vue/response-layout-editor"; -import { useResponseLayoutEditorSetting } from "../../../../response-layout-editor/src/composition/converter/use-response-layout-editor-setting"; -import { FormSchemaEntityFieldType$Type } from "@farris/mobile-ui-vue/common"; - -export class InputBaseProperty extends BaseControlProperty { - public responseLayoutEditorFunction: UseResponseLayoutEditorSetting; - constructor(componentId: string, designerHostService: any) { - super(componentId, designerHostService); - this.responseLayoutEditorFunction = useResponseLayoutEditorSetting(this.formSchemaUtils); - } - - public getPropertyConfig(propertyData: any, componentInstance: DesignerComponentInstance) { - // 基本信息 - this.propertyConfig.categories['basic'] = this.getBasicProperties(propertyData, componentInstance); - // 外观 - this.propertyConfig.categories['appearance'] = this.getAppearanceProperties(propertyData, componentInstance); - // 编辑器 - this.propertyConfig.categories['editor'] = this.getEditorProperties(propertyData); - return this.propertyConfig; - } - - public getBasicProperties(propertyData, componentInstance): any { - const self = this; - this.setDesignViewModelField(propertyData); - return { - description: 'Basic Information', - title: '基本信息', - properties: { - id: { - description: '组件标识', - title: '标识', - type: 'string', - readonly: true - }, - type: { - description: '编辑器类型', - title: '编辑器类型', - type: 'string', - refreshPanelAfterChanged: true, - $converter: '/converter/change-editor.converter', - editor: { - type: 'combo-list', - textField: 'value', - valueField: 'key', - editable: false, - data: self.designViewModelField ? SchemaDOMMapping.getEditorTypesByMDataType(self.designViewModelField.type?.name) : SchemaDOMMapping.getAllInputTypes() - } - }, - label: { - title: "标签", - type: "string", - $converter: '/converter/form-group-label.converter' - }, - binding: { - description: "绑定的表单字段", - title: "绑定", - editor: { - type: "binding-selector", - bindingType: { "enable": false }, - editorParams: { - componentSchema: propertyData, - needSyncToViewModel: true, - viewModelId: this.viewModelId, - designerHostService: this.designerHostService, - disableOccupiedFields: true - }, - textField: 'bindingField' - } - } - }, - setPropertyRelates(changeObject, prop) { - if (!changeObject) { - return; - } - switch (changeObject && changeObject.propertyID) { - case 'type': { - self.changeControlType(propertyData, changeObject, componentInstance); - break; - } - case 'label': { - changeObject.needRefreshControlTree = true; - break; - } - } - } - }; - } - public getAppearanceProperties(propertyData, componentInstance): any { - - const self = this; - return { - title: "外观", - description: "Appearance", - properties: { - class: { - title: "class样式", - type: "string", - description: "组件的CSS样式", - $converter: "/converter/appearance.converter" - }, - style: { - title: "style样式", - type: "string", - description: "组件的样式", - $converter: "/converter/appearance.converter" - }, - responseLayout: { - description: "响应式列宽", - title: "响应式列宽", - type: "boolean", - visible: true, - // 这个属性,标记当属性变更得时候触发重新更新属性 - refreshPanelAfterChanged: true, - editor: { - type: "response-layout-editor-setting", - initialState: self.responseLayoutEditorFunction.checkCanOpenLayoutEditor(propertyData, self.componentId) - } - } - }, - setPropertyRelates(changeObject, prop) { - if (!changeObject) { - return; - } - switch (changeObject && changeObject.propertyID) { - case 'responseLayout': - self.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(changeObject.propertyValue, self.componentId || propertyData.id); - self.updateUnifiedLayoutAfterResponseLayoutChanged(self.componentId); - self.updateElementByParentContainer(propertyData.id, componentInstance); - delete propertyData.responseLayout; - break; - case 'class': - self.updateUnifiedLayoutAfterControlChanged(changeObject.propertyValue, propertyData.id, this.componentId); - self.updateElementByParentContainer(propertyData.id, componentInstance); - break; - } - - } - }; - }; - - public getEditorProperties(propertyData): any { - return this.getComponentConfig(propertyData); - } - - - /** - * 卡片控件:切换控件类型后事件 - * @param propertyData 控件DOM属性 - * @param newControlType 新控件类型 - */ - private changeControlType(propertyData, changeObject, componentInstance: DesignerComponentInstance) { - const newControlType = changeObject.propertyValue; - - // 1、定位控件父容器 - const parentContainer = componentInstance && componentInstance.parent && componentInstance.parent['schema']; - if (!parentContainer) { - return; - } - - const index = parentContainer.contents.findIndex(c => c.id === propertyData.id); - const oldControl = parentContainer.contents[index]; - - let newControl; - // 2、记录绑定字段viewModel的变更 - if (this.designViewModelField) { - const dgViewModel = this.designViewModelUtils.getDgViewModel(this.viewModelId); - dgViewModel.changeField(this.designViewModelField.id, { - editor: { - $type: newControlType - }, - name: this.designViewModelField.name, - require: this.designViewModelField.require, - readonly: this.designViewModelField.readonly - }, false); - // 3、创建新控件 - newControl = this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField, newControlType); - } - if (!newControl) { - newControl = this.controlCreatorUtils.createFormGroupWithoutField(newControlType); - } - // 4、保留原id样式等属性 - Object.assign(newControl, { - id: oldControl.id, - appearance: oldControl.appearance, - size: oldControl.size, - label: oldControl.label, - binding: oldControl.binding, - visible: oldControl.visible - }); - Object.assign(newControl.editor, { - isTextArea: newControl.isTextArea && oldControl.isTextArea, - placeholder: oldControl.editor?.placeholder, - holdPlace: oldControl.editor?.holdPlace, - readonly: oldControl.editor?.readonly, - required: oldControl.editor?.required, - }); - - // 5、替换控件 - parentContainer.contents.splice(index, 1); - parentContainer.contents.splice(index, 0, newControl); - componentInstance.schema = Object.assign(oldControl, newControl); - - // 6、暂时移除旧控件的选中样式(后续考虑更好的方式) - Array.from(document.getElementsByClassName('dgComponentSelected') as HTMLCollectionOf).forEach( - (element: HTMLElement) => element.classList.remove('dgComponentSelected') - ); - - Array.from(document.getElementsByClassName('dgComponentFocused') as HTMLCollectionOf).forEach( - (element: HTMLElement) => element.classList.remove('dgComponentFocused') - ); - // 7、触发刷新 - canvasChanged.value++; - - } - - public getComponentConfig(propertyData, info = {}, properties = {}, setPropertyRelates?: any) { - const editorBasic = Object.assign({ - description: "编辑器", - title: "编辑器", - type: "input-group", - $converter: "/converter/property-editor.converter" - }, info); - - const editorProperties = Object.assign({ - readonly: { - description: "", - title: "只读", - type: "boolean", - editor: { - enableClear: true, - editable: true - } - }, - disabled: { - description: "", - title: "禁用", - type: "boolean", - visible: false - }, - // required: { - // description: "", - // title: "必填", - // type: "boolean" - // }, - placeholder: { - description: "空值时,输入控件内的占位文本", - title: "提示文本", - type: "string" - } - }, properties); - - return { ...editorBasic, properties: { ...editorProperties }, setPropertyRelates }; - - } - - - /** - * 修改某一输入控件的样式后更新Form的统一布局配置 - * @param controlClass 控件样式 - * @param controlId 控件Id - * @param componentId 控件所在组件id - */ - private updateUnifiedLayoutAfterControlChanged(controlClass: string, controlId: string, componentId: string) { - const controlClassArray = controlClass.split(' '); - - let colClass = controlClassArray.find(item => /^col-([1-9]|10|11|12)$/.test(item)); - let colMDClass = controlClassArray.find(item => /^col-md-([1-9]|10|11|12)$/.test(item)); - let colXLClass = controlClassArray.find(item => /^col-xl-([1-9]|10|11|12)$/.test(item)); - let colELClass = controlClassArray.find(item => /^col-el-([1-9]|10|11|12)$/.test(item)); - - colClass = colClass || 'col-12'; - colMDClass = colMDClass || 'col-md-' + colClass.replace('col-', ''); - colXLClass = colXLClass || 'col-xl-' + colMDClass.replace('col-md-', ''); - colELClass = colELClass || 'col-el-' + colXLClass.replace('col-xl-', ''); - - const latestControlLayoutConfig = { - id: controlId, - columnInSM: parseInt(colClass.replace('col-', ''), 10), - columnInMD: parseInt(colMDClass.replace('col-md-', ''), 10), - columnInLG: parseInt(colXLClass.replace('col-xl-', ''), 10), - columnInEL: parseInt(colELClass.replace('col-el-', ''), 10), - }; - - this.updateUnifiedLayoutAfterResponseLayoutChanged(componentId, latestControlLayoutConfig); - } - - /** - * 修改控件布局配置后更新Form统一布局配置 - * @param componentId 组件Id - * @param controlLayoutConfig 某单独变动的控件配置项,FormResponseLayoutContext类型 - */ - private updateUnifiedLayoutAfterResponseLayoutChanged(componentId: string, controlLayoutConfig?: any): FormUnifiedColumnLayout | undefined { - const { formNode } = this.responseLayoutEditorFunction.checkCanFindFormNode(componentId); - // 更改form上的统一配置 - if (!formNode || !formNode.unifiedLayout) { - return; - } - const responseLayoutConfig: ResponseFormLayoutContext[] = []; - this.responseLayoutEditorFunction.getResonseFormLayoutConfig(formNode, responseLayoutConfig, 1); - if (controlLayoutConfig) { - const changedControl = responseLayoutConfig.find(c => c.id === controlLayoutConfig.id); - Object.assign(changedControl || {}, controlLayoutConfig); - } - - // 收集每种屏幕下的列数 - const columnInSMArray = responseLayoutConfig.map(config => config.columnInSM); - const columnInMDArray = responseLayoutConfig.map(config => config.columnInMD); - const columnInLGArray = responseLayoutConfig.map(config => config.columnInLG); - const columnInELArray = responseLayoutConfig.map(config => config.columnInEL); - - // 只有每个控件的宽度都一样时,才认为form上有统一宽度,否则认为是自定义的控件宽度,此处传递null - const uniqueColClassInSM = this.checkIsUniqueColumn(columnInSMArray) ? columnInSMArray[0] : null; - const uniqueColClassInMD = this.checkIsUniqueColumn(columnInMDArray) ? columnInMDArray[0] : null; - const uniqueColClassInLG = this.checkIsUniqueColumn(columnInLGArray) ? columnInLGArray[0] : null; - const uniqueColClassInEL = this.checkIsUniqueColumn(columnInELArray) ? columnInELArray[0] : null; - - - Object.assign(formNode.unifiedLayout, { - uniqueColClassInSM, - uniqueColClassInMD, - uniqueColClassInLG, - uniqueColClassInEL - }); - } - /** - * 校验宽度样式值是否一致 - */ - private checkIsUniqueColumn(columnsInScreen: number[]) { - const keySet = new Set(columnsInScreen); - const exclusiveKeys = Array.from(keySet); - - if (exclusiveKeys.length === 1) { - return true; - } - return false; - } - /** - * 枚举项编辑器 - * @param propertyData - * @param valueField - * @param textField - * @returns - */ - protected getItemCollectionEditor(propertyData, valueField, textField) { - valueField = valueField || 'value'; - textField = textField || 'name'; - return { - editor: { - columns: [ - { field: valueField, title: '值', dataType: 'string' }, - { field: textField, title: '名称', dataType: 'string' }, - { field: 'disabled', title: '禁用', visible: false, dataType: 'boolean', editor: { type: 'switch' } }, - ], - type: "item-collection-editor", - valueField: valueField, - nameField: textField, - requiredFields: [valueField, textField], - uniqueFields: [valueField, textField], - readonly: this.checkEnumDataReadonly(propertyData) - } - }; - } - /** - * 判断枚举数据是否只读 - * 1、没有绑定信息或者绑定变量,可以新增、删除、修改 - * 2、绑定类型为字段,且字段为枚举字段,则不可新增、删除、修改枚举值。只能从be修改然后同步到表单上。 - * @param propertyData 下拉框控件属性值 - */ - private checkEnumDataReadonly(propertyData: any): boolean { - // 没有绑定信息或者绑定变量 - if (!propertyData.binding || propertyData.binding.type !== 'Form') { - return false; - } - if (this.designViewModelField && this.designViewModelField.type && - this.designViewModelField.type.$type === FormSchemaEntityFieldType$Type.EnumType) { - // 低代码、零代码,枚举字段均不可以改 - return true; - } - return false; - } -} diff --git a/packages/mobile-ui-vue/components/property-panel/src/composition/entity/use-input-rules.ts b/packages/mobile-ui-vue/components/property-panel/src/composition/entity/use-input-rules.ts deleted file mode 100644 index de3ba04fcd6..00000000000 --- a/packages/mobile-ui-vue/components/property-panel/src/composition/entity/use-input-rules.ts +++ /dev/null @@ -1,62 +0,0 @@ - -import { ref } from "vue"; -import { DesignerHTMLElement, DraggingResolveContext, UseDesignerRules } from '../../../../designer-canvas/src/composition/types'; -import { ComponentSchema, DesignerItemContext } from "@farris/mobile-ui-vue/designer-canvas"; - -export function useInputDesignerRules(designItemContext: DesignerItemContext, designerHostService): UseDesignerRules { - const schema = designItemContext.schema as ComponentSchema; - /** 组件在拖拽时需要将所属的Component一起拖拽 */ - const triggerBelongedComponentToMoveWhenMoved = ref(true); - /** 组件在删除时需要将所属的Component一起拖拽 */ - const triggerBelongedComponentToDeleteWhenDeleted = ref(true); - /** data-grid所属的上级组件控制规则 */ - /** - * 判断是否可以接收拖拽新增的子级控件 - */ - function canAccepts(draggingContext: DraggingResolveContext): boolean { - return false; - } - - /** - * data-grid是否支持删除,取决于所属组件是否支持删除 - */ - function checkCanDeleteComponent() { - return false; - } - /** - * data-grid是否支持移动,取决于所属组件是否支持移动 - */ - function checkCanMoveComponent() { - return false; - } - - function hideNestedPaddingInDesginerView() { - return true; - } - - function onAcceptMovedChildElement(sourceElement: DesignerHTMLElement) { - } - /** - * 判断data-grid上下文 - */ - function resolveComponentContext() { - - } - // 构造属性配置方法 - function getPropsConfig(componentId: string) { - return null; - } - - return { - canAccepts, - checkCanDeleteComponent, - checkCanMoveComponent, - hideNestedPaddingInDesginerView, - onAcceptMovedChildElement, - resolveComponentContext, - triggerBelongedComponentToMoveWhenMoved, - triggerBelongedComponentToDeleteWhenDeleted, - getPropsConfig - } as UseDesignerRules; - -} diff --git a/packages/mobile-ui-vue/components/register-designer.ts b/packages/mobile-ui-vue/components/register-designer.ts index b20f07ad699..7eb1d382c16 100644 --- a/packages/mobile-ui-vue/components/register-designer.ts +++ b/packages/mobile-ui-vue/components/register-designer.ts @@ -1,4 +1,5 @@ import { RegisterContext } from "./common"; +import { components } from "."; import { propertyConfigSchemaMapForDesigner, schemaMapForDesigner, schemaResolverMapForDesigner } from "./dynamic-resolver"; import { propertyEffectMapForDesigner } from "./dynamic-resolver/src/resolver/property-config/property-config-resolver-design"; @@ -10,7 +11,7 @@ let componentsRegistered = false; /** * 加载设计时组件 */ -function registerDesignerComponents(components: any[]) { +function registerDesignerComponents() { if (componentsRegistered) { return; } @@ -24,7 +25,7 @@ function registerDesignerComponents(components: any[]) { }; components.forEach(component => { - component.registerDesigner && component.registerDesigner(componentMapForDesigner, componentPropsConverterForDesigner, componentPropertyConfigConverterForDesigner, registerContext); + component['registerDesigner'] && component['registerDesigner'](componentMapForDesigner, componentPropsConverterForDesigner, componentPropertyConfigConverterForDesigner, registerContext); }); } diff --git a/packages/mobile-ui-vue/components/register.ts b/packages/mobile-ui-vue/components/register.ts index 785dbbd7fdd..95679f92a34 100644 --- a/packages/mobile-ui-vue/components/register.ts +++ b/packages/mobile-ui-vue/components/register.ts @@ -1,33 +1,8 @@ +import { components } from "."; import { RegisterContext } from "./common"; import { propertyConfigSchemaMap, schemaMap, schemaResolverMap } from "./dynamic-resolver"; import { propertyEffectMap } from "./dynamic-resolver/src/resolver/property-config/property-config-resolver"; -import Button from './button'; -import ButtonGroup from './button-group'; -import InputGroup from './input-group'; -import NumberInput from './number-input'; -import Textarea from './textarea'; -import Navbar from './navbar'; -import Switch from './switch'; -import Form from './form'; -import FormItem from './form-item'; -import { Picker } from './picker'; -import { DatePicker } from './date-picker'; -import { DateTimePicker } from "./date-time-picker"; -import Lookup from './lookup'; -import RadioGroup from './radio-group'; -import CheckboxGroup from './checkbox-group'; - -import PageContainer from './page-container'; -import PageBodyContainer from './page-body-container'; -import PageHeaderContainer from './page-header-container'; -import PageFooterContainer from './page-footer-container'; -import Component from './component'; -import ContentContainer from './content-container'; -import { Card } from './card'; -import FloatContainer from './float-container'; -import Listview from './list-view'; - const componentMap: Record = {}; const propsConverterMap: Record = {}; const propConfigsConverterMap: Record = {}; @@ -42,6 +17,7 @@ function registerComponents() { if (componentsRegistered) { return; } + componentsRegistered = true; const registerContext: RegisterContext = { schemaMap: schemaMap, @@ -50,16 +26,8 @@ function registerComponents() { schemaResolverMap: schemaResolverMap }; - const componentsToRegister = [ - Component, PageContainer, PageHeaderContainer, PageBodyContainer, PageFooterContainer, - ContentContainer, FloatContainer, Card, - Button, ButtonGroup, Navbar, Listview, - Form, FormItem, InputGroup, Textarea, NumberInput, Switch, - DatePicker, DateTimePicker, Picker, - Lookup, RadioGroup, CheckboxGroup - ]; - componentsToRegister.forEach((componentToRegister) => { - componentToRegister.register(componentMap, propsConverterMap, propConfigsConverterMap, resolverMap, registerContext); + components.forEach((componentToRegister) => { + componentToRegister['register'] && componentToRegister['register'](componentMap, propsConverterMap, propConfigsConverterMap, resolverMap, registerContext); }); } diff --git a/packages/mobile-ui-vue/components/switch/src/designer/switch.design.component.tsx b/packages/mobile-ui-vue/components/switch/src/designer/switch.design.component.tsx index a56bdc8759e..3c1ee440398 100644 --- a/packages/mobile-ui-vue/components/switch/src/designer/switch.design.component.tsx +++ b/packages/mobile-ui-vue/components/switch/src/designer/switch.design.component.tsx @@ -11,7 +11,7 @@ import { useInputGroupDesignerRules } from './use-designer-rules'; export default defineComponent({ name: 'FmSwitchDesign', inheritAttrs: false, - props: extractProperties(switchProps, ['activeColor', 'inactiveColor']), + props: extractProperties(switchProps, ['activeColor', 'inactiveColor', 'size']), setup(props, context) { const elementRef = ref(); const designerHostService = inject('designer-host-service'); diff --git a/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json b/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json index 4697e9c71d4..1dd3bf46812 100644 --- a/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json +++ b/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json @@ -58,6 +58,10 @@ "onUpdate:modelValue": { "description": "值更新事件", "type": "string" + }, + "size": { + "description": "尺寸", + "type": "string" } }, "events": [ diff --git a/packages/mobile-ui-vue/components/time-picker/index.ts b/packages/mobile-ui-vue/components/time-picker/index.ts index 62ab9fe9bda..95d3c5e2819 100644 --- a/packages/mobile-ui-vue/components/time-picker/index.ts +++ b/packages/mobile-ui-vue/components/time-picker/index.ts @@ -1,11 +1,18 @@ -import { withInstall } from '@farris/mobile-ui-vue/common'; +import { withInstall, withRegister, withRegisterDesigner } from '@farris/mobile-ui-vue/common'; import TimePickerInstallless from './src/time-picker.component'; +import TimePickerDesign from './src/designer/time-picker.design.component'; import TimePickerPanelInstallless from './src/time-picker-panel.component'; +import { propsResolverGenerator } from '../time-picker/src/time-picker.props'; export { TimePickerType } from './src/composition'; +const TIME_PICKER_REGISTERED_NAME = 'time-picker'; + const TimePickerPanel = withInstall(TimePickerPanelInstallless); const TimePicker = withInstall(TimePickerInstallless); +withRegister(TimePicker, { name: TIME_PICKER_REGISTERED_NAME, propsResolverGenerator }); +withRegisterDesigner(TimePicker, { name: TIME_PICKER_REGISTERED_NAME, propsResolverGenerator, designerComponent: TimePickerDesign }); + export { TimePicker, TimePickerPanel }; export default TimePicker; diff --git a/packages/mobile-ui-vue/components/time-picker/src/designer/time-picker.design.component.tsx b/packages/mobile-ui-vue/components/time-picker/src/designer/time-picker.design.component.tsx new file mode 100644 index 00000000000..98e3d1aee41 --- /dev/null +++ b/packages/mobile-ui-vue/components/time-picker/src/designer/time-picker.design.component.tsx @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2020 - present, Inspur Genersoft Co., 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 { computed, defineComponent, inject, onMounted, ref, SetupContext } from 'vue'; +import { + DesignerHostService, + DesignerItemContext, + extractProperties, + useDesignerComponent +} from '@farris/mobile-ui-vue/common'; +import { useTimePickerDesignerRules } from './use-designer-rules'; +import { timePickerProps } from '../time-picker.props'; +import InputGroup from '@farris/mobile-ui-vue/input-group'; + +export default defineComponent({ + name: 'FmTimePickerDesign', + inheritAttrs: false, + props: extractProperties(timePickerProps, ['placeholder']), + setup(props, context) { + const elementRef = ref(); + const designerHostService = inject('designer-host-service'); + const designItemContext = inject( + 'design-item-context' + ) as DesignerItemContext; + const designerRulesComposition = useTimePickerDesignerRules( + designItemContext, + designerHostService + ); + const componentInstance = useDesignerComponent( + elementRef, + designItemContext, + designerRulesComposition + ); + + onMounted(() => { + elementRef.value.componentInstance = componentInstance; + }); + + context.expose(componentInstance.value); + + const inputProps = computed(() => { + return { + ...props, + editable: false, + rightIcon: 's-arrow', + placeholder: props.placeholder || '请选择时间' + }; + }); + + return () => { + return ( + + ); + }; + } +}); diff --git a/packages/mobile-ui-vue/components/time-picker/src/designer/use-designer-rules.ts b/packages/mobile-ui-vue/components/time-picker/src/designer/use-designer-rules.ts new file mode 100644 index 00000000000..adc7fa0b3ce --- /dev/null +++ b/packages/mobile-ui-vue/components/time-picker/src/designer/use-designer-rules.ts @@ -0,0 +1,15 @@ +import { ComponentSchema, DesignerComponentInstance, DesignerItemContext, UseDesignerRules } from "@farris/mobile-ui-vue/common"; +import { TimePickerProperty } from "../property-config/time-picker.property-config"; +export function useTimePickerDesignerRules(designItemContext: DesignerItemContext, designerHostService): UseDesignerRules { + + const schema = designItemContext.schema as ComponentSchema; + + // 构造属性配置方法 + function getPropsConfig(componentId: string, componentInstance: DesignerComponentInstance) { + const timePickerProps = new TimePickerProperty(componentId, designerHostService); + return timePickerProps.getPropertyConfig(schema, componentInstance); + } + + return { getPropsConfig } as UseDesignerRules; + +} diff --git a/packages/mobile-ui-vue/components/time-picker/src/property-config/time-picker.property-config.ts b/packages/mobile-ui-vue/components/time-picker/src/property-config/time-picker.property-config.ts new file mode 100644 index 00000000000..7cf6b9054e3 --- /dev/null +++ b/packages/mobile-ui-vue/components/time-picker/src/property-config/time-picker.property-config.ts @@ -0,0 +1,52 @@ +import { DesignerComponentInstance, InputBaseProperty } from '@farris/mobile-ui-vue/common'; + + +export class TimePickerProperty extends InputBaseProperty { + constructor(componentId: string, designerHostService: any) { + super(componentId, designerHostService); + } + + public getPropertyConfig(propertyData: any, componentInstance: DesignerComponentInstance) { + super.getPropertyConfig(propertyData, componentInstance); + return this.propertyConfig; + } + + getEditorProperties(propertyData: any) { + const self = this; + const editorProperties = self.getComponentConfig( + propertyData, + {}, + { + format: { + description: "", + title: "格式", + type: "enum", + editor: { + type: "combo-list", + textField: "name", + valueField: "value", + data: [ + { value: "HH:mm:ss", name: "HH:mm:ss" }, + { value: "HH:mm", name: "HH:mm" } + ] + } + }, + maxTime: { + title: '最大时间', + type: 'string' + }, + minTime: { + title: '最小时间', + type: 'string' + } + }, + (changeObject) => { + if (!changeObject) { + return; + } + } + ); + + return editorProperties; + } +} diff --git a/packages/mobile-ui-vue/components/time-picker/src/schema/schema-mapper.ts b/packages/mobile-ui-vue/components/time-picker/src/schema/schema-mapper.ts new file mode 100644 index 00000000000..f7d510235fb --- /dev/null +++ b/packages/mobile-ui-vue/components/time-picker/src/schema/schema-mapper.ts @@ -0,0 +1,6 @@ +import { resolveAppearance, MapperFunction } from '../../../dynamic-resolver'; + +export const schemaMapper = new Map([ + ['appearance', resolveAppearance], + ['binding', 'modelValue'] +]); diff --git a/packages/mobile-ui-vue/components/time-picker/src/schema/schema-resolver.ts b/packages/mobile-ui-vue/components/time-picker/src/schema/schema-resolver.ts new file mode 100644 index 00000000000..b02bdf93eec --- /dev/null +++ b/packages/mobile-ui-vue/components/time-picker/src/schema/schema-resolver.ts @@ -0,0 +1,5 @@ +import { DynamicResolver } from "../../../dynamic-resolver"; + +export function schemaResolver(resolver: DynamicResolver, schema: Record, context: Record): Record { + return schema; +} diff --git a/packages/mobile-ui-vue/components/time-picker/src/schema/time-picker.schema.json b/packages/mobile-ui-vue/components/time-picker/src/schema/time-picker.schema.json new file mode 100644 index 00000000000..0840c201692 --- /dev/null +++ b/packages/mobile-ui-vue/components/time-picker/src/schema/time-picker.schema.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://farris-design.gitee.io/time-picker.schema.json", + "title": "time-picker", + "description": "", + "type": "object", + "properties": { + "id": { + "description": "标识", + "type": "string" + }, + "type": { + "description": "控件类型", + "type": "string", + "default": "time-picker" + }, + "appearance": { + "description": "外观", + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "style": { + "type": "string" + } + }, + "default": {} + }, + "binding": { + "description": "绑定", + "type": "object", + "default": {} + }, + "required": { + "description": "必填", + "type": "boolean", + "default": false + }, + "readonly": { + "description": "只读", + "type": "boolean", + "default": false + }, + "placeholder": { + "description": "提示文本", + "type": "string" + }, + "format": { + "description": "格式", + "type": "string" + }, + "maxTime": { + "description": "最大时间", + "type": "string" + }, + "minTime": { + "description": "最小时间", + "type": "string" + }, + "onUpdate:modelValue": { + "description": "值更新事件", + "type": "string", + "default": "" + } + }, + "events": [ + "onUpdate:modelValue" + ], + "required": [ + "type" + ], + "ignore": [ + "id", + "appearance", + "visible" + ] +} \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/time-picker/src/time-picker.props.ts b/packages/mobile-ui-vue/components/time-picker/src/time-picker.props.ts index 6fe0505ec07..96075299dd8 100644 --- a/packages/mobile-ui-vue/components/time-picker/src/time-picker.props.ts +++ b/packages/mobile-ui-vue/components/time-picker/src/time-picker.props.ts @@ -1,6 +1,10 @@ import { ExtractPropTypes } from 'vue'; import { buttonEditProps } from '@farris/mobile-ui-vue/button-edit'; import { timePickerPanelProps } from './time-picker-panel.props'; +import { getPropsResolverGenerator } from '@farris/mobile-ui-vue/dynamic-resolver'; +import timePickerSchema from './schema/time-picker.schema.json'; +import { schemaMapper } from './schema/schema-mapper'; +import { schemaResolver } from './schema/schema-resolver'; export const TIME_PICKER_NAME = 'FmTimePicker'; @@ -14,3 +18,9 @@ export const timePickerProps = { }; export type TimePickerInputProps = ExtractPropTypes; +export const propsResolverGenerator = getPropsResolverGenerator( + timePickerProps, + timePickerSchema, + schemaMapper, + schemaResolver +); diff --git a/packages/renderer/src/component-config-dependency-resolver/data-grid-component-config-dependency-resolver.ts b/packages/renderer/src/component-config-dependency-resolver/data-grid-component-config-dependency-resolver.ts index 7d9ca1f62ef..27256fb3e69 100644 --- a/packages/renderer/src/component-config-dependency-resolver/data-grid-component-config-dependency-resolver.ts +++ b/packages/renderer/src/component-config-dependency-resolver/data-grid-component-config-dependency-resolver.ts @@ -38,7 +38,7 @@ export class DataGridComponentConfigDependencyResolver extends ComponentConfigDe return configs && configs.length > 0 ? configs : null; } return fields.reduce((configs: Configuration[], field: Record) => { - const { visible, editor, id } = field; + const { visible, editor, id, binding } = field; const visibleConfigDeps = this.configDepencencyResolveService.resolve(visible, schema); if (visibleConfigDeps) { configs.push({ deps: visibleConfigDeps, config: visible, path: `/columns/${id}:visible`, type: ConfigurationType.Visible }); @@ -55,7 +55,8 @@ export class DataGridComponentConfigDependencyResolver extends ComponentConfigDe } const requiredConfigDeps = this.configDepencencyResolveService.resolve(editor?.required, schema); if (requiredConfigDeps) { - configs.push({ deps: requiredConfigDeps, config: editor?.required, path: `columns/${id}:editor/required`, type: ConfigurationType.Required }); + const { field: fieldId } = binding; + configs.push({ fieldId, deps: requiredConfigDeps, config: editor?.required, path: `columns/${id}:editor/required`, type: ConfigurationType.Required }); } } return configs; diff --git a/packages/renderer/src/component-config-resolver/data-grid-component-config-resolver.ts b/packages/renderer/src/component-config-resolver/data-grid-component-config-resolver.ts index 284a6ecf18a..7885b8dc6a7 100644 --- a/packages/renderer/src/component-config-resolver/data-grid-component-config-resolver.ts +++ b/packages/renderer/src/component-config-resolver/data-grid-component-config-resolver.ts @@ -124,25 +124,29 @@ export class DataGridComponentConfigResolver extends ComponentConfigResolver { */ private buildColumnCommandHandler(eventName: string, commandSchema: any, gridComponentSchema: any, viewModel: any) { const eventHandlerName = commandSchema[eventName]; - if (!eventHandlerName) { - return; - } - - if (eventHandlerName.startsWith('communication:')) { + if (!eventHandlerName || eventHandlerName.startsWith('communication:')) { // 事件通讯 return (cell: any, row: any) => { - const module = viewModel.getModule(); - const { executeCommunications } = useCommunication(module); - return executeCommunications(eventName, gridComponentSchema, { cell, rowData: row.raw }, true); + return this.executeCommunications(eventName, gridComponentSchema, { cell, rowData: row.raw }, viewModel); }; - } else { - // 执行命令 + // 执行命令后触发事件通信 return (cell: any, row: any) => { - return viewModel[eventHandlerName]({ cell, rowData: row.raw }); + return viewModel[eventHandlerName]({ cell, rowData: row.raw }).then(() => { + return this.executeCommunications(eventName, gridComponentSchema, { cell, rowData: row.raw }, viewModel); + }); }; } } + + /** + * 执行事件通信 + */ + private executeCommunications(eventName: any, gridComponentSchema: any, event: any, viewModel: any): void { + const module = viewModel.getModule(); + const { executeCommunications } = useCommunication(module); + return executeCommunications(eventName, gridComponentSchema, event, true); + } } diff --git a/packages/renderer/src/component-effectors/data-grid-required-effector.ts b/packages/renderer/src/component-effectors/data-grid-required-effector.ts index 056f9535591..0d68dc780b6 100644 --- a/packages/renderer/src/component-effectors/data-grid-required-effector.ts +++ b/packages/renderer/src/component-effectors/data-grid-required-effector.ts @@ -143,7 +143,7 @@ export class DataGridRequiredEffector { } // 设置验证规则 - this.setValidationRules(entity, controlConfig, isRequired, viewModel); + this.setValidationRules(entity, controlConfig, isRequired, viewModel, fieldId); } /** @@ -185,12 +185,15 @@ export class DataGridRequiredEffector { /** * 设置验证规则 */ - private setValidationRules(entity: Entity, controlConfig: FormControlConfig, isRequired: boolean, viewModel: ViewModel): void { + private setValidationRules(entity: Entity, controlConfig: FormControlConfig, isRequired: boolean, viewModel: ViewModel, fieldId: string): void { const { name: controlId, validationRules } = controlConfig; const rules = validationRules.filter((rule: any) => rule.name !== 'required'); if (isRequired) { - rules.push({ name: 'required', message: this.buildRequiredMessage(controlConfig) }); + const entitySchema = this.formMetadataService.getEntity(); + const resolvedField = FieldResolver.resolve(entitySchema, fieldId); + const { multiLanguage } = resolvedField || {}; + rules.push({ name: 'required', message: this.buildRequiredMessage(controlConfig), multiLanguage }); } // 添加必填规则 diff --git a/packages/renderer/src/composition/use-session.ts b/packages/renderer/src/composition/use-session.ts index 022cef8aa50..ce7ed7af611 100644 --- a/packages/renderer/src/composition/use-session.ts +++ b/packages/renderer/src/composition/use-session.ts @@ -1,7 +1,7 @@ import { Entity, Injector } from "@farris/devkit-vue"; import { useModule } from "./use-module"; import { MODULE_CONFIG_ID_TOKEN } from "../tokens"; -import { BefRepository } from "@farris/bef-vue"; +import { BefRepository, BefSessionManager } from "@farris/bef-vue"; import { RuntimeFrameworkService } from "@farris/command-services-vue"; export function useSession(injector: Injector) { @@ -11,6 +11,8 @@ export function useSession(injector: Injector) { if (!repository) { return; } + + // 获取标签页ID const runtimeFrameworkService = injector.get(RuntimeFrameworkService); if (!runtimeFrameworkService) { return; @@ -20,5 +22,8 @@ export function useSession(injector: Injector) { if (tabId) { runtimeContext.tabId = tabId; } - repository.sessionService.clearBeSessionId(runtimeContext); + + // 清理会话 + const moduleId = module.getId(); + BefSessionManager.clearSessionId(moduleId, repository.sessionService,repository.apiProxy.baseUrl, runtimeContext); } diff --git a/packages/renderer/src/config-builders/expression-config-builder.ts b/packages/renderer/src/config-builders/expression-config-builder.ts index 30211f2afce..5e5788abed8 100644 --- a/packages/renderer/src/config-builders/expression-config-builder.ts +++ b/packages/renderer/src/config-builders/expression-config-builder.ts @@ -9,13 +9,14 @@ export class ExpressionConfigBuilder { this.buildRules(expression); return expression; } - private convertFieldExpression(expression: ExpressionMetadata) { + private convertFieldExpression(expression: any) { if (expression.targetType === ExpressionBindingType.Field) { const path = this.convertFieldIdToPath(expression.target); if (!path) { console.warn(`expression target ${expression.target} not found`); return; } + expression.targetId = expression.target; expression.target = path; } } diff --git a/packages/renderer/src/config-builders/form/validation-rule-creator.ts b/packages/renderer/src/config-builders/form/validation-rule-creator.ts index 6758912aed9..452b9005990 100644 --- a/packages/renderer/src/config-builders/form/validation-rule-creator.ts +++ b/packages/renderer/src/config-builders/form/validation-rule-creator.ts @@ -70,7 +70,7 @@ class ValidationRuleCreator { const displayName = this.getDisplayName(controlNode); const originalMessage = LocaleService.translate('maxLength'); const message = originalMessage.replace(/\$property/g, displayName).replace(/\$constraint1/g, maxLength); - return { name: 'maxLength', maxLength, message }; + return { name: 'maxLength', maxLength, message, multiLanguage: 'language-textbox' === type }; } /** diff --git a/packages/renderer/src/config/types.ts b/packages/renderer/src/config/types.ts index 01b25dc348a..7aafb142530 100644 --- a/packages/renderer/src/config/types.ts +++ b/packages/renderer/src/config/types.ts @@ -22,4 +22,5 @@ export interface Configuration { deps: ConfigDependency[]; path: string; type?: ConfigurationType; + fieldId?: string; } diff --git a/packages/renderer/src/event-handler/end-edit-cell-event-handler.ts b/packages/renderer/src/event-handler/end-edit-cell-event-handler.ts index df243becb97..7f34b50701f 100644 --- a/packages/renderer/src/event-handler/end-edit-cell-event-handler.ts +++ b/packages/renderer/src/event-handler/end-edit-cell-event-handler.ts @@ -3,7 +3,7 @@ import { EventEmitter } from "../common"; import { ComponentService, FormMetadataService } from "../service"; import { EventHandler } from "./types"; import { ENTITY_STORE_SUFFIX, ViewEvent } from "../types"; -import { get } from "lodash-es"; +import { cloneDeep, get } from "lodash-es"; import { DataSourceResolver, FieldResolver } from "../resolvers"; export class EndEditCellEventHandler implements EventHandler { @@ -32,7 +32,7 @@ export class EndEditCellEventHandler implements EventHandler { if (!field) { return; } - const { bindingPath, dataSource } = FieldResolver.resolve(this.entitySchema, field) || {}; + const { bindingPath, dataSource, multiLanguage } = FieldResolver.resolve(this.entitySchema, field) || {}; if (!dataSource || !bindingPath) { return; } @@ -57,7 +57,11 @@ export class EndEditCellEventHandler implements EventHandler { fieldPath.forEach((path: string) => { entityPaths.appendNode(new EntityPathNode(EntityPathNodeType.PropName, path)); }); - entityStore?.setValueByPath(entityPaths, newValue); + if (multiLanguage) { + entityStore?.setValueByPath(entityPaths, cloneDeep(newValue)); + } else { + entityStore?.setValueByPath(entityPaths, newValue); + } // 继续处理帮助场景 if (!column || !column.editor) { return; diff --git a/packages/renderer/src/event-handler/modal-closed-event-handler.ts b/packages/renderer/src/event-handler/modal-closed-event-handler.ts new file mode 100644 index 00000000000..8867a15db14 --- /dev/null +++ b/packages/renderer/src/event-handler/modal-closed-event-handler.ts @@ -0,0 +1,85 @@ +import { Injector, Module } from "@farris/devkit-vue"; +import { EventEmitter } from "../common"; +import { FormMetadataService } from "../service"; +import { ViewEvent } from "../types"; +import { EventHandler } from "./types"; + +/** + * 弹窗关闭前事件 + */ +export class ModalClosedEventHandler implements EventHandler { + + /** + * 注册事件 + */ + constructor( + private emitter: EventEmitter, + private formMetadataService: FormMetadataService, + private module: Module, + private injector: Injector + ){} + + /** + * 注册事件监听 + */ + bind(): void { + this.emitter.on('closed', (payload: ViewEvent) => this.onClosed(payload)); + } + + /** + * 注销事件监听 + */ + dispose(): void { + this.emitter.on('closed', (payload: ViewEvent) => this.onClosed(payload)); + } + + /** + * 关闭处理 + */ + private onClosed(payload: any){ + // 只处理包含外部表单的弹窗 + const externalContainerSchema = this.getExternalContainerSchema(payload.schema); + if (!externalContainerSchema) { + return; + } + + // 释放模块相关资源 + const modalModuleId = this.getExternalModuleId(externalContainerSchema); + const modalModule = this.module.getDevkit().getModule(modalModuleId); + if (modalModule) { + modalModule.dispose(); + } + } + + /** + * 获取弹窗内部的外部容器 + * @param modalSchema + * @returns + */ + private getExternalContainerSchema(modalSchema: any) { + if (!modalSchema || modalSchema.type !== 'modal' || !Array.isArray(modalSchema.contents)) { + return false; + } + + const { contents } = modalSchema; + const externalContainerSchema = contents.find((childComponent: any) => { + return childComponent.type === 'external-container'; + }); + + return externalContainerSchema; + } + + /** + * 获取外部容器内表单的模块ID + */ + private getExternalModuleId(externalContainerSchema: any): string { + const externalContainerId = externalContainerSchema.id; + const { externalComponent } = externalContainerSchema; + const externalComponentCode = externalComponent.code; + + const externalModuleId = `${externalContainerId}-${externalComponentCode}`; + + return externalModuleId; + } + +} diff --git a/packages/renderer/src/event-handler/model-value-update-event-handler.ts b/packages/renderer/src/event-handler/model-value-update-event-handler.ts index c950d059bd8..c99fefe41d2 100644 --- a/packages/renderer/src/event-handler/model-value-update-event-handler.ts +++ b/packages/renderer/src/event-handler/model-value-update-event-handler.ts @@ -1,11 +1,10 @@ - - import { EventHandler } from "./types"; import { Injector, Module } from "@farris/devkit-vue"; import { FormMetadataService } from "../service"; import { ViewEvent } from "../types"; import { EventEmitter } from "../common"; import { DataSourceResolver, FieldResolver } from "../resolvers"; +import { cloneDeep } from 'lodash-es'; export class ModelValueUpdateEventHandler implements EventHandler { @@ -24,7 +23,7 @@ export class ModelValueUpdateEventHandler implements EventHandler { if (!field) { return; } - const { dataSource, bindingPath } = field; + const { dataSource, bindingPath, multiLanguage } = field; if (!dataSource || !bindingPath) { console.error(`Invalid field: ${JSON.stringify(field)}`); return; @@ -48,7 +47,11 @@ export class ModelValueUpdateEventHandler implements EventHandler { if (!currentEntity || !currentEntity.idValue) { return; } - viewModel?.entityStore?.setValueByPath(entityPath, value); + if (multiLanguage) { + viewModel?.entityStore?.setValueByPath(entityPath, cloneDeep(value)); + } else { + viewModel?.entityStore?.setValueByPath(entityPath, value); + } } private get entitySchema() { return this.formMetadataService.getEntity(); diff --git a/packages/renderer/src/event-handler/providers.ts b/packages/renderer/src/event-handler/providers.ts index cd26960b550..ebed75a3b50 100644 --- a/packages/renderer/src/event-handler/providers.ts +++ b/packages/renderer/src/event-handler/providers.ts @@ -12,6 +12,7 @@ import { DataGridPageSizeChangeEventHandler } from "./data-grid-page-size-change import { DataGridSelectionChangeEventHandler } from "./data-grid-selection-change-event-handler"; import { QuerySolutionConditionChangeEventHandler } from "./query-solution-condition-change-event-handler"; import { DataGridDoubleClickRowEventHandler } from './data-grid-double-click-row-event-handler'; +import { ModalClosedEventHandler } from './modal-closed-event-handler'; export const eventHanderProviders: StaticProvider[] = [ { provide: EVENT_HANDLERS_TOKEN, useClass: LookupDataMappingEventHandler, deps: [EventEmitter, FormMetadataService, Module, Injector], multi: true }, @@ -23,5 +24,6 @@ export const eventHanderProviders: StaticProvider[] = [ { provide: EVENT_HANDLERS_TOKEN, useClass: DataGridPageSizeChangeEventHandler, deps: [EventEmitter, FormMetadataService, Module, Injector], multi: true }, { provide: EVENT_HANDLERS_TOKEN, useClass: DataGridSelectionChangeEventHandler, deps: [EventEmitter, FormMetadataService, Module, Injector], multi: true }, { provide: EVENT_HANDLERS_TOKEN, useClass: QuerySolutionConditionChangeEventHandler, deps: [EventEmitter, FormMetadataService, Module, Injector], multi: true }, - { provide: EVENT_HANDLERS_TOKEN, useClass: DataGridDoubleClickRowEventHandler, deps: [EventEmitter, FormMetadataService, Module, Injector], multi: true } + { provide: EVENT_HANDLERS_TOKEN, useClass: DataGridDoubleClickRowEventHandler, deps: [EventEmitter, FormMetadataService, Module, Injector], multi: true }, + { provide: EVENT_HANDLERS_TOKEN, useClass: ModalClosedEventHandler, deps: [EventEmitter, FormMetadataService, Module, Injector], multi: true } ]; diff --git a/packages/renderer/src/i18n/resource-loader.ts b/packages/renderer/src/i18n/resource-loader.ts index fce121c36c2..4946a33f390 100644 --- a/packages/renderer/src/i18n/resource-loader.ts +++ b/packages/renderer/src/i18n/resource-loader.ts @@ -21,17 +21,33 @@ export class ResourceLoader { public async loadByProjectPath(formMetadataId: string, projectPath: string) { const metadata = this.metadataManager.getMetadataCache(formMetadataId); const formMetadata = metadata.form; - const resourceMetadatas = formMetadata.refs && formMetadata.refs.filter((ref: any) => { + const resourceMetadataIds = this.resolveResourceMetadataIds(formMetadata); + const resourceMetadataPromise = resourceMetadataIds.map((id: string) => { + return this.loadResourceMetadataByPath(projectPath, id); + }); + await this.loadExternalMetadataByPath(projectPath, formMetadata); + return this.loadAndCacheResources(formMetadataId, resourceMetadataPromise); + } + private async loadByDto(formMetadataId: string, projectPath: string, nameSpace: string, relativePath?: string, fileName?: string) { + const metadata = this.metadataManager.getMetadataCache(formMetadataId); + const formMetadata = metadata.form; + const resourceMetadataIds = this.resolveResourceMetadataIds(formMetadata); + const resourceMetadataPromise = resourceMetadataIds.map((id: string) => { + return this.loadResourceMetadataByDto(projectPath, { id, relativePath, nameSpace, fileName }); + }); + await this.loadExternalMetadataByPath(projectPath, formMetadata); + return this.loadAndCacheResources(formMetadataId, resourceMetadataPromise); + } + private resolveResourceMetadataIds(formMetadata: any) { + return formMetadata.refs && formMetadata.refs.filter((ref: any) => { return ref.DependentMetadata.Type === "ResourceMetadata"; }).map((ref: any) => { - const { ID: id, NameSpace: nameSpace } = ref.DependentMetadata; - return { id, nameSpace }; + const { ID: id } = ref.DependentMetadata; + return id; }) || []; - const resourceMetadataPromise = resourceMetadatas.map((metadataDto: any) => { - return this.loadResourceMetadataByPath(projectPath, metadataDto); - }); - await this.loadExternalMetadataByPath(projectPath, formMetadata); - return Promise.all(resourceMetadataPromise).then((resourceMetadatas) => { + } + private loadAndCacheResources(formMetadataId: string, resourceLoader: Promise[]) { + return Promise.all(resourceLoader).then((resourceMetadatas) => { if (!resourceMetadatas || resourceMetadatas.length < 1) { return; } @@ -69,9 +85,9 @@ export class ResourceLoader { private async loadExternalMetadataByPath(projectPath: string, formMetadata: any) { const formMetadataQuery = new FormMetadataQuery(formMetadata); const externalFormInfos = formMetadataQuery.getExternalFormInfos(); - for (const externalFormInfo of externalFormInfos) { - await this.loadByProjectPath(externalFormInfo.id, projectPath); + const { id, nameSpace, fileName, relativePath } = externalFormInfo; + await this.loadByDto(id, projectPath, nameSpace, relativePath, fileName); } } private async loadExternalMetadataById(formMetadata: any) { @@ -82,8 +98,15 @@ export class ResourceLoader { await this.loadByMetadataId(externalFormInfo.id); } } - private loadResourceMetadataByPath(projectPath: string, metadataDto: { id: string, nameSpace: string; }) { + private loadResourceMetadataByPath(projectPath: string, metadataId: string) { + const resourceMetadata = this.resourceMetadataDataService.loadByProjectPath(projectPath, metadataId); + return this.loadCurrentResourceMetadata(projectPath, resourceMetadata); + } + private loadResourceMetadataByDto(projectPath: string, metadataDto: any) { const resourceMetadata = this.resourceMetadataDataService.loadByDto(projectPath, metadataDto); + return this.loadCurrentResourceMetadata(projectPath, resourceMetadata); + } + private loadCurrentResourceMetadata(projectPath: string, resourceMetadata: any) { const languageCode = this.languageListManager.getLanguageCode(); if (languageCode === DEFAULT_LOCALE) { return resourceMetadata; diff --git a/packages/renderer/src/i18n/transformer/data-grid-i18n-transformer.ts b/packages/renderer/src/i18n/transformer/data-grid-i18n-transformer.ts index dd693481b0f..70dc766f5b5 100644 --- a/packages/renderer/src/i18n/transformer/data-grid-i18n-transformer.ts +++ b/packages/renderer/src/i18n/transformer/data-grid-i18n-transformer.ts @@ -19,39 +19,60 @@ export class DataGridI18nTransformer { const { id: columnId, title } = column; column.title = this.translate.transform(this.formMetadataId, columnId, title); this.resolveEnumColumn(column); - this.resolveBooleanColumn(column); + this.resolveBooleanFormatter(column); this.resolveEditorPlaceholder(column); this.resolveNumberFormatter(column); + this.resolveEnumFormatter(column); + this.resolveSwitchColumn(column); + this.resolveLookupColumn(column); }); } private resolveEnumColumn(column: Record) { - const { dataType, formatter, id: columnId, editor } = column; + const { dataType, id: columnId, editor } = column; if (dataType !== 'enum') { return; } - if (formatter) { - // eslint-disable-next-line prefer-destructuring - const data: any[] = formatter.data; - if (data && data.length > 0) { - data.forEach((item: any) => { - item.name = this.translate.transform(this.formMetadataId, `${columnId}/formatter/data/${item.value}`, item.name); - }); - } + if (!editor) { + return; } - if (editor) { - const { data } = editor; - if (data && data.length > 0) { - data.forEach((item: any) => { - item.name = this.translate.transform(this.formMetadataId, `${columnId}/editor/data/${item.value}`, item.name); - }); - } + const { data } = editor; + if (!data || data.length < 1) { + return; + } + data.forEach((item: any) => { + item.name = this.translate.transform(this.formMetadataId, `${columnId}/editor/data/${item.value}`, item.name); + }); + } + private resolveEnumFormatter(column: Record) { + const { formatter, id: columnId } = column; + if (!formatter) { + return; + } + const { type } = formatter; + if (type !== 'enum') { + return; + } + const { data } = formatter; + if (data && data.length > 0) { + data.forEach((item: any) => { + item.name = this.translate.transform(this.formMetadataId, `${columnId}/formatter/data/${item.value}`, item.name); + }); } } - private resolveBooleanColumn(column: Record) { - const { dataType, formatter, id: columnId } = column; - if (dataType === 'boolean' && formatter) { - const { trueText, falseText } = formatter; + private resolveBooleanFormatter(column: Record) { + const { formatter, id: columnId } = column; + if (!formatter) { + return; + } + const { type } = formatter; + if (type !== 'boolean') { + return; + } + const { trueText, falseText } = formatter; + if (trueText) { formatter.trueText = this.translate.transform(this.formMetadataId, `${columnId}/formatter/trueText`, trueText); + } + if (falseText) { formatter.falseText = this.translate.transform(this.formMetadataId, `${columnId}/formatter/falseText`, falseText); } } @@ -63,12 +84,49 @@ export class DataGridI18nTransformer { const { placeholder } = editor; editor.placeholder = this.translate.transform(this.formMetadataId, `${columnId}/placeholder`, placeholder); } - private resolveNumberFormatter(column: Record){ - const { dataType, formatter, id: columnId } = column; - if (dataType === 'number' && formatter) { - const { prefix, suffix } = formatter; + private resolveNumberFormatter(column: Record) { + const { formatter, id: columnId } = column; + if (!formatter) { + return; + } + const { type } = formatter; + if (type !== 'number') { + return; + } + const { prefix, suffix } = formatter; + if (prefix) { formatter.prefix = this.translate.transform(this.formMetadataId, `${columnId}/formatter/prefix`, prefix); + } + if (suffix) { formatter.suffix = this.translate.transform(this.formMetadataId, `${columnId}/formatter/suffix`, suffix); } } + private resolveSwitchColumn(column: Record) { + const { editor, id } = column; + if (!editor) { + return; + } + const { type, onLabel, offLabel } = editor; + if (type !== 'switch') { + return; + } + if (onLabel) { + editor.onLabel = this.translate.transform(this.formMetadataId, `${id}/onLabel`, onLabel); + } + if (offLabel) { + editor.offLabel = this.translate.transform(this.formMetadataId, `${id}/offLabel`, offLabel); + } + } + private resolveLookupColumn(column: Record) { + const { editor, id } = column; + if (!editor) { + return; + } + const { type, dialog } = editor; + if (type !== 'lookup' || !dialog) { + return; + } + const { title } = dialog; + dialog.title = this.translate.transform(this.formMetadataId, `${id}/dialog/title`, title); + } } diff --git a/packages/renderer/src/i18n/transformer/form-group-i18n-transformer.ts b/packages/renderer/src/i18n/transformer/form-group-i18n-transformer.ts index a0470422c73..70821d42681 100644 --- a/packages/renderer/src/i18n/transformer/form-group-i18n-transformer.ts +++ b/packages/renderer/src/i18n/transformer/form-group-i18n-transformer.ts @@ -10,6 +10,7 @@ export class FormGroupI18nTransformer { this.resolveValidationMessage(this.metadata); this.resolveLookupTitle(this.metadata); this.resolveSwitchLabel(this.metadata); + this.resolveCheckboxLabel(this.metadata); } private resolveEditorData(viewSchema: Record) { const { editor, id } = viewSchema; @@ -67,4 +68,17 @@ export class FormGroupI18nTransformer { editor.offLabel = this.translate.transform(this.formMetadataId, `${id}/offLabel`, offLabel); } } + private resolveCheckboxLabel(viewSchema: Record){ + const { editor, id } = viewSchema; + if (!editor) { + return; + } + const { type, label } = editor; + if (type !== 'check-box') { + return; + } + if (label) { + editor.label = this.translate.transform(this.formMetadataId, `${id}/editor/label`, label); + } + } } diff --git a/packages/renderer/src/i18n/transformer/response-toolbar-i18n-transformer.ts b/packages/renderer/src/i18n/transformer/response-toolbar-i18n-transformer.ts index c0d296af3dd..4613df41f21 100644 --- a/packages/renderer/src/i18n/transformer/response-toolbar-i18n-transformer.ts +++ b/packages/renderer/src/i18n/transformer/response-toolbar-i18n-transformer.ts @@ -8,14 +8,16 @@ export class ResponseToolbarI18nTransformer { return; } buttons.forEach((button: Record) => { - const { children, text, id: buttonId } = button; - button.text = this.translate.transform(this.formMetadataId, `${id}/buttons/${buttonId}/text`, text); + const { children, text, id: buttonId, tipsText } = button; + button.text = this.translate.transform(this.formMetadataId, buttonId, text); + button.tipsText = this.translate.transform(this.formMetadataId, `${buttonId}/tipsText`, tipsText); if (!(children && children.length)) { return; } children.forEach((item: Record) => { - const { id: itemId, text } = item; - item.text = this.translate.transform(this.formMetadataId, `${id}/buttons/${buttonId}/children/${itemId}/text`, text); + const { id: itemId, text, tipsText } = item; + item.text = this.translate.transform(this.formMetadataId, itemId, text); + item.tipsText = this.translate.transform(this.formMetadataId, `${itemId}/tipsText`, tipsText); }); }); } diff --git a/packages/renderer/src/validator/response-required-validator.ts b/packages/renderer/src/validator/response-required-validator.ts index 760b154fb5e..95f80a41ae9 100644 --- a/packages/renderer/src/validator/response-required-validator.ts +++ b/packages/renderer/src/validator/response-required-validator.ts @@ -3,6 +3,7 @@ import { ComponentConfigRegistry, ConfigResolver, Configuration, ConfigurationTy import { ComponentConfigDependencyResolveService } from "../component-config-dependency-resolver"; import { FormMetadataService } from "../service"; import { LocaleService } from "@farris/command-services-vue"; +import { FieldResolver } from "../resolvers"; export class ResponseRequiredValidator implements FormValidator { constructor( @@ -70,7 +71,14 @@ export class ResponseRequiredValidator implements FormValidator { if (rules?.some(rule => rule.type === 'required')) { continue; } - const requiredRule = rules?.find((rule: any) => rule.name === 'required'); + let isMultiLanguage: undefined | boolean = undefined; + if (config.fieldId) { + const resolvedField = FieldResolver.resolve(this.formMetadataService.getEntity(), config.fieldId); + if (resolvedField) { + const { multiLanguage } = resolvedField; + isMultiLanguage = multiLanguage; + } + } const newRules = rules?.filter(rule => rule.type !== 'required') || []; const controlConfig = viewModel.formArrayStore?.getConfigManager().getControlConfig(fieldId); if (!controlConfig) { @@ -79,7 +87,7 @@ export class ResponseRequiredValidator implements FormValidator { newRules?.splice(0, 0, { name: 'required', message: this.buildRequiredMessage(controlConfig), - multiLanguage: requiredRule?.multiLanguage + multiLanguage: isMultiLanguage }); viewModel.formArrayStore?.setControlRules( entity.idValue, diff --git a/packages/ui-binding/lib/compositions/use-data-grid-binding.ts b/packages/ui-binding/lib/compositions/use-data-grid-binding.ts index 1e9c38715bc..020ae136df7 100644 --- a/packages/ui-binding/lib/compositions/use-data-grid-binding.ts +++ b/packages/ui-binding/lib/compositions/use-data-grid-binding.ts @@ -3,6 +3,7 @@ import { EntityChange, EntityChangeType, Entity, EntitySchema, EntityFieldSchema import { BindingOptions, ElementRef, UseDataGridBinding } from '../types'; import { useElementRef } from './use-element-ref'; import { useEntityPath } from './use-entity-path'; +import { cloneDeep } from 'lodash-es'; export function useDataGridBinding(elementRef: ElementRef, options: BindingOptions): UseDataGridBinding { const componentRef = useElementRef(elementRef); @@ -36,7 +37,8 @@ export function useDataGridBinding(elementRef: ElementRef, options: BindingOptio return; } } - const datas: Record[] | undefined = viewModel.entityStore?.getEntityListByPath(options.entityPath).toJSON(); + const entityData: Record[] | undefined = viewModel.entityStore?.getEntityListByPath(options.entityPath).toJSON(); + const datas = cloneDeep(entityData); const entities = viewModel.entityStore?.getEntityListByPath(options.entityPath).getEntities(); data.value = datas; if (change.type === EntityChangeType.Load) { diff --git a/packages/ui-vue/components/button-edit/src/button-edit.component.tsx b/packages/ui-vue/components/button-edit/src/button-edit.component.tsx index 6af4bbd3c40..d0a96840cad 100644 --- a/packages/ui-vue/components/button-edit/src/button-edit.component.tsx +++ b/packages/ui-vue/components/button-edit/src/button-edit.component.tsx @@ -25,6 +25,7 @@ import getTagEditorRender from './components/tag-edit.component'; import getButtonGroupRender from './components/button-group.component'; import getPopupRender from './components/popup-container.component'; import { popoverInstancesListKey } from './composition/types'; +import { useGuid } from '../../common'; export default defineComponent({ name: 'FButtonEdit', @@ -58,6 +59,7 @@ export default defineComponent({ const { hasFocusedTextBox, commitValue, inputGroupClass } = useTextBoxComposition; const useClearComposition = useClear(props, context, modelValue, hasFocusedTextBox, displayText, useTextBoxComposition); const { onMouseEnterTextBox, onMouseLeaveTextBox } = useClearComposition; + const {uuid} = useGuid(); const buttonEditClass = computed(() => { const classObject = { @@ -110,6 +112,8 @@ export default defineComponent({ hideTagsCount.value = getHeiddenItems(); }); + const controlId = props.id || uuid(8); + function getEditorRender() { if (props.multiSelect && props.inputType === 'tag') { @@ -171,8 +175,8 @@ export default defineComponent({ return () => { return ( <> -
-
+
{ context.slots.precontent?.() } {renderEditor()} diff --git a/packages/ui-vue/components/button-edit/src/button-edit.props.ts b/packages/ui-vue/components/button-edit/src/button-edit.props.ts index c2fc8e1c652..ef9298d8a87 100644 --- a/packages/ui-vue/components/button-edit/src/button-edit.props.ts +++ b/packages/ui-vue/components/button-edit/src/button-edit.props.ts @@ -92,7 +92,7 @@ export const buttonEditProps = { /** * 输入框最大长度 */ - maxLength: Number, + maxLength: {type: Number}, /** * 输入框Tab键索引 */ diff --git a/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx b/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx index ab4ecdb7432..a2e95dc01af 100644 --- a/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx +++ b/packages/ui-vue/components/button-edit/src/components/text-edit.component.tsx @@ -1,6 +1,7 @@ import { onMounted, ref, Ref } from "vue"; import { ButtonEditProps } from "../button-edit.props"; import { UseTextBox } from "../composition/types"; +import { useGuid } from "@farris/ui-vue/components/common"; export default function ( props: ButtonEditProps, @@ -11,7 +12,8 @@ export default function ( const { isTextBoxReadonly, textBoxClass, textBoxPlaceholder, textBoxTitle, onBlurTextBox, onClickTextBox, onFocusTextBox, onInput, onKeyDownTextBox, onKeyUpTextBox, onMouseDownTextBox, onTextBoxValueChange } = useTextBoxComposition; - + const id = ref(props.id); + const { uuid } = useGuid(); onMounted(() => { if (props.selectOnCreated) { (inputElementRef.value as HTMLInputElement)?.select(); @@ -19,9 +21,17 @@ export default function ( if (props.focusOnCreated) { (inputElementRef.value as HTMLInputElement)?.focus({ preventScroll: true }); } + + if (!id.value) { + id.value = 'button-edit_' + uuid(8); + } + + id.value = id.value + '-textbox'; + }); const isComposing = ref(false); + const compositionstart = (event) => { event.preventDefault(); isComposing.value = true; -- Gitee From 84c5bfc4f4e3b1f4fefbe9d4bd85b356b6459b76 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 25 Aug 2025 19:52:21 +0800 Subject: [PATCH 086/109] fix: ui vue supports i18n --- packages/ui-vue/components/chs.json | 493 ---------------------------- packages/ui-vue/components/chs.ts | 493 ---------------------------- packages/ui-vue/components/cht.ts | 489 --------------------------- packages/ui-vue/components/en.ts | 493 ---------------------------- packages/ui-vue/components/index.ts | 6 +- 5 files changed, 3 insertions(+), 1971 deletions(-) delete mode 100644 packages/ui-vue/components/chs.json delete mode 100644 packages/ui-vue/components/chs.ts delete mode 100644 packages/ui-vue/components/cht.ts delete mode 100644 packages/ui-vue/components/en.ts diff --git a/packages/ui-vue/components/chs.json b/packages/ui-vue/components/chs.json deleted file mode 100644 index fc7713c4ea0..00000000000 --- a/packages/ui-vue/components/chs.json +++ /dev/null @@ -1,493 +0,0 @@ -{ - "transfer": { - "selectedStart": "已选:", - "selectedEnd": "项数据" - }, - "timePicker": { - "placeholder": "请选择时间", - "time": { - "hour": "时", - "minute": "分", - "seconds": "秒" - } - }, - "tabs": { - "more": "更多", - "leftButton": "向左", - "rightButton": "向左", - "noData": "没有相关数据" - }, - "section": { - "expandLabel": "展开", - "collapseLabel": "收起" - }, - "responseToolbar": { - "more": "更多" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "方案名称", - "setAsDefault": "设为默认", - "confirm": "确定", - "cancel": "取消", - "caption": "新增方案", - "personal": "用户个人方案", - "system": "系统公共方案", - "nameNotify": "请填写方案名称", - "authNotify": "您暂无权限修改公共类型方案。", - "success": "查询方案保存成功。", - "maxLength": "方案名称最多100个字符,超出请修改" - }, - "manageDialog": { - "caption": "方案管理", - "default": "默认", - "system": "系统公共", - "saveAs": "另存为", - "save": "保存", - "manage": "管理", - "isDefault": "默认方案", - "code": "名称", - "type": "属性", - "private": "用户个人方案", - "public": "系统公共方案", - "org": "组织公共方案", - "remove": "删除" - }, - "configDialog": { - "caption": "筛选条件配置" - }, - "container": { - "filter": "筛选", - "default": "默认筛选方案", - "clear": "清空", - "require": "请填写{fields}再进行筛选" - } - }, - "pagination": { - "message": "共 {1} 条", - "totalInfo": { - "firstText": "共", - "lastText": "条" - }, - "pageList": { - "firstText": "每页", - "lastText": "条" - }, - "previous": "上一页", - "next": "下一页", - "goto": { - "prefix": "跳转至", - "suffix": "页" - }, - "show": "显示" - }, - "numberSpinner": { - "placeholder": "请输入数字", - "range": { - "begin": "请输入开始数字", - "end": "请输入结束数字" - } - }, - "messageBox": { - "yes": "是", - "no": "否", - "ok": "确定", - "close": "关闭", - "cancel": "取消", - "title": "系统提示", - "errorTitle": "错误提示", - "prompt": { - "fontSize": { - "name": "字体大小", - "small": "小", - "middle": "中", - "big": "大", - "large": "特大", - "huge": "超大" - }, - "tips": { - "surplus": "还可以输入 {0} 个字符", - "length": "已输入 {0} 个字符" - } - }, - "exception": { - "expand": "展开", - "collapse": "收起", - "happend": "发生时间", - "detail": "详细信息", - "copy": "复制详细信息", - "copySuccess": "复制成功", - "copyFailed": "复制失败", - "roger": "知道了" - } - }, - "lookup": { - "placeholder": "请选择", - "favorites": "收藏夹", - "selected": "已选数据", - "okText": "确定", - "cancelText": "取消", - "allColumns": "所有列", - "datalist": "数据列表", - "mustWriteSomething": "请输入关键字后查询。", - "mustChoosAdatarow": "请选择一条记录!", - "tipText": "您要找的是不是这些?", - "cascade": { - "enable": "同步选择", - "disable": "仅选择自身", - "up": "包含上级", - "down": "包含下级" - }, - "includechildren": "包含下级", - "favoriteInfo": { - "addFav": "已添加到收藏夹。", - "cancelFav": "已从收藏夹中移除。", - "addFavTitle": "收藏", - "cancelFavTitle": "取消收藏" - }, - "getAllChilds": "获取所有子级数据", - "contextMenu": { - "checkChildNodes": "勾选下级数据", - "uncheckChildNodes": "取消勾选下级数据", - "expandall": "全部展开", - "collapseall": "全部收起", - "expandByLayer": "按层级展开", - "expand1": "展开 1 级", - "expand2": "展开 2 级", - "expand3": "展开 3 级", - "expand4": "展开 4 级", - "expand5": "展开 5 级", - "expand6": "展开 6 级", - "expand7": "展开 7 级", - "expand8": "展开 8 级", - "expand9": "展开 9 级" - }, - "quick": { - "notfind": "未找到搜索内容", - "more": "显示更多" - }, - "configError": "帮助显示列未配置,请检查是否已正确配置帮助数据源! ", - "selectedInfo": { - "total": "已选 {0} 条", - "clear": "取消已选", - "remove": "移除 ({0})", - "confirm": "您确认要取消所有选中记录吗?" - }, - "clearAllConditions": "清除所有查询条件", - "anyFields": "全部" - }, - "loading": { - "message": "正在加载,请稍候..." - }, - "listView": { - "emptyMessage": "暂无数据" - }, - "filterConditionEditor": { - "cancelButton": "取消", - "okButton": "确定", - "addWhere": "添加子句", - "clear": "清空", - "moveTop": "置顶", - "moveUp": "上移", - "moveDown": "下移", - "moveBottom": "置底", - "leftBrackets": "左括号", - "field": "字段", - "operator": "操作符", - "value": "值", - "valueType": "值类型", - "expressType": { - "value": "值", - "express": "表达式", - "frontExpress": "表单表达式" - }, - "rightBrackets": "右括号", - "relation": "关系", - "relationValue": { - "and": "并且", - "or": "或者" - }, - "designTab": "设计器", - "jsonTab": "源代码", - "sqlTab": "Sql预览", - "title": "条件编辑器", - "message": "确认要清空当前所有数据吗?", - "validate": { - "bracket": "左右括号不匹配,请检查", - "relation": "条件关系不完整,请检查", - "field": "条件字段未设置,请检查" - } - }, - "eventParameter": { - "title": "参数编辑器", - "ok": "确定", - "cancel": "取消", - "workFlowClass": { - "title": "请选择流程分类" - }, - "generalEditor": { - "field": "字段", - "tabVar": "变量", - "form": "表单组件" - }, - "jsonEditor": { - "dialogTitle": "可配置参数编辑器", - "keyColumnTitle": "参数", - "valueColumnTitle": "参数值", - "addButtonText": "添加配置参数", - "keyColumnPlaceholder": "请输入参数", - "error": "JsonEditor的参数预期是数组,但收到无效的JSON" - }, - "comboTree": { - "placeholder": "请选择" - } - }, - "drawer": { - "cancel": "取消", - "confirm": "确定" - }, - "datepicker": { - "dayLabels": { - "Sun": "日", - "Mon": "一", - "Tue": "二", - "Wed": "三", - "Thu": "四", - "Fri": "五", - "Sat": "六" - }, - "monthLabels": { - "1": "一月", - "2": "二月", - "3": "三月", - "4": "四月", - "5": "五月", - "6": "六月", - "7": "七月", - "8": "八月", - "9": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月" - }, - "dateFormat": "yyyy-MM-dd", - "returnFormat": "yyyy-MM-dd", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "年", - "timeBtnText": "选择时间", - "dateBtnText": "选择日期", - "commitBtnText": "确定", - "weekText": "周", - "placeholder": "请选择日期", - "range": { - "begin": "请选择开始日期", - "end": "请选择结束日期" - }, - "message": { - "101": "结束时间不得早于开始时间!", - "102": "仅允许选择 ${0} 个日期" - }, - "current": { - "today": "今天", - "week": "本周", - "month": "本月", - "year": "今年" - }, - "multiDatesLocale": { - "backtotoday": "回到今天", - "clearSelections": "清空", - "delete": "删除", - "selected": "已选,天" - }, - "quickSelectors": { - "today": "今天", - "yesterday": "昨天", - "tomorrow": "明天", - "thisMonday": "本周一", - "nextMonday": "下周一", - "firstDayOfMonth": "本月初", - "lastDayOfMonth": "本月末", - "firstDayOfLastMonth": "上月初", - "lastDayOfLastMonth": "上月末", - "firstDayOfYear": "今年初", - "lastDayOfYear": "今年末", - "firstDayOfQuarter": "本季度初", - "lastDayOfQuarter": "本季度末", - "thisWeek": "本周", - "lastWeek": "上周", - "nextWeek": "下周", - "past7Days": "过去7天", - "past30Days": "过去30天", - "thisMonth": "本月", - "lastMonth": "上月", - "thisQuarter": "本季度", - "lastQuarter": "上季度", - "thisYear": "今年", - "lastYear": "去年", - "recent3Months": "最近3个月", - "recent6Months": "最近6个月" - } - }, - "datagrid": { - "lineNumberTitle": "序号", - "emptyMessage": "暂无数据", - "pagination": { - "previousLabel": "上一页", - "nextLabel": "下一页", - "message": "共 {1} 条", - "pagelist": { - "firstText": "显示", - "lastText": "条" - } - }, - "filter": { - "title": "筛选", - "reset": "重置", - "clear": "清空", - "clearAll": "清空所有条件", - "setting": "高级设置", - "nofilter": "[ 无 ]", - "checkAll": "全选", - "and": "并且", - "or": "或者", - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null" - }, - "more": "查看更多", - "ok": "确定", - "cancel": "取消", - "sevenDays": "七天", - "oneMonth": "一个月", - "threeMonths": "三个月", - "sixMonths": "半年" - }, - "settings": { - "visible": "显示列", - "sortting": "列排序", - "title": "列配置", - "canchoose": "可选列", - "choosed": "已选列", - "asc": "升序", - "desc": "降序", - "cancelSort": "取消排序", - "ok": "确定", - "cancel": "取消", - "reset": "恢复默认", - "conciseMode": "简洁模式", - "advancedMode": "高级模式", - "formatSetting": "列格式", - "properties": "列属性", - "groupping": "分组", - "allColumns": "所有列", - "visibleColumns": "可见列", - "hiddenColumns": "隐藏列", - "searchPlaceholder": "请输入列名称", - "checkall": "全部显示/隐藏", - "headeralign": "表头对齐", - "dataalign": "数据对齐", - "alignLeft": "左对齐", - "alignCenter": "居中对齐", - "alignRight": "右对齐", - "summarytype": "汇总合计类型", - "summarytext": "汇总合计文本", - "summaryNone": "无", - "summarySum": "求和", - "summaryMax": "最大值", - "summaryMin": "最小值", - "summarCount": "计数", - "summaryAverage": "平均值", - "grouppingField": "分组字段", - "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", - "grouppingSummary": "分组合计", - "addGrouppingFieldTip": "添加分组字段", - "removeGrouppingFieldTip": "移除分组字段", - "grouppingSummaryType": "分组合计类型", - "grouppingSummaryText": "分组合计文本", - "restoreDefaultSettingsText": "确认要恢复默认设置吗?", - "simple": { - "title": "显示列", - "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", - "count": "已显示 {0} 列" - } - }, - "selectionData": { - "clearAll": "清空", - "tooltip": "点击显示已选记录列表", - "currentLenth": "已选择:{0} 条" - }, - "groupRow": { - "tips": "拖动列到这儿可进行数据分组", - "removeColumn": "移除分组列", - "clearTip": "清除所有分组字段", - "clear": "清空" - }, - "summary": { - "title": "当页合计" - }, - "loadingMessage": "正在加载", - "commandColumn": { - "title": "操作", - "edit": "编辑", - "remove": "删除", - "cancel": "取消", - "accept": "确定" - } - }, - "condition": { - "add": "添加条件", - "create": "生成条件组", - "reset": "重置", - "and": "与", - "or": "或" - }, - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null", - "startWith": "开始是", - "endWith": "结束是", - "and": "与", - "or": "或" - }, - "comboList": { - "remoteError": "请求方法类型不正确", - "placeholder": "请选择" - }, - "avatar": { - "imgtitle": "点击修改", - "typeError": "上传图片类型不正确", - "sizeError": "上传图片不能大于", - "uploadError": "图片上传失败,请重试!", - "loadError": "加载错误", - "loading": "加载中" - } - } \ No newline at end of file diff --git a/packages/ui-vue/components/chs.ts b/packages/ui-vue/components/chs.ts deleted file mode 100644 index 4bb37dd0bfd..00000000000 --- a/packages/ui-vue/components/chs.ts +++ /dev/null @@ -1,493 +0,0 @@ -export default { - "transfer": { - "selectedStart": "已选:", - "selectedEnd": "项数据" - }, - "timePicker": { - "placeholder": "请选择时间", - "time": { - "hour": "时", - "minute": "分", - "seconds": "秒" - } - }, - "tabs": { - "more": "更多", - "leftButton": "向左", - "rightButton": "向左", - "noData": "没有相关数据" - }, - "section": { - "expandLabel": "展开", - "collapseLabel": "收起" - }, - "responseToolbar": { - "more": "更多" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "方案名称", - "setAsDefault": "设为默认", - "confirm": "确定", - "cancel": "取消", - "caption": "新增方案", - "personal": "用户个人方案", - "system": "系统公共方案", - "nameNotify": "请填写方案名称", - "authNotify": "您暂无权限修改公共类型方案。", - "success": "查询方案保存成功。", - "maxLength": "方案名称最多100个字符,超出请修改" - }, - "manageDialog": { - "caption": "方案管理", - "default": "默认", - "system": "系统公共", - "saveAs": "另存为", - "save": "保存", - "manage": "管理", - "isDefault": "默认方案", - "code": "名称", - "type": "属性", - "private": "用户个人方案", - "public": "系统公共方案", - "org": "组织公共方案", - "remove": "删除" - }, - "configDialog": { - "caption": "筛选条件配置" - }, - "container": { - "filter": "筛选", - "default": "默认筛选方案", - "clear": "清空", - "require": "请填写{fields}再进行筛选" - } - }, - "pagination": { - "message": "共 {1} 条", - "totalInfo": { - "firstText": "共", - "lastText": "条" - }, - "pageList": { - "firstText": "每页", - "lastText": "条" - }, - "previous": "上一页", - "next": "下一页", - "goto": { - "prefix": "跳转至", - "suffix": "页" - }, - "show": "显示" - }, - "numberSpinner": { - "placeholder": "请输入数字", - "range": { - "begin": "请输入开始数字", - "end": "请输入结束数字" - } - }, - "messageBox": { - "yes": "是", - "no": "否", - "ok": "确定", - "close": "关闭", - "cancel": "取消", - "title": "系统提示", - "errorTitle": "错误提示", - "prompt": { - "fontSize": { - "name": "字体大小", - "small": "小", - "middle": "中", - "big": "大", - "large": "特大", - "huge": "超大" - }, - "tips": { - "surplus": "还可以输入 {0} 个字符", - "length": "已输入 {0} 个字符" - } - }, - "exception": { - "expand": "展开", - "collapse": "收起", - "happend": "发生时间", - "detail": "详细信息", - "copy": "复制详细信息", - "copySuccess": "复制成功", - "copyFailed": "复制失败", - "roger": "知道了" - } - }, - "lookup": { - "placeholder": "请选择", - "favorites": "收藏夹", - "selected": "已选数据", - "okText": "确定", - "cancelText": "取消", - "allColumns": "所有列", - "datalist": "数据列表", - "mustWriteSomething": "请输入关键字后查询。", - "mustChoosAdatarow": "请选择一条记录!", - "tipText": "您要找的是不是这些?", - "cascade": { - "enable": "同步选择", - "disable": "仅选择自身", - "up": "包含上级", - "down": "包含下级" - }, - "includechildren": "包含下级", - "favoriteInfo": { - "addFav": "已添加到收藏夹。", - "cancelFav": "已从收藏夹中移除。", - "addFavTitle": "收藏", - "cancelFavTitle": "取消收藏" - }, - "getAllChilds": "获取所有子级数据", - "contextMenu": { - "checkChildNodes": "勾选下级数据", - "uncheckChildNodes": "取消勾选下级数据", - "expandall": "全部展开", - "collapseall": "全部收起", - "expandByLayer": "按层级展开", - "expand1": "展开 1 级", - "expand2": "展开 2 级", - "expand3": "展开 3 级", - "expand4": "展开 4 级", - "expand5": "展开 5 级", - "expand6": "展开 6 级", - "expand7": "展开 7 级", - "expand8": "展开 8 级", - "expand9": "展开 9 级" - }, - "quick": { - "notfind": "未找到搜索内容", - "more": "显示更多" - }, - "configError": "帮助显示列未配置,请检查是否已正确配置帮助数据源! ", - "selectedInfo": { - "total": "已选 {0} 条", - "clear": "取消已选", - "remove": "移除 ({0})", - "confirm": "您确认要取消所有选中记录吗?" - }, - "clearAllConditions": "清除所有查询条件", - "anyFields": "全部" - }, - "loading": { - "message": "正在加载,请稍候..." - }, - "listView": { - "emptyMessage": "暂无数据" - }, - "filterConditionEditor": { - "cancelButton": "取消", - "okButton": "确定", - "addWhere": "添加子句", - "clear": "清空", - "moveTop": "置顶", - "moveUp": "上移", - "moveDown": "下移", - "moveBottom": "置底", - "leftBrackets": "左括号", - "field": "字段", - "operator": "操作符", - "value": "值", - "valueType": "值类型", - "expressType": { - "value": "值", - "express": "表达式", - "frontExpress": "表单表达式" - }, - "rightBrackets": "右括号", - "relation": "关系", - "relationValue": { - "and": "并且", - "or": "或者" - }, - "designTab": "设计器", - "jsonTab": "源代码", - "sqlTab": "Sql预览", - "title": "条件编辑器", - "message": "确认要清空当前所有数据吗?", - "validate": { - "bracket": "左右括号不匹配,请检查", - "relation": "条件关系不完整,请检查", - "field": "条件字段未设置,请检查" - } - }, - "eventParameter": { - "title": "参数编辑器", - "ok": "确定", - "cancel": "取消", - "workFlowClass": { - "title": "请选择流程分类" - }, - "generalEditor": { - "field": "字段", - "tabVar": "变量", - "form": "表单组件" - }, - "jsonEditor": { - "dialogTitle": "可配置参数编辑器", - "keyColumnTitle": "参数", - "valueColumnTitle": "参数值", - "addButtonText": "添加配置参数", - "keyColumnPlaceholder": "请输入参数", - "error": "JsonEditor的参数预期是数组,但收到无效的JSON" - }, - "comboTree": { - "placeholder": "请选择" - } - }, - "drawer": { - "cancel": "取消", - "confirm": "确定" - }, - "datepicker": { - "dayLabels": { - "Sun": "日", - "Mon": "一", - "Tue": "二", - "Wed": "三", - "Thu": "四", - "Fri": "五", - "Sat": "六" - }, - "monthLabels": { - "1": "一月", - "2": "二月", - "3": "三月", - "4": "四月", - "5": "五月", - "6": "六月", - "7": "七月", - "8": "八月", - "9": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月" - }, - "dateFormat": "yyyy-MM-dd", - "returnFormat": "yyyy-MM-dd", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "年", - "timeBtnText": "选择时间", - "dateBtnText": "选择日期", - "commitBtnText": "确定", - "weekText": "周", - "placeholder": "请选择日期", - "range": { - "begin": "请选择开始日期", - "end": "请选择结束日期" - }, - "message": { - "101": "结束时间不得早于开始时间!", - "102": "仅允许选择 ${0} 个日期" - }, - "current": { - "today": "今天", - "week": "本周", - "month": "本月", - "year": "今年" - }, - "multiDatesLocale": { - "backtotoday": "回到今天", - "clearSelections": "清空", - "delete": "删除", - "selected": "已选,天" - }, - "quickSelectors": { - "today": "今天", - "yesterday": "昨天", - "tomorrow": "明天", - "thisMonday": "本周一", - "nextMonday": "下周一", - "firstDayOfMonth": "本月初", - "lastDayOfMonth": "本月末", - "firstDayOfLastMonth": "上月初", - "lastDayOfLastMonth": "上月末", - "firstDayOfYear": "今年初", - "lastDayOfYear": "今年末", - "firstDayOfQuarter": "本季度初", - "lastDayOfQuarter": "本季度末", - "thisWeek": "本周", - "lastWeek": "上周", - "nextWeek": "下周", - "past7Days": "过去7天", - "past30Days": "过去30天", - "thisMonth": "本月", - "lastMonth": "上月", - "thisQuarter": "本季度", - "lastQuarter": "上季度", - "thisYear": "今年", - "lastYear": "去年", - "recent3Months": "最近3个月", - "recent6Months": "最近6个月" - } - }, - "datagrid": { - "lineNumberTitle": "序号", - "emptyMessage": "暂无数据", - "pagination": { - "previousLabel": "上一页", - "nextLabel": "下一页", - "message": "共 {1} 条", - "pagelist": { - "firstText": "显示", - "lastText": "条" - } - }, - "filter": { - "title": "筛选", - "reset": "重置", - "clear": "清空", - "clearAll": "清空所有条件", - "setting": "高级设置", - "nofilter": "[ 无 ]", - "checkAll": "全选", - "and": "并且", - "or": "或者", - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null" - }, - "more": "查看更多", - "ok": "确定", - "cancel": "取消", - "sevenDays": "七天", - "oneMonth": "一个月", - "threeMonths": "三个月", - "sixMonths": "半年" - }, - "settings": { - "visible": "显示列", - "sortting": "列排序", - "title": "列配置", - "canchoose": "可选列", - "choosed": "已选列", - "asc": "升序", - "desc": "降序", - "cancelSort": "取消排序", - "ok": "确定", - "cancel": "取消", - "reset": "恢复默认", - "conciseMode": "简洁模式", - "advancedMode": "高级模式", - "formatSetting": "列格式", - "properties": "列属性", - "groupping": "分组", - "allColumns": "所有列", - "visibleColumns": "可见列", - "hiddenColumns": "隐藏列", - "searchPlaceholder": "请输入列名称", - "checkall": "全部显示/隐藏", - "headeralign": "表头对齐", - "dataalign": "数据对齐", - "alignLeft": "左对齐", - "alignCenter": "居中对齐", - "alignRight": "右对齐", - "summarytype": "汇总合计类型", - "summarytext": "汇总合计文本", - "summaryNone": "无", - "summarySum": "求和", - "summaryMax": "最大值", - "summaryMin": "最小值", - "summarCount": "计数", - "summaryAverage": "平均值", - "grouppingField": "分组字段", - "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", - "grouppingSummary": "分组合计", - "addGrouppingFieldTip": "添加分组字段", - "removeGrouppingFieldTip": "移除分组字段", - "grouppingSummaryType": "分组合计类型", - "grouppingSummaryText": "分组合计文本", - "restoreDefaultSettingsText": "确认要恢复默认设置吗?", - "simple": { - "title": "显示列", - "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", - "count": "已显示 {0} 列" - } - }, - "selectionData": { - "clearAll": "清空", - "tooltip": "点击显示已选记录列表", - "currentLenth": "已选择:{0} 条" - }, - "groupRow": { - "tips": "拖动列到这儿可进行数据分组", - "removeColumn": "移除分组列", - "clearTip": "清除所有分组字段", - "clear": "清空" - }, - "summary": { - "title": "当页合计" - }, - "loadingMessage": "正在加载", - "commandColumn": { - "title": "操作", - "edit": "编辑", - "remove": "删除", - "cancel": "取消", - "accept": "确定" - } - }, - "condition": { - "add": "添加条件", - "create": "生成条件组", - "reset": "重置", - "and": "与", - "or": "或" - }, - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null", - "startWith": "开始是", - "endWith": "结束是", - "and": "与", - "or": "或" - }, - "comboList": { - "remoteError": "请求方法类型不正确", - "placeholder": "请选择" - }, - "avatar": { - "imgtitle": "点击修改", - "typeError": "上传图片类型不正确", - "sizeError": "上传图片不能大于", - "uploadError": "图片上传失败,请重试!", - "loadError": "加载错误", - "loading": "加载中" - } - } \ No newline at end of file diff --git a/packages/ui-vue/components/cht.ts b/packages/ui-vue/components/cht.ts deleted file mode 100644 index 46ab464104f..00000000000 --- a/packages/ui-vue/components/cht.ts +++ /dev/null @@ -1,489 +0,0 @@ -export default { - "transfer": { - "selectedStart": "已選:", - "selectedEnd": "項數據" - }, - "timePicker": { - "placeholder": "請選擇時間", - "time": { - "hour": "時", - "minute": "分", - "seconds": "秒" - } - }, - "tabs": { - "more": "更多", - "leftButton": "向左", - "rightButton": "向左", - "noData": "沒有相關數據" - }, - "section": { - "expandLabel": "展開", - "collapseLabel": "收起" - }, - "responseToolbar": { - "more": "更多" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "方案名稱", - "setAsDefault": "設為預設", - "confirm": "確定", - "cancel": "取消", - "caption": "新增方案", - "personal": "使用者個人方案", - "system": "系統公共方案", - "nameNotify": "請填寫方案名稱", - "authNotify": "您暫無權限修改公共類型方案。", - "success": "查詢方案儲存成功。", - "maxLength": "方案名稱最多100個字元,超出請修改" - }, - "manageDialog": { - "caption": "方案管理", - "default": "預設", - "system": "系統公共", - "saveAs": "另存為", - "save": "保存", - "manage": "管理", - "isDefault": "預設方案", - "code": "名稱", - "type": "屬性", - "private": "用戶個人方案", - "public": "系統公共方案", - "org": "組織公共方案", - "remove": "刪除" - }, - "configDialog": { - "caption": "篩選條件配置" - }, - "container": { - "filter": "篩選", - "default": "默認篩選方案", - "clear": "清空", - "require": "請填寫{fields}再進行篩選" - } - }, - "pagination": { - "message": "共 {1} 條 ", - "totalInfo": { - "firstText": "共", - "lastText": "條" - }, - "pageList": { - "firstText": "每頁", - "lastText": "條" - }, - "previous": "上一頁", - "next": "下一頁", - "goto": { - "prefix": "跳轉至", - "suffix": "頁" - }, - "show": "顯示" - }, - "numberSpinner": { - "placeholder": "請輸入數字", - "range": { - "begin": "請輸入開始數字", - "end": "請輸入結束數字" - } - }, - "messageBox": { - "yes": "是", - "no": "否", - "ok": "確定", - "close": "關閉", - "cancel": "取消", - "title": "係統提示", - "errorTitle": "錯誤提示", - "prompt": { - "fontSize": { - "name": "字體大小", - "small": "小", - "middle": "中", - "big": "大", - "large": "特大", - "huge": "超大" - } - }, - "exception": { - "expand": "展開", - "collapse": "收起", - "happend": "發生時間", - "detail": "詳細信息", - "copy": "複制詳細信息", - "copySuccess": "複制成功", - "copyFailed": "複制失敗", - "roger": "知道了" - } - }, - "lookup": { - "placeholder": "請選擇", - "favorites": "收藏夾", - "selected": "已選數據", - "okText": "確定", - "cancelText": "取消", - "allColumns": "所有列", - "datalist": "數據列錶", - "mustWriteSomething": "請輸入關鍵字後查詢。", - "mustChoosAdatarow": "請選擇一條記錄!", - "tipText": "您要找的是不是這些?", - "cascade": { - "enable": "同步選擇", - "disable": "僅選擇自身", - "up": "包含上級", - "down": "包含下級" - }, - "includechildren": "包含下級", - "favoriteInfo": { - "addFav": "已添加到收藏夾。", - "cancelFav": "已從收藏夾中移除。", - "addFavTitle": "收藏", - "cancelFavTitle": "取消收藏" - }, - "getAllChilds": "獲取所有子級數據", - "contextMenu": { - "checkChildNodes": "勾選下級數據", - "uncheckChildNodes": "取消勾選下級數據", - "expandall": "全部展開", - "collapseall": "全部收起", - "expandByLayer": "按層級展開", - "expand1": "展開 1 級", - "expand2": "展開 2 級", - "expand3": "展開 3 級", - "expand4": "展開 4 級", - "expand5": "展開 5 級", - "expand6": "展開 6 級", - "expand7": "展開 7 級", - "expand8": "展開 8 級", - "expand9": "展開 9 級" - }, - "quick": { - "notfind": "未找到搜索內容", - "more": "顯示更多" - }, - "configError": "幫助顯示列未配置,請檢查是否已正確配置幫助數據源!", - "selectedInfo": { - "total": "已選 {0} 條", - "clear": "取消已選", - "remove": "移除 ({0})", - "confirm": "您確認要取消所有選中記錄嗎?" - }, - "clearAllConditions": "清除所有查詢條件", - "anyFields": "全部" - }, - "loading": { - "message": "正在加載,請稍候..." - }, - "listView": { - "emptyMessage": "暫無數據" - }, - "filterConditionEditor": { - "cancelButton": "取消", - "okButton": "確定", - "addWhere": "添加子句", - "clear": "清空", - "moveTop": "置頂", - "moveUp": "上移", - "moveDown": "下移", - "moveBottom": "置底", - "leftBrackets": "左括號", - "field": "字段", - "operator": "操作符", - "value": "值", - "valueType": "值類型", - "expressType": { - "value": "值", - "express": "錶達式", - "frontExpress": "表單表達式" - }, - "rightBrackets": "右括號", - "relation": "關係", - "relationValue": { - "and": "並且", - "or": "或者" - }, - "designTab": "設計器", - "jsonTab": "源代碼", - "sqlTab": "Sql預覽", - "title": "條件編輯器", - "message": "確認要清空當前所有數據嗎?", - "validate": { - "bracket": "左右括號不匹配,請檢查", - "relation": "條件關系不完整,請檢查", - "field": "條件字段未設置,請檢查" - } - }, - "eventParameter": { - "title": "參數編輯器", - "ok": "確定", - "cancel": "取消", - "workFlowClass": { - "title": "請選擇流程分類" - }, - "generalEditor": { - "field": "欄位", - "tabVar": "變數", - "form": "表單元件" - }, - "jsonEditor": { - "dialogTitle": "可配置參數編輯器", - "keyColumnTitle": "參數", - "valueColumnTitle": "參數值", - "addButtonText": "添加配置參數", - "keyColumnPlaceholder": "請輸入參數", - "error": "JsonEditor的參數預期是數位,但收到無效的JSON" - }, - "comboTree": { - "placeholder": "請選擇" - } - }, - "drawer": { - "cancel": "取消", - "confirm": "確定" - }, - "datepicker": { - "dayLabels": { - "Sun": "日", - "Mon": "一", - "Tue": "二", - "Wed": "三", - "Thu": "四", - "Fri": "五", - "Sat": "六" - }, - "monthLabels": { - "1": "一月", - "2": "二月", - "3": "三月", - "4": "四月", - "5": "五月", - "6": "六月", - "7": "七月", - "8": "八月", - "9": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月" - }, - "dateFormat": "yyyy-MM-dd", - "returnFormat": "yyyy-MM-dd", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "年", - "timeBtnText": "選擇時間", - "dateBtnText": "選擇日期", - "commitBtnText": "確認", - "weekText": "周", - "placeholder": "請選擇日期", - "range": { - "begin": "請選擇開始日期", - "end": "請選擇結束日期" - }, - "message": { - "101": "結束時間不得早于開始時間!", - "102": "僅允許選擇 ${0} 個日期" - }, - "current": { - "today": "今天", - "month": "本月", - "week": "本周", - "year": "今年" - }, - "multiDatesLocale": { - "backtotoday": "回到今天", - "clearSelections": "清空", - "delete": "刪除", - "selected": "已選,天" - }, - "quickSelectors": { - "today": "今天", - "yesterday": "昨天", - "tomorrow": "明天", - "thisMonday": "本周壹", - "nextMonday": "下周壹", - "firstDayOfMonth": "本月初", - "lastDayOfMonth": "本月末", - "firstDayOfLastMonth": "上月初", - "lastDayOfLastMonth": "上月末", - "firstDayOfYear": "今年初", - "lastDayOfYear": "今年末", - "firstDayOfQuarter": "本季度初", - "lastDayOfQuarter": "本季度末", - "thisWeek": "本周", - "lastWeek": "上周", - "nextWeek": "下周", - "past7Days": "過去7天", - "past30Days": "過去30天", - "thisMonth": "本月", - "lastMonth": "上月", - "thisQuarter": "本季度", - "lastQuarter": "上季度", - "thisYear": "今年", - "lastYear": "去年", - "recent3Months": "最近3個月", - "recent6Months": "最近6個月" - } - }, - "datagrid": { - "lineNumberTitle": "序號", - "emptyMessage": "暫無數據", - "pagination": { - "previousLabel": "上一頁", - "nextLabel": "下一頁", - "message": "共 {1} 條", - "pagelist": { - "firstText": "顯示", - "lastText": "條" - } - }, - "filter": { - "title": "過濾條件", - "reset": "重置", - "clear": "清空條件", - "clearAll": "清空所有條件", - "setting": "高級設置", - "nofilter": "[ 無 ]", - "checkAll": "全選", - "and": "並且", - "or": "或者", - "operators": { - "equal": "等於", - "notEqual": "不等於", - "greater": "大於", - "greaterOrEqual": "大於等於", - "less": "小於", - "lessOrEqual": "小於等於", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "屬於", - "notIn": "不屬於", - "empty": "為空", - "notEmpty": "不為空", - "null": "null", - "notNull": "不為null" - }, - "more": "查看更多", - "ok": "確定", - "cancel": "取消", - "sevenDays": "七天", - "oneMonth": "一個月", - "threeMonths": "三個月", - "sixMonths": "半年" - }, - "settings": { - "visible": "顯示列", - "sortting": "列排序", - "title": "列配置", - "canchoose": "可選列", - "choosed": "已選列", - "asc": "升序", - "desc": "降序", - "cancelSort": "取消排序", - "ok": "確定", - "cancel": "取消", - "reset": "恢複默認", - "conciseMode": "簡潔模式", - "advancedMode": "高級模式", - "formatSetting": "列格式", - "properties": "列屬性", - "groupping": "分組", - "allColumns": "所有列", - "visibleColumns": "可見列", - "hiddenColumns": "隱藏列", - "searchPlaceholder": "請輸入列名稱", - "checkall": "全部顯示/隱藏", - "headeralign": "表頭對齊", - "dataalign": "數據對齊", - "alignLeft": "左對齊", - "alignCenter": "居中對齊", - "alignRight": "右對齊", - "summarytype": "匯總合計類型", - "summarytext": "匯總合計文本", - "summaryNone": "無", - "summarySum": "求和", - "summaryMax": "最大值", - "summaryMin": "最小值", - "summarCount": "計數", - "summaryAverage": "平均值", - "grouppingField": "分組字段", - "moreGrouppingFieldWarningMessage": "最多設置3個字段進行分組", - "grouppingSummary": "分組合計", - "addGrouppingFieldTip": "添加分組字段", - "removeGrouppingFieldTip": "移除分組字段", - "grouppingSummaryType": "分組合計類型e", - "grouppingSummaryText": "分組合計文本", - "restoreDefaultSettingsText": "確認要恢複默認設置嗎", - "simple": { - "title": "顯示列", - "tip": "選中的字段可展示到列表中,拖拽可調整在列表中的展示順序。", - "count": "已顯示 {0} 列" - } - }, - "selectionData": { - "clearAll": "清空", - "tooltip": "點擊顯示已選記錄列錶", - "currentLenth": "已選擇:{0} 條" - }, - "groupRow": { - "tips": "拖動列到這兒可進行數據分組", - "removeColumn": "移除分組列", - "clearTip": "清除所有分組字段", - "clear": "清空" - }, - "summary": { - "title": "當頁合計" - }, - "loadingMessage": "正在載入", - "commandColumn": { - "title": "操作", - "edit": "編輯", - "remove": "刪除", - "cancel": "取消", - "accept": "確定" - } - }, - "condition": { - "add": "新增條件", - "create": "建立條件群組", - "reset": "重設", - "and": "且", - "or": "或" - }, - "operators": { - "equal": "等於", - "notEqual": "不等於", - "greater": "大於", - "greaterOrEqual": "大於等於", - "less": "小於", - "lessOrEqual": "小於等於", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "屬於", - "notIn": "不屬於", - "empty": "為空", - "notEmpty": "不為空", - "null": "null", - "notNull": "不為null", - "startWith": "開始於", - "endWith": "結束於", - "and": "且", - "or": "或" - }, - "comboList": { - "remoteError": "請求方法類型不正確", - "placeholder": "請選擇" - }, - "avatar": { - "imgtitle": "點擊修改", - "typeError": "上傳圖片類型不正確", - "sizeError": "上傳圖片不能大於", - "uploadError": "圖片上傳失敗,請重試!", - "loadError": "加載錯誤", - "loading": "加載中" - } -} \ No newline at end of file diff --git a/packages/ui-vue/components/en.ts b/packages/ui-vue/components/en.ts deleted file mode 100644 index 1c324d7e403..00000000000 --- a/packages/ui-vue/components/en.ts +++ /dev/null @@ -1,493 +0,0 @@ -export default { - "transfer": { - "selectedStart": "Selected: ", - "selectedEnd": " Items" - }, - "timePicker": { - "placeholder": "Please select a time", - "time": { - "hour": "Hour", - "minute": "Minute", - "seconds": "Second" - } - }, - "tabs": { - "more": "More", - "leftButton": "Left", - "rightButton": "Right", - "noData": "No data available" - }, - "section": { - "expandLabel": "Expand", - "collapseLabel": "Collapse" - }, - "responseToolbar": { - "more": "More" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "Solution Name", - "setAsDefault": "Set as default", - "confirm": "OK", - "cancel": "Cancel", - "caption": "New", - "personal": "Personal solution", - "system": "System public solution", - "nameNotify": "Please enter solution name", - "authNotify": "You do not have permission to modify public solutions.", - "success": "Query solution saved successfully.", - "maxLength": "Solution name cannot exceed 100 characters, please modify" - }, - "manageDialog": { - "caption": "Solution Management", - "default": "Default", - "system": "System Public", - "saveAs": "Save As", - "save": "Save", - "manage": "Manage", - "isDefault": "Default Solution", - "code": "Name", - "type": "Type", - "private": "Personal", - "public": "System Public", - "org": "Organization Public", - "remove": "Delete" - }, - "configDialog": { - "caption": "Filter Configuration" - }, - "container": { - "filter": "Filter", - "default": "Default Filter Solution", - "clear": "Clear", - "require": "Please fill in {fields} before filtering" - } - }, - "pagination": { - "message": "Total {1} Items ", - "totalInfo": { - "firstText": "Total", - "lastText": "Items" - }, - "pageList": { - "firstText": "Display", - "lastText": "Items" - }, - "previous": "Previous", - "next": "Next", - "goto": { - "prefix": "Go to", - "suffix": "" - }, - "show": "Display" - }, - "numberSpinner": { - "placeholder": "Please enter the number", - "range": { - "begin": "Please enter the begin number", - "end": "Please enter the end number" - } - }, - "messageBox": { - "yes": "Yes", - "no": "No", - "ok": "OK", - "close": "Close", - "cancel": "Cancel", - "title": "System Information", - "errorTitle": "Error Information", - "prompt": { - "fontSize": { - "name": "Font Size", - "small": "Small", - "middle": "Middle", - "big": "Large", - "large": "Extra Large", - "huge": "Huge" - }, - "tips": { - "surplus": "You can also input {0} characters", - "length": "{0} characters have been entered" - } - }, - "exception": { - "expand": "Expand", - "collapse": "Collapse", - "happend": "Happened Time", - "detail": "Detail", - "copy": "Copy Details", - "copySuccess": "Copy Succeeded!", - "copyFailed": "Replication Failed!", - "roger": "OK" - } - }, - "lookup": { - "placeholder": "Please select", - "favorites": "Favorites", - "selected": "Selected Items", - "okText": "OK", - "cancelText": "Cancel", - "allColumns": "All Columns", - "datalist": "Data Items", - "mustWriteSomething": "Please enter a keyword to search.", - "mustChoosAdatarow": "Please select a record!", - "tipText": "Are these what you are looking for?", - "cascade": { - "enable": "Bidirectional Cascading", - "disable": "Disable Cascading", - "up": "Upward Cascading", - "down": "Downward Cascading" - }, - "includechildren": "Include Children", - "favoriteInfo": { - "addFav": "Collection Success.", - "cancelFav": "Unfavorite Successfully. ", - "addFavTitle": "Add to Favorite", - "cancelFavTitle": "Cancel Favorite" - }, - "getAllChilds": "Get All Children", - "contextMenu": { - "checkChildNodes": "Check Subordinate Nodes", - "uncheckChildNodes": "Uncheck Subordinate Nodes", - "expandall": "Expand All", - "collapseall": "Collapse All", - "expandByLayer": "Expand by Level", - "expand1": "Expand to Level 1", - "expand2": "Expand to Level 2", - "expand3": "Expand to Level 3", - "expand4": "Expand to Level 4", - "expand5": "Expand to Level 5", - "expand6": "Expand to Level 6", - "expand7": "Expand to Level 7", - "expand8": "Expand to Level 8", - "expand9": "Expand to Level 9" - }, - "quick": { - "notfind": "Search Content Not Found.", - "more": "Show More" - }, - "configError": "The help display column is not configured. Please check whether the help data source is configured correctly.", - "selectedInfo": { - "total": "Selected Items {0}", - "clear": "Cancel Selected", - "remove": "Delete ({0})", - "confirm": "Are you sure you want to cancel all selected records?" - }, - "clearAllConditions": "Clear All Conditions", - "anyFields": "All" - }, - "loading": { - "message": "Loading ..." - }, - "listView": { - "emptyMessage": "Empty Data" - }, - "filterConditionEditor": { - "cancelButton": "Cancel", - "okButton": "OK", - "addWhere": "Add", - "clear": "Clear", - "moveTop": "Top", - "moveUp": "Up", - "moveDown": "Down", - "moveBottom": "Bottom", - "leftBrackets": "Left Brackets", - "field": "Field Name", - "operator": "Operator", - "value": "Value", - "valueType": "Value type", - "expressType": { - "value": "Value", - "express": "Express", - "frontExpress": "Front Express" - }, - "rightBrackets": "Right Brackets", - "relation": "Relation", - "relationValue": { - "and": "And", - "or": "Or" - }, - "designTab": "Design", - "jsonTab": "JSON", - "sqlTab": "Sql", - "title": "Filter Designer", - "message": "Are you sure you want to clear all current data?", - "validate": { - "bracket": "The brackets do not match, please check", - "relation": "The condition relationship is incomplete, please check", - "field": "Condition field is not set, please check" - } - }, - "eventParameter": { - "title": "Parameter Editor", - "ok": "confirm", - "cancel": "cancel", - "workFlowClass": { - "title": "Please select a process category" - }, - "generalEditor": { - "field": "field", - "tabVar": "variable", - "form": "form components" - }, - "jsonEditor": { - "dialogTitle": "Configurable parameter editor", - "keyColumnTitle": "parameter", - "valueColumnTitle": "parameter value", - "addButtonText": "Add configuration parameters", - "keyColumnPlaceholder": "Please enter the parameters", - "error": "Expected array of parameter schema for JsonEditor, but received invalid JSON" - }, - "comboTree": { - "placeholder": "Please select" - } - }, - "drawer": { - "cancel": "Cancel", - "confirm": "Confirm" - }, - "datepicker": { - "dayLabels": { - "Sun": "Sun", - "Mon": "Mon", - "Tue": "Tue", - "Wed": "Wed", - "Thu": "Thu", - "Fri": "Fri", - "Sat": "Sat" - }, - "monthLabels": { - "1": "Jan", - "2": "Feb", - "3": "Mar", - "4": "Apr", - "5": "May", - "6": "Jun", - "7": "Jul", - "8": "Aug", - "9": "Sep", - "10": "Oct", - "11": "Nov", - "12": "Dec" - }, - "dateFormat": "MM/dd/yyyy", - "returnFormat": "MM/dd/yyyy", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "", - "timeBtnText": "Select Time", - "dateBtnText": "Select Date", - "commitBtnText": "OK", - "weekText": "Week", - "placeholder": "Please select a date", - "range": { - "begin": "Please select a begin date", - "end": "Please select an end date" - }, - "message": { - "101": "The end time must not be earlier than the start time.", - "102": "Only ${0} dates are allowed to be selected." - }, - "current": { - "today": "Today", - "week": "Current Week", - "month": "Current Month", - "year": "Current Year" - }, - "multiDatesLocale": { - "backtotoday": "Back to Today", - "clearSelections": "Clear All", - "delete": "Delete", - "selected": "Selected,Days" - }, - "quickSelectors": { - "today": "Today", - "yesterday": "Yesterday", - "tomorrow": "Tomorrow", - "thisMonday": "This Monday", - "nextMonday": "Next Monday", - "firstDayOfMonth": "First Day of Month", - "lastDayOfMonth": "Last Day of Month", - "firstDayOfLastMonth": "First Day of Last Month", - "lastDayOfLastMonth": "Last Day of Last Month", - "firstDayOfYear": "First Day of Year", - "lastDayOfYear": "Last Day of Year", - "firstDayOfQuarter": "First Day of Quarter", - "lastDayOfQuarter": "Last Day of Quarter", - "thisWeek": "This Week", - "lastWeek": "Last Week", - "nextWeek": "Next Week", - "past7Days": "Past 7 Days", - "past30Days": "Past 30 Days", - "thisMonth": "This Month", - "lastMonth": "Last Month", - "thisQuarter": "This Quarter", - "lastQuarter": "Last Quarter", - "thisYear": "This Year", - "lastYear": "Last Year", - "recent3Months": "Recent 3 Months", - "recent6Months": "Recent 6 Months" - } - }, - "datagrid": { - "lineNumberTitle": "NO.", - "emptyMessage": "Empty Data", - "pagination": { - "previousLabel": "Prev Page", - "nextLabel": "Next Page", - "message": "Total {1} Items", - "pagelist": { - "firstText": "Display", - "lastText": "items" - } - }, - "filter": { - "title": "Conditions", - "reset": "Reset", - "clear": "Clear", - "clearAll": "Clear All Conditions", - "setting": "Settings", - "nofilter": "[ Empty ]", - "checkAll": "Check All", - "and": "And", - "or": "Or", - "operators": { - "equal": "equal", - "notEqual": "not equal", - "greater": "greater than", - "greaterOrEqual": "greater than or equal", - "less": "less than", - "lessOrEqual": "less than or equal", - "contains": "contains", - "notContains": "not contains", - "like": "contains", - "notLike": "not contains", - "in": "in", - "notIn": "not in", - "empty": "empty", - "notEmpty": "not empty", - "null": "null", - "notNull": "not null" - }, - "more": "More", - "ok": "ok", - "cancel": "cancel", - "sevenDays": "Seven Days", - "oneMonth": "One Month", - "threeMonths": "Three Months", - "sixMonths": "Six Months" - }, - "settings": { - "visible": "Display Columns", - "sortting": "Sortting", - "title": "Column Settings", - "canchoose": "Can choose", - "choosed": "Choosed", - "asc": "ASC", - "desc": "DESC", - "cancelSort": "Cancel sortting", - "ok": "OK", - "cancel": "Cancel", - "reset": "Reset", - "conciseMode": "Concise", - "advancedMode": "Advanced", - "formatSetting": "Column format", - "properties": "Column properties", - "groupping": "Groupping", - "allColumns": "All", - "visibleColumns": "Visible", - "hiddenColumns": "Hidden", - "searchPlaceholder": "Please enter a column name", - "checkall": "Show or hide all", - "headeralign": "Header alignment", - "dataalign": "Data alignment", - "alignLeft": "Left", - "alignCenter": "Center", - "alignRight": "Right", - "summarytype": "Summary type", - "summarytext": "Summary text", - "summaryNone": "None", - "summarySum": "Sum", - "summaryMax": "Max", - "summaryMin": "Min", - "summarCount": "Count", - "summaryAverage": "Average", - "grouppingField": "Groupping field", - "moreGrouppingFieldWarningMessage": "Up to 3 fields are set for grouping", - "grouppingSummary": "Group total", - "addGrouppingFieldTip": "Add groupping field", - "removeGrouppingFieldTip": "Remove groupping field", - "grouppingSummaryType": "Group total type", - "grouppingSummaryText": "Group total text", - "restoreDefaultSettingsText": "Are you sure you want to restore the default settings", - "simple": { - "title": "Show Columns", - "tip": "The selected fields can be displayed in the list. Drag to adjust the display order in the list.", - "count": "show {0} columns" - } - }, - "selectionData": { - "clearAll": "Clear all", - "tooltip": "Click here show list.", - "currentLenth": "{0} items selected." - }, - "groupRow": { - "tips": "Drag columns here to group data.", - "removeColumn": "Remove the group column.", - "clearTip": "Clear all grouped fields.", - "clear": "Empty" - }, - "summary": { - "title": "Current Page Summary" - }, - "loadingMessage": "Loading", - "commandColumn": { - "title": "Operation", - "edit": "Edit", - "remove": "Remove", - "cancel": "Cancel", - "accept": "Accept" - } - }, - "condition": { - "add": "Add condition", - "create": "Create condition group", - "reset": "Reset", - "and": "And", - "or": "Or" - }, - "operators": { - "equal": "Equal", - "notEqual": "Not equal", - "greater": "Greater than", - "greaterOrEqual": "Greater than or equal", - "less": "Less than", - "lessOrEqual": "Less than or equal", - "contains": "Contains", - "notContains": "Does not contain", - "like": "Contains", - "notLike": "Does not contain", - "in": "In", - "notIn": "Not in", - "empty": "Is empty", - "notEmpty": "Is not empty", - "null": "Null", - "notNull": "Not null", - "startWith": "Starts with", - "endWith": "Ends with", - "and": "And", - "or": "Or" - }, - "comboList": { - "remoteError": "The request method type is incorrect", - "placeholder": "Please select" - }, - "avatar": { - "imgtitle": "Amend", - "typeError": "Type error", - "sizeError": "Can not be larger than", - "uploadError": "Upload Fail!", - "loadError": "Load error.", - "loading": "Loading" - } -} \ No newline at end of file diff --git a/packages/ui-vue/components/index.ts b/packages/ui-vue/components/index.ts index 101da26b2ee..09e6cd6079b 100644 --- a/packages/ui-vue/components/index.ts +++ b/packages/ui-vue/components/index.ts @@ -96,9 +96,9 @@ import CodeEditor from './code-editor'; import HtmlTemplate from './html-template'; import Locale from './locale'; import '../public/assets/farris-all.css'; -import enLocale from './en'; -import chsLocale from './chs.json'; -import chtLocale from './cht'; +import enLocale from '../public/assets/i18n/ui/en.json'; +import chsLocale from '../public/assets/i18n/ui/zh-CHS.json'; +import chtLocale from '../public/assets/i18n/ui/zh-CHT.json'; // export all components modules export * from './components'; // export all designer components modules -- Gitee From 337c34cf8a071e8f765480897592000e591a12ab Mon Sep 17 00:00:00 2001 From: hyygzds Date: Mon, 25 Aug 2025 20:22:52 +0800 Subject: [PATCH 087/109] chore: resolve conflicts --- ...omponent-creator.service_20250818154710.ts | 394 ------------------ ...omponent-creator.service_20250819094721.ts | 394 ------------------ ...omponent-creator.service_20250819094822.ts | 394 ------------------ ...omponent-creator.service_20250819094835.ts | 394 ------------------ ...omponent-creator.service_20250819094843.ts | 393 ----------------- ...omponent-creator.service_20250819094917.ts | 393 ----------------- ...omponent-creator.service_20250819094925.ts | 392 ----------------- ...omponent-creator.service_20250819094926.ts | 392 ----------------- ...omponent-creator.service_20250819094937.ts | 391 ----------------- ...omponent-creator.service_20250819094938.ts | 391 ----------------- ...omponent-creator.service_20250819094939.ts | 391 ----------------- packages/code-editor/package.json | 2 +- .../components/types/toolbox/pc-toolbox.json | 6 - .../button-edit/src/button-edit.component.tsx | 8 +- .../composition/column/use-setting-column.ts | 37 -- .../components/data-view/composition/const.ts | 10 - .../ui-vue/components/data-view/designer.ts | 16 - .../property-config/use-appearance.ts | 137 ------ .../property-config/use-column-option.ts | 49 --- .../property-config/use-command-option.ts | 41 -- .../designer/property-config/use-event.ts | 73 ---- .../designer/property-config/use-filter.ts | 27 -- .../designer/property-config/use-group.ts | 33 -- .../property-config/use-pagination.ts | 41 -- .../property-config/use-row-number.ts | 27 -- .../property-config/use-row-option.ts | 30 -- .../designer/property-config/use-selection.ts | 47 --- .../designer/property-config/use-sort.ts | 23 - .../designer/property-config/use-summary.ts | 18 - .../src/converter/grid-filter.converter.ts | 16 - .../src/converter/grid-sort.converter.ts | 16 - .../src/converter/group.converter.ts | 46 -- .../ui-vue/components/list-view/designer.ts | 41 -- .../src/designer/list-view.design.props.ts | 27 -- .../src/designer/use-designer-rules.ts | 94 ----- .../src/designer/use-list-view-creator.ts | 338 --------------- .../list-view.property-config.ts | 290 ------------- packages/ui-vue/farris.config-dev.mjs | 8 - 38 files changed, 3 insertions(+), 5817 deletions(-) delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts delete mode 100644 .history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts delete mode 100644 packages/ui-vue/components/data-view/composition/column/use-setting-column.ts delete mode 100644 packages/ui-vue/components/data-view/composition/const.ts delete mode 100644 packages/ui-vue/components/data-view/designer.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-event.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-filter.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-group.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-selection.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-sort.ts delete mode 100644 packages/ui-vue/components/data-view/designer/property-config/use-summary.ts delete mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts delete mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts delete mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts delete mode 100644 packages/ui-vue/components/list-view/designer.ts delete mode 100644 packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts delete mode 100644 packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts delete mode 100644 packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts delete mode 100644 packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts delete mode 100644 packages/ui-vue/farris.config-dev.mjs diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts deleted file mode 100644 index 6aee0053af4..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250818154710.ts +++ /dev/null @@ -1,394 +0,0 @@ -import { DesignerHostService } from '../../../designer-canvas/src/composition/types'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '../../../../components/dynamic-resolver'; -import { ComponentBuildInfo } from '../../../component/src/composition/inner-component-build-info'; -import { ComponentSchema } from '../../../../components/designer-canvas'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { cloneDeep } from 'lodash-es'; -import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts deleted file mode 100644 index c8b423c257c..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094721.ts +++ /dev/null @@ -1,394 +0,0 @@ -import { DesignerHostService } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '../../../../components/dynamic-resolver'; -import { ComponentBuildInfo } from '../../../component/src/composition/inner-component-build-info'; -import { ComponentSchema } from '../../../../components/designer-canvas'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { cloneDeep } from 'lodash-es'; -import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts deleted file mode 100644 index e4453c8ef32..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094822.ts +++ /dev/null @@ -1,394 +0,0 @@ -import { DesignerHostService, ComponentSchema } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { ComponentSchema } from '../../../../components/designer-canvas'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { cloneDeep } from 'lodash-es'; -import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts deleted file mode 100644 index c0bd54cead0..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094835.ts +++ /dev/null @@ -1,394 +0,0 @@ -import { DesignerHostService, ComponentSchema } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; - -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { cloneDeep } from 'lodash-es'; -import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts deleted file mode 100644 index c698b0b10c5..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094843.ts +++ /dev/null @@ -1,393 +0,0 @@ -import { cloneDeep } from 'lodash-es'; -import { DesignerHostService, ComponentSchema } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts deleted file mode 100644 index 4da91881a68..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094917.ts +++ /dev/null @@ -1,393 +0,0 @@ -import { cloneDeep } from 'lodash-es'; -import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts deleted file mode 100644 index 1d92d23a36f..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094925.ts +++ /dev/null @@ -1,392 +0,0 @@ -import { cloneDeep } from 'lodash-es'; -import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts deleted file mode 100644 index 1d92d23a36f..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094926.ts +++ /dev/null @@ -1,392 +0,0 @@ -import { cloneDeep } from 'lodash-es'; -import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName } from '@farris/ui-vue/components/common'; -import { useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts deleted file mode 100644 index 946f72dae5e..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094937.ts +++ /dev/null @@ -1,391 +0,0 @@ -import { cloneDeep } from 'lodash-es'; -import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts deleted file mode 100644 index 946f72dae5e..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094938.ts +++ /dev/null @@ -1,391 +0,0 @@ -import { cloneDeep } from 'lodash-es'; -import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts b/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts deleted file mode 100644 index 946f72dae5e..00000000000 --- a/.history/packages/ui-vue/components/data-grid/src/composition/data-grid-component-creator.service_20250819094939.ts +++ /dev/null @@ -1,391 +0,0 @@ -import { cloneDeep } from 'lodash-es'; -import { DesignerHostService, ComponentSchema, DgControl } from '@farris/ui-vue/components/designer-canvas'; -import { DynamicResolver, getSchemaByTypeForDesigner } from '@farris/ui-vue/components/dynamic-resolver'; -import { ComponentBuildInfo } from '@farris/ui-vue/components/component'; -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from '@farris/ui-vue/components/common'; - -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; - -/** - * 创建表格组件服务类 - */ -export class DataGridComponentCreatorService { - - private formSchemaUtils: any; - private controlCreatorUtils: any; - private designViewModelUtils: any; - private useFormCommand: any; - private formStateMachineUtils: any; - - constructor( - private resolver: DynamicResolver, - private designerHostService: DesignerHostService - ) { - this.formSchemaUtils = this.designerHostService.formSchemaUtils; - this.controlCreatorUtils = this.designerHostService.controlCreatorUtils; - this.designViewModelUtils = this.designerHostService.designViewModelUtils; - this.useFormCommand = this.designerHostService.useFormCommand; - this.formStateMachineUtils = this.designerHostService.formStateMachineUtils; - } - - public createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = this.createComponentRefNode(buildInfo); - - const componentNode = this.createComponentNode(buildInfo); - - const viewModelNode = this.createViewModeNode(buildInfo); - - const formSchema = this.formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - this.designViewModelUtils.assembleDesignViewModel(); - - return this.wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - private wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = this.formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = this.resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - this.designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - this.appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - this.appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - - /** - * 为父容器追加新增、删除按钮 - */ - private appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = this.resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - this.appendAddAndDeleteCommands(viewModelNode); - - if (this.useFormCommand) { - this.useFormCommand.checkCommands(); - } - } - /** - * 向视图模型添加新增删除命令 - */ - private appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = this.resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (this.designerHostService.designerContext?.appendIdentifyForNewCommand) { - this.designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - this.designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - private resolveCommandController(): string { - const webCmds = this.formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = this.resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - - createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = this.resolver.getSchemaByType('component') as ComponentSchema; - const contents = this.createDateGridComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - appearance: { - class: this.getDataGridComponentClass() - }, - contents - }); - return componentNode; - } - /** - * 添加viewModel节点 - */ - createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: this.assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - /** - * 获取表格组件层级的class样式 - */ - private getDataGridComponentClass(): string { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - - // 双列表标签页、双列表、树列表模板,要求列表填充表单高度 - if (['double-list-in-tab-template', 'double-list-template', 'tree-list-template'].includes(templateId)) { - return 'f-struct-wrapper f-utils-fill-flex-column'; - } - return 'f-struct-is-subgrid'; - - } - /** - * 创建表格组件内层级结构 - */ - private createDateGridComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = this.formSchemaUtils.getFormSchema().module; - let container; - // 根据模板不同,创建不同的容器类型和样式 - if (templateId === 'double-list-in-tab-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main px-0 pt-0' - }, - fill: true, - showHeader: false - }); - container = section; - } else if (templateId === 'double-list-template' || templateId === 'tree-list-template') { - // 1、创建setion - const section = this.resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = this.resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const dataGrid = this.resolver.getSchemaByType('data-grid') as ComponentSchema; - const columns: any[] = []; - const stateMachineRenderState = this.formStateMachineUtils && this.formStateMachineUtils.getRenderStates(); - const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(dataGrid, { - id: buildInfo.componentId + '-dataGrid', - appearance: { - class: 'f-component-grid' - }, - columns, - fieldEditable, - dataSource: buildInfo.dataSource || '', - editable: fieldEditable ? 'viewModel.stateMachine[\'editable\']' : false, - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [dataGrid]; - const { selectedFields } = buildInfo; - // 3、创建字段 - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - const dgVMField = cloneDeep(field); - const grieFieldMetadata = this.controlCreatorUtils.setGridFieldProperty('data-grid-column', dgVMField, '', fieldEditable); - if (grieFieldMetadata) { - columns.push(grieFieldMetadata); - } - }); - return [container]; - } - - - /** - * 组装viewModel fields 节点 - */ - private assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - -} diff --git a/packages/code-editor/package.json b/packages/code-editor/package.json index 6e7d22ab1ff..e8232379c22 100644 --- a/packages/code-editor/package.json +++ b/packages/code-editor/package.json @@ -15,7 +15,7 @@ "check": "vue-tsc --noEmit", "build": "vue-tsc --noEmit && vite build", "build:lib": "node --max-old-space-size=8192 ./scripts/index.js build", - "build:system": "farris-cli build -c ./farris.config.mjs" + "build:system": "farris-cli build -c ./vite.config.build.ts" }, "dependencies": { "@farris/ui-vue": "workspace:^", diff --git a/packages/designer/src/components/types/toolbox/pc-toolbox.json b/packages/designer/src/components/types/toolbox/pc-toolbox.json index 6d237f6d98d..d55d7a07cb8 100644 --- a/packages/designer/src/components/types/toolbox/pc-toolbox.json +++ b/packages/designer/src/components/types/toolbox/pc-toolbox.json @@ -93,12 +93,6 @@ "type": "data-grid", "name": "表格", "category": "dataCollection" - }, - { - "id": "ListView", - "type": "list-view", - "name": "列表", - "category": "dataCollection" } ] }, diff --git a/packages/ui-vue/components/button-edit/src/button-edit.component.tsx b/packages/ui-vue/components/button-edit/src/button-edit.component.tsx index d0a96840cad..6af4bbd3c40 100644 --- a/packages/ui-vue/components/button-edit/src/button-edit.component.tsx +++ b/packages/ui-vue/components/button-edit/src/button-edit.component.tsx @@ -25,7 +25,6 @@ import getTagEditorRender from './components/tag-edit.component'; import getButtonGroupRender from './components/button-group.component'; import getPopupRender from './components/popup-container.component'; import { popoverInstancesListKey } from './composition/types'; -import { useGuid } from '../../common'; export default defineComponent({ name: 'FButtonEdit', @@ -59,7 +58,6 @@ export default defineComponent({ const { hasFocusedTextBox, commitValue, inputGroupClass } = useTextBoxComposition; const useClearComposition = useClear(props, context, modelValue, hasFocusedTextBox, displayText, useTextBoxComposition); const { onMouseEnterTextBox, onMouseLeaveTextBox } = useClearComposition; - const {uuid} = useGuid(); const buttonEditClass = computed(() => { const classObject = { @@ -112,8 +110,6 @@ export default defineComponent({ hideTagsCount.value = getHeiddenItems(); }); - const controlId = props.id || uuid(8); - function getEditorRender() { if (props.multiSelect && props.inputType === 'tag') { @@ -175,8 +171,8 @@ export default defineComponent({ return () => { return ( <> -
-
+
{ context.slots.precontent?.() } {renderEditor()} diff --git a/packages/ui-vue/components/data-view/composition/column/use-setting-column.ts b/packages/ui-vue/components/data-view/composition/column/use-setting-column.ts deleted file mode 100644 index 0b1ba91892d..00000000000 --- a/packages/ui-vue/components/data-view/composition/column/use-setting-column.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Ref, watch } from "vue"; -import { DataColumn, DataViewOptions } from "../types"; -import { SETTING_COLUMN_DATA_TYPE, SETTING_COLUMN_FIELD, SETTING_COLUMN_FIXED, SETTING_COLUMN_WIDTH } from "../const"; - -export function useSettingColumn(props: DataViewOptions) { - function applyColumnSetting(columns: Ref) { - const hasSettingColumn = columns.value.findIndex((column: DataColumn) => - column.dataType === SETTING_COLUMN_DATA_TYPE) > -1; - if (!hasSettingColumn) { - const commandColumn = { - field: SETTING_COLUMN_FIELD, - width: SETTING_COLUMN_WIDTH, - // headerFormatter: - // (value: { headerCell: HeaderCell, headerCells: HeaderCell[], columnIndex: number }) => - // renderGridSettingsIcon(), - fixed: SETTING_COLUMN_FIXED, - dataType: SETTING_COLUMN_DATA_TYPE, - resizable: false, - visible: true - } as DataColumn; - columns.value.push(commandColumn as DataColumn); - } - } - - function removeColumnSetting(columns: Ref) { - if (!props.showSetting) { - const index = columns.value.findIndex((column: DataColumn) => { - return column.dataType === SETTING_COLUMN_DATA_TYPE; - }); - if (index > -1) { - columns.value.splice(index, 1); - } - } - } - - return { applyColumnSetting, removeColumnSetting }; -} diff --git a/packages/ui-vue/components/data-view/composition/const.ts b/packages/ui-vue/components/data-view/composition/const.ts deleted file mode 100644 index 962cd66f1fa..00000000000 --- a/packages/ui-vue/components/data-view/composition/const.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const SETTING_COLUMN_FIELD = '__setting__'; -export const SETTING_COLUMN_TITLE = '设置'; -export const SETTING_COLUMN_WIDTH = 30; -export const SETTING_COLUMN_FIXED = 'right'; -export const SETTING_COLUMN_DATA_TYPE = 'setting'; -export const COMMAND_COLUMN_FIELD = '__command__'; -export const COMMAND_COLUMN_TITLE = '操作'; -export const COMMAND_COLUMN_WIDTH = 150; -export const COMMAND_COLUMN_FIXED = 'right'; -export const COMMAND_COLUMN_DATA_TYPE = 'commands'; diff --git a/packages/ui-vue/components/data-view/designer.ts b/packages/ui-vue/components/data-view/designer.ts deleted file mode 100644 index f2f702aa54d..00000000000 --- a/packages/ui-vue/components/data-view/designer.ts +++ /dev/null @@ -1,16 +0,0 @@ -export * from './designer/use-designer-fit-column'; -export * from './designer/use-column'; -export * from './designer/use-visual-data'; -export * from './designer/property-config/use-row-option'; -export * from './designer/property-config/use-column-option'; -export * from './designer/property-config/use-command-option'; -export * from './designer/property-config/use-summary'; -export * from './designer/property-config/use-group'; -export * from './designer/property-config/use-event'; -export * from './designer/property-config/use-selection'; -export * from './designer/property-config/use-row-number'; -export * from './designer/property-config/use-pagination'; -export * from './designer/property-config/use-appearance'; -export * from './designer/property-config/use-sort'; -export * from './designer/property-config/use-filter'; - diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts b/packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts deleted file mode 100644 index df26c28b27b..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-appearance.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; - -export function useAppearance() { - - function getCommon() { - return { - showStripe: { - title: "显示条纹", - type: "boolean", - description: "是否显示条纹" - }, - showBorder: { - title: "显示边框", - type: "boolean", - description: "是否显示边框" - }, - showSetting: { - title: "显示设置按钮", - type: "boolean", - description: "是否显示设置按钮" - }, - emptyTemplate: { - title: "空模板", - type: "string", - description: "空模板", - editor: { - type: "code-editor", - language: "html", - } - } - }; - } - function getDataGrid(propertyData: any, viewModelId: string) { - return { - title: "外观", - properties: { - class: { - title: 'class样式', - type: 'string', - description: '组件的CSS样式' - }, - columns: { - title: "列设置", - description: "列设置", - type: "array", - editor: { - type: "grid-field-editor", - viewModelId, - gridData: propertyData, - getLatestGridData: (data) => { return propertyData; } - }, - // 这个属性,标记当属性变更得时候触发重新更新属性 - refreshPanelAfterChanged: true, - }, - ...getCommon() - // useBlankWhenDataIsEmpty: { - // title: '空数据表格显示空白行', - // description: '表格没有数据时是否显示空白行', - // type: 'boolean', - // refreshPanelAfterChanged: true - // }, - // emptyDataHeight: { - // title: '空数据高度', - // type: 'number', - // description: '空数据行高度设置', - // min: 1, - // max: 1000 - // }, - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'useBlankWhenDataIsEmpty': - propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; - break; - case 'columns': - propertyData.columns = changeObject.propertyValue || []; - break; - } - } - }; - } - - function getTreeGrid(propertyData: any, viewModelId: string) { - return { - title: '外观', - properties: { - class: { - title: 'class样式', - type: 'string', - description: '组件的CSS样式' - }, - columns: { - title: '列设置', - description: '列设置', - $converter: '/converter/items-count.converter', - editor: { - type: "grid-field-editor", - viewModelId, - gridData: propertyData, - gridType: "tree-grid-column" - }, - // 这个属性,标记当属性变更得时候触发重新更新属性 - refreshPanelAfterChanged: true, - }, - ...getCommon() - // showTreeNodeIcons: { - // title: '显示图标', - // type: "boolean", - // description: '是否显示图标' - // }, - // showSetting: { - // title: '显示设置按钮', - // type: "boolean", - // description: '是否显示设置按钮', - // visible:false - // } - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'useBlankWhenDataIsEmpty': - propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; - break; - case 'fields': - propertyData.fields = changeObject.propertyValue || []; - break; - - } - } - }; - } - - function getAppearance() { - - } - - return { getDataGrid, getTreeGrid }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts b/packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts deleted file mode 100644 index abe504e516f..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-column-option.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; - -export function useColumnOption() { - function getColumnOptionProperties(propertyData: any) { - return { - title: '填充列宽', - description: '', - properties: { - fitColumns: { - title: '启用', - type: 'boolean', - description: '启用填充列宽', - $converter: '/converter/column-option.converter', - refreshPanelAfterChanged: true - }, - // fitMode: { - // description: '', - // title: '填充模式', - // type: 'enum', - // visible: !!propertyData.column?.fitColumns, - // $converter: '/converter/column-option.converter', - // editor: { - // data: [ - // { id: 'average', name: '平分' }, - // { id: 'expand', name: '等比' } - // ] - // } - // }, - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'fitColumns': { - data.fit = changeObject.propertyValue; - // 列的拖拽列宽设置为false - if (data.columns) { - if (changeObject.propertyValue) { - data.columns.forEach((column: any) => { - column.resizable = false; - }); - } - } - break; - } - } - } - }; - } - return { getColumnOptionProperties }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts b/packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts deleted file mode 100644 index 92e246d0ae5..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-command-option.ts +++ /dev/null @@ -1,41 +0,0 @@ -export function useCommandOption() { - function getCommandColumnProperties(propertyData: any) { - return { - title: '操作列', - description: '', - properties: { - enable: { - title: '启用', - type: 'boolean', - $converter: '/converter/column-command.converter', - description: '启用操作列', - refreshPanelAfterChanged: true - }, - // commands: { - // description: '', - // title: '命令', - // type: 'enum', - // editor: { - // data: [ - // { id: 'edit', name: '编辑' }, - // { id: 'remove', name: '删除' } - // ] - // } - // }, - // formatter: { - // title: '操作列模板', - // type: 'string', - // visible: false, - // description: '自定义操作列模板', - // refreshPanelAfterChanged: true, - // editor: { - // type: "code-editor", - // language: "html", - // } - // } - } - }; - } - - return { getCommandColumnProperties }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts deleted file mode 100644 index 4a0f449ab34..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts +++ /dev/null @@ -1,73 +0,0 @@ -export function useDataGridEvent() { - function initEvent(propertyData: any) { - const events = [ - { - "label": "onClickRow", - "name": "行点击事件" - }, - { - "label": "onSelectionChange", - "name": "行切换事件" - }, - { - "label": "onDoubleClickRow", - "name": "行双击事件" - }, - { - label: 'onFilterChanged', - name: '远端过滤事件' - }, - // { - // label: 'onColumnSorted', - // name: '远端排序事件' - // } - ]; - if (propertyData.pagination?.enable !== false) { - // 如果没有设置,默认是按照true处理的 - events.push({ - "label": "onPageIndexChanged", - "name": "切换页码事件" - }, - { - "label": "onPageSizeChanged", - "name": "分页条数变化事件" - }); - } - if (propertyData.command?.enable) { - // 如果没有设置,默认是按照true处理的 - events.push({ - "label": "onClickEditCommand", - "name": "操作列编辑事件" - }, - { - "label": "onClickDeleteCommand", - "name": "操作列删除事件" - }); - } - if (propertyData.selection?.multiSelect) { - // 启用多选,暴露多选事件 - events.push({ - "label": "onSelectItem", - "name": "选中行事件" - }, - { - "label": "onUnSelectItem", - "name": "取消选中行事件" - },); - } - if (propertyData.selection?.multiSelect && propertyData.selection?.showSelectAll) { - // 启用全选事件,暴露全选和取消全选事件 - events.push({ - "label": "onSelectAll", - "name": "全选事件" - }, - { - "label": "onUnSelectAll", - "name": "取消全选事件" - }); - } - return events; - } - - return { initEvent }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-filter.ts b/packages/ui-vue/components/data-view/designer/property-config/use-filter.ts deleted file mode 100644 index 9729891fdc3..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-filter.ts +++ /dev/null @@ -1,27 +0,0 @@ -export function useFilter() { - function getFilter(propertyData: any) { - return { - title: '过滤', - description: '', - properties: { - mode: { - title: '类型', - type: 'enum', - description: '过滤类型', - $converter: '/converter/grid-filter.converter', - editor: { - // type: "combo-list", - // textField: "value", - // valueField: "key", - // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] - data: [ - { id: 'client', name: '客户端' }, - { id: 'server', name: '服务端' } - ] - } - } - } - }; - } - return { getFilter }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-group.ts b/packages/ui-vue/components/data-view/designer/property-config/use-group.ts deleted file mode 100644 index 89c50ce08f4..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-group.ts +++ /dev/null @@ -1,33 +0,0 @@ -export function useGroup() { - function getGroupProperties(propertyData: any) { - return { - title: '分组', - description: '', - properties: { - enable: { - title: '启用', - type: 'boolean', - description: '启用分组', - $converter: '/converter/group.converter', - refreshPanelAfterChanged: true - }, - showSummary: { - title: '显示分组合计行', - type: 'boolean', - visible: !!propertyData.group?.enable, - $converter: '/converter/group.converter', - description: '显示分组合计行' - } - - // groupFields: { - // title: '启用', - // type: 'boolean', - // description: '启用分组', - // refreshPanelAfterChanged: true - // } - } - }; - } - - return { getGroupProperties }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts b/packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts deleted file mode 100644 index 253f5e08881..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-pagination.ts +++ /dev/null @@ -1,41 +0,0 @@ -export function usePagination() { - function getPagination(propertyData: any, readonly: boolean) { - return { - title: '分页', - $converter: '/converter/pagination.converter', - parentPropertyID: 'pagination', - properties: { - enable: { - title: '启用分页', - type: 'boolean', - refreshPanelAfterChanged: true, - editor: { - readonly - } - }, - // mode: { - // visible: propertyData.pagination?.enable || false, - // title: '分页交互模式', - // type: "enum", - // editor: { - // type: "combo-list", - // textField: "value", - // valueField: "key", - // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] - // } - // }, - showIndex: { - visible: propertyData.pagination?.enable || false, - title: '显示页码', - type: 'boolean' - }, - showLimits: { - visible: propertyData.pagination?.enable || false, - title: '显示分页条数', - type: 'boolean' - } - } - }; - } - return { getPagination }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts b/packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts deleted file mode 100644 index 7bb15d46c62..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-row-number.ts +++ /dev/null @@ -1,27 +0,0 @@ -export function useRowNumber() { - function getRowNumber(propertyData: any) { - return { - title: '行号配置', - $converter: '/converter/row-number.converter', - parentPropertyID: 'rowNumber', - properties: { - enable: { - title: '显示行号', - type: 'boolean', - refreshPanelAfterChanged: true - }, - width: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '宽度', - type: 'number' - }, - heading: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '标题', - type: 'string' - } - } - }; - } - return { getRowNumber }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts b/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts deleted file mode 100644 index e0d8acc4907..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts +++ /dev/null @@ -1,30 +0,0 @@ -export function useRowOption() { - function getRowOptionProperties(propertyData: any) { - return { - title: '行配置', - description: '', - properties: { - customRowStyle: { - title: '行样式', - type: 'string', - description: '自定义行样式', - editor: { - type: "code-editor", - language: "html", - } - }, - customCellStyle: { - title: '单元格样式', - type: 'string', - description: '自定义单元格样式', - editor: { - type: "code-editor", - language: "html", - } - } - } - }; - } - - return { getRowOptionProperties }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-selection.ts b/packages/ui-vue/components/data-view/designer/property-config/use-selection.ts deleted file mode 100644 index a0882c8d62f..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-selection.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { PropertyChangeObject } from "@farris/ui-vue/components/property-panel"; - -export function useSelection() { - function getSelection(propertyData: any) { - return { - title: '多选配置', - $converter: '/converter/grid-selection.converter', - parentPropertyID: 'editor', - properties: { - multiSelect: { - title: '启用多选', - type: 'boolean', - refreshPanelAfterChanged: true - }, - showCheckbox: { - visible: propertyData.selection == null ? false : propertyData.selection.multiSelect, - title: '显示复选框', - type: 'boolean', - refreshPanelAfterChanged: true - }, - showSelectAll: { - visible: propertyData.selection == null ? false : propertyData.selection.multiSelect && propertyData.selection.showCheckbox, - title: '显示全选', - type: 'boolean' - }, - keepSelectingOnPaging: { - visible: !!propertyData.selection?.multiSelect, - title: '启用跨页多选', - type: 'boolean' - }, - showSelection: { - title: '显示已选数据数量', - type: 'boolean' - } - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - // 如果启用多选,则默认显示复选框;不启用多选,则默认不显示复选框 - case 'multiSelect': - propertyData.selection.showCheckbox = changeObject.propertyValue; - break; - } - } - }; - } - return { getSelection }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts b/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts deleted file mode 100644 index a1971d6d3b2..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts +++ /dev/null @@ -1,23 +0,0 @@ -export function useSort() { - function getSort(propertyData: any) { - return { - title: '排序', - description: '', - properties: { - mode: { - title: '类型', - type: 'enum', - description: '排序类型', - $converter: '/converter/grid-sort.converter', - editor: { - data: [ - { id: 'client', name: '客户端' }, - { id: 'server', name: '服务端' } - ] - } - } - } - }; - } - return { getSort }; -} diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-summary.ts b/packages/ui-vue/components/data-view/designer/property-config/use-summary.ts deleted file mode 100644 index 1dc7267ba9e..00000000000 --- a/packages/ui-vue/components/data-view/designer/property-config/use-summary.ts +++ /dev/null @@ -1,18 +0,0 @@ -export function useSummary() { - function getSummaryProperties(propertyData: any) { - return { - title: '合计行', - description: '', - properties: { - enable: { - title: '启用', - type: 'boolean', - description: '启用合计行', - $converter: '/converter/summary.converter', - refreshPanelAfterChanged: true - } - } - }; - } - return { getSummaryProperties }; -} diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts deleted file mode 100644 index 316721e0652..00000000000 --- a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { ComponentSchema } from "@farris/ui-vue/components/designer-canvas"; -import { PropertyConverter, SchemaService } from "../types"; -export default { - convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { - if (!schema.filter) { - schema.filter = { - }; - } - schema.filter[propertyKey] = propertyValue; - }, - convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { - if(propertyKey === 'mode') { - return schema.filter?.mode || 'client'; - } - } -} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts deleted file mode 100644 index e1b66b2e548..00000000000 --- a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { ComponentSchema } from "@farris/ui-vue/components/designer-canvas"; -import { PropertyConverter, SchemaService } from "../types"; -export default { - convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { - if (!schema.sort) { - schema.sort = { - }; - } - schema.sort[propertyKey] = propertyValue; - }, - convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { - if(propertyKey === 'mode') { - return schema.sort?.mode || 'client'; - } - } -} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts deleted file mode 100644 index 5caf2b8aa73..00000000000 --- a/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { ComponentSchema } from "../../../designer-canvas/src/types"; -import { PropertyConverter, SchemaService } from "../types"; - -export default { - convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { - // eslint-disable-next-line no-self-assign - if (schema.group) { - schema.group[propertyKey] = propertyValue; - } else { - schema.group = { - [propertyKey]: propertyValue - }; - } - if (propertyKey === 'enable' && propertyValue) { - // 启用合计行 - if (!schema.group) { - schema.group = { - enable: propertyValue, - groupFields: [], - showSummary: false - }; - } else { - if(!schema.group.groupFields) { - schema.group.groupFields = []; - } - } - } - }, - convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { - if (schema.group) { - if (propertyKey === 'enable') { - return schema.group.enable; - } - if (propertyKey === 'showSummary') { - return schema.group.showSummary; - } - } - // if (schema.type === 'data-grid-column') { - // if (schema.enableGroup === undefined) { - // return false; - // } - // return schema.enableGroup; - // } - // return ''; - } -} as PropertyConverter; diff --git a/packages/ui-vue/components/list-view/designer.ts b/packages/ui-vue/components/list-view/designer.ts deleted file mode 100644 index 97f3cb1bdac..00000000000 --- a/packages/ui-vue/components/list-view/designer.ts +++ /dev/null @@ -1,41 +0,0 @@ - -/** - * Copyright (c) 2020 - present, Inspur Genersoft Co., 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 FListView from './src/list-view.component'; -import FListViewDesign from './src/designer/list-view.design.component'; -import { propsResolver } from './src/designer/list-view.design.props'; -import FListViewTable from './src/list-view-table.component'; -import FListViewTableDesign from './src/designer/list-view-table.design.component'; -import { propsResolver2 } from './src/list-view-table.props'; -import { withInstall } from '../common'; - -export * from './src/designer/list-view.design.props'; - -FListViewDesign.register = (componentMap: Record, propsResolverMap: Record, configResolverMap: Record) => { - componentMap['list-view'] = FListView; - propsResolverMap['list-view'] = propsResolver; - componentMap['list-view-table'] = FListViewTable; - propsResolverMap['list-view-table'] = propsResolver2; -}; -FListViewDesign.registerDesigner = (componentMap: Record, propsResolverMap: Record, configResolverMap: Record) => { - componentMap['list-view'] = FListViewDesign; - propsResolverMap['list-view'] = propsResolver; - componentMap['list-view-table'] = FListViewTableDesign; - propsResolverMap['list-view-table'] = propsResolver2; -}; - -export { FListViewDesign }; -export default withInstall(FListViewDesign); diff --git a/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts b/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts deleted file mode 100644 index 8c03feda5fb..00000000000 --- a/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts +++ /dev/null @@ -1,27 +0,0 @@ - -/** - * Copyright (c) 2020 - present, Inspur Genersoft Co., 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 { ExtractPropTypes } from 'vue'; -import { createPropsResolver } from '@farris/ui-vue/components/dynamic-resolver'; -import { listViewProps } from '@farris/ui-vue/components/list-view'; -import { excludeProperties } from '@farris/ui-vue/components/common'; -import { schemaMapper } from '../schema/schema-mapper'; -import { schemaResolver } from '../schema/schema-resolver'; -import listViewSchema from '../schema/list-view.schema.json'; - -export const listViewDesignProps = excludeProperties(listViewProps, 'headerTemplate', 'contentTemplate', 'emptyTemplate', 'footerTemplate'); -export type ListViewDesignProps = ExtractPropTypes; -export const propsResolver = createPropsResolver(listViewDesignProps, listViewSchema, schemaMapper, schemaResolver); diff --git a/packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts b/packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts deleted file mode 100644 index a9aa3f05a39..00000000000 --- a/packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { ref } from "vue"; -import { DraggingResolveContext, DesignerHTMLElement, UseDesignerRules, DesignerHostService } from "../../../designer-canvas/src/composition/types"; -import { DgControl } from "../../../designer-canvas/src/composition/dg-control"; -import { ComponentSchema, DesignerItemContext } from "../../../designer-canvas/src/types"; -import { ListViewProperty } from "../property-config/list-view.property-config"; - -export function useDesignerRulesForListView(designItemContext: DesignerItemContext, designerHostService?: DesignerHostService): UseDesignerRules { - const schema = designItemContext.schema as ComponentSchema; - /** 组件在拖拽时需要将所属的Component一起拖拽 */ - const triggerBelongedComponentToMoveWhenMoved = ref(true); - /** 组件在删除时需要将所属的Component一起拖拽 */ - const triggerBelongedComponentToDeleteWhenDeleted = ref(true); - - /** - * 判断是否可以接收拖拽新增的子级控件 - */ - function canAccepts(draggingContext: DraggingResolveContext): boolean { - // 接收工具箱中拖拽来的输入类控件 - return false; - } - - /** - * listview不支持删除,需要选中所属组件Component节点删除。 - */ - function checkCanDeleteComponent() { - return false; - } - /** - * listview不支持移动,需要选中所属组件Component节点移动。 - */ - function checkCanMoveComponent() { - return false; - } - - function hideNestedPaddingInDesginerView() { - return true; - } - - - /** - * 构造属性配置方法 - */ - function getPropsConfig(componentId: string) { - const listViewProp = new ListViewProperty(componentId, designerHostService); - return listViewProp.getPropertyConfig(schema); - } - /** - * 配置表格的路径信息,用于事件交互面板显示“已有方法”的事件路径 - */ - function setComponentBasicInfoMap() { - if (designItemContext && designerHostService) { - const belongedComponentId = designItemContext?.componentInstance?.value.belongedComponentId; - let parentTitle = ''; - let reliedComponentId = ''; - const { formSchemaUtils } = designerHostService; - if (belongedComponentId) { - const rootViewModelId = formSchemaUtils.getRootViewModelId(); - const rootComponent = formSchemaUtils.getComponentByViewModelId(rootViewModelId); - const parentSchemaOfComponent = formSchemaUtils.selectNode(rootComponent, item => { - return item.contents && item.contents.find(childItem => childItem.component === belongedComponentId); - }); - // 父级为tab-page - if (parentSchemaOfComponent?.type === DgControl['tab-page']?.type && parentSchemaOfComponent?.contents?.length) { - parentTitle = parentSchemaOfComponent.title || ''; - } - // 父级为section - if (parentSchemaOfComponent?.type === DgControl.section?.type && parentSchemaOfComponent?.showHeader !== false) { - parentTitle = parentSchemaOfComponent.mainTitle || ''; - } - parentTitle = parentTitle ? `${parentTitle} > ` : ''; - reliedComponentId = parentTitle ? parentSchemaOfComponent.id : ''; - } - - const dataGridName = DgControl['data-grid'].name; - designerHostService?.formSchemaUtils.getControlBasicInfoMap().set(designItemContext.schema.id, { - componentTitle: dataGridName, - parentPathName: `${parentTitle}${dataGridName}`, - reliedComponentId - }); - } - - } - return { - canAccepts, - checkCanDeleteComponent, - checkCanMoveComponent, - hideNestedPaddingInDesginerView, - triggerBelongedComponentToMoveWhenMoved, - triggerBelongedComponentToDeleteWhenDeleted, - getPropsConfig, - setComponentBasicInfoMap - } as UseDesignerRules; - -} diff --git a/packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts b/packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts deleted file mode 100644 index 977a226f6ea..00000000000 --- a/packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts +++ /dev/null @@ -1,338 +0,0 @@ -import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from "@farris/ui-vue/components/common"; -import { ComponentBuildInfo } from "@farris/ui-vue/components/component"; -import { ComponentSchema, DesignerHostService, DgControl } from "@farris/ui-vue/components/designer-canvas"; -import { DynamicResolver } from "@farris/ui-vue/components/dynamic-resolver"; -import { cloneDeep } from "lodash-es"; -const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; -export function useListViewCreator( - resolver: DynamicResolver, - designerHostService: DesignerHostService) { - - const { - formSchemaUtils, - controlCreatorUtils, - designViewModelUtils, - useFormCommand, - formStateMachineUtils - } = designerHostService; - /** - * 组装viewModel fields 节点 - */ - function assembleViewModelFields(buildInfo: ComponentBuildInfo) { - - const vmFields: any[] = []; - const { selectedFields } = buildInfo; - selectedFields?.forEach(field => { - if (field.$type === FormSchemaEntityField$Type.ComplexField) { - return; - } - let updateOn = 'blur'; - const type = field.type.name; - if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { - updateOn = 'change'; - } - - vmFields.push({ - type: "Form", - id: field.id, - fieldName: field.bindingField, - groupId: null, - groupName: null, - updateOn, - fieldSchema: {} - }); - }); - return vmFields; - } - - /** - * 添加viewModel节点 - */ - function createViewModeNode(buildInfo: ComponentBuildInfo): any { - const viewModelNode = { - id: `${buildInfo.componentId}-component-viewmodel`, - code: `${buildInfo.componentId}-component-viewmodel`, - name: buildInfo.componentName, - bindTo: buildInfo.bindTo, - parent: ROOT_VIEW_MODEL_ID, - fields: assembleViewModelFields(buildInfo), - commands: [], - states: [], - enableValidation: true - }; - return viewModelNode; - } - - function createComponentRefNode(buildInfo: ComponentBuildInfo): any { - const componentRefNode = resolver.getSchemaByType('component-ref') as ComponentSchema; - Object.assign(componentRefNode, { - id: `${buildInfo.componentId}-component-ref`, - component: `${buildInfo.componentId}-component`, - }); - return componentRefNode; - } - /** - * 获取新增删除子表命令可用的控制器id。 - */ - function resolveCommandController(): string { - const webCmds = formSchemaUtils.getFormSchema().module.webcmds; - // 卡片控制器 / 树卡控制器 / 高级列卡控制器 - const optionalControllerId = [ - '8172a979-2c80-4637-ace7-b13074d3f393', - '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', - '45be24f9-c1f7-44f7-b447-fe2ada458a61' - ]; - const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); - if (availableController) { - return availableController.id; - } - - // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 - const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; - webCmds.push({ - id: listDicControllerId, - path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', - name: 'AdvancedListCardController.webcmd', - refedHandlers: [] - }); - - return listDicControllerId; - - - } - /** - * 向视图模型添加新增删除命令 - */ - function appendAddAndDeleteCommands(viewModelNode: any) { - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - const addCommandId = useGuid().guid(); - const deleteCommandId = useGuid().guid(); - const cardControllerId = resolveCommandController(); - const addCommand = { - id: addCommandId, - code: `${commandPrefix}AddItem1`, - name: '增加一条子表数据', - params: [], - handlerName: 'AddItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - const deleteCommand = { - id: deleteCommandId, - code: `${commandPrefix}RemoveItem1`, - name: '删除一条子表数据', - params: [ - { - name: 'id', - shownName: '待删除子表数据的标识', - value: `{DATA~${viewModelNode.bindTo}/id}` - } - ], - handlerName: 'RemoveItem', - cmpId: cardControllerId, - shortcut: {}, - extensions: [] - }; - - if (designerHostService.designerContext?.appendIdentifyForNewCommand) { - designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); - designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); - } - - viewModelNode.commands.push(addCommand, deleteCommand); - - - // 3、记录构件命令 - const webCmds = formSchemaUtils.getFormSchema().module.webcmds; - const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); - cardCmd.refedHandlers.push( - { - host: addCommandId, - handler: 'AddItem' - }, - { - host: deleteCommandId, - handler: 'RemoveItem' - } - ); - } - - /** - * 为父容器追加新增、删除按钮 - */ - function appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const resolvedContainerType = resolvedContainerSchema.type; - const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); - - // 限制子表 - if (buildInfo.bindTo === '/') { - return; - } - // 限制列表或卡片 - if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { - return; - } - const stateMachineRenderState = formStateMachineUtils?.getRenderStates(); - - const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; - const btnSchema = resolver.getSchemaByType(btnType) as ComponentSchema; - const btns = [ - Object.assign({}, btnSchema, { - id: `button-add-${buildInfo.componentId}`, - type: btnType, - text: '新增', - disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` - }), - Object.assign({}, btnSchema, { - id: `button-remove-${buildInfo.componentId}`, - type: btnType, - text: '删除', - disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, - onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` - })]; - if (!resolvedContainerSchema.toolbar) { - resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; - } - if (!resolvedContainerSchema.toolbar.id) { - resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; - } - if (!resolvedContainerSchema.toolbar.buttons) { - resolvedContainerSchema.toolbar.buttons = []; - } - resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); - - appendAddAndDeleteCommands(viewModelNode); - - if (useFormCommand) { - useFormCommand.checkCommands(); - } - } - /** - * 追加父容器 - * @param componentRefNode - * @param buildInfo - * @returns - */ - function wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { - const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; - - // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 - const templateId = formSchemaUtils.getFormSchema()?.module?.templateId; - if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { - return componentRefNode; - } - - // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 - const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; - if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { - const containerSection = resolver.getSchemaByType( - 'section', - { - parentComponentInstance: buildInfo.parentComponentInstance, - mainTitle: buildInfo.componentName - }, - designerHostService) as ComponentSchema; - if (containerSection && containerSection.contents && containerSection.contents.length) { - const section = containerSection.contents[0]; - section.contents = [componentRefNode]; - - appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); - - return containerSection; - } - } - // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 - appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); - - if (parentContainerType === DgControl['tab-page'].type) { - // 为解决标签页画布无法更新的问题,手动触发update方法 - if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { - buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); - } - - } - return componentRefNode; - } - /** - * 创建表格组件内层级结构 - */ - function createListViewComponentContents(buildInfo: ComponentBuildInfo) { - const { templateId } = formSchemaUtils.getFormSchema().module; - let container; - // 多视图模板 - if (templateId === 'double-list-template') { - // 1、创建setion - const section = resolver.getSchemaByType('section') as ComponentSchema; - Object.assign(section, { - id: buildInfo.componentId + '-section', - appearance: { - // class: 'f-section-grid f-section-in-main' - }, - fill: true, - showHeader: false - }); - container = section; - } else { - // 1、创建contentContainer - const contentContainer = resolver.getSchemaByType('content-container') as ComponentSchema; - Object.assign(contentContainer, { - id: buildInfo.componentId + '-container', - appearance: { - class: 'f-grid-is-sub f-utils-flex-column' - } - }); - container = contentContainer; - } - - // 2、创建DataGrid(暂时不开启子表分页) - const listView = resolver.getSchemaByType('list-view') as ComponentSchema; - const stateMachineRenderState = formStateMachineUtils?.getRenderStates(); - // const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; - Object.assign(listView, { - id: buildInfo.componentId + '-listView', - appearance: { - class: 'f-component-grid' - }, - type:'list-view', - // fieldEditable, - dataSource: buildInfo.dataSource || '', - pagination: { - enable: buildInfo.editable ? false : true - } - }); - container.contents = [listView]; - return [container]; - } - - function createComponentNode(buildInfo: ComponentBuildInfo): any { - const componentNode = resolver.getSchemaByType('component') as ComponentSchema; - const contents = createListViewComponentContents(buildInfo); - Object.assign(componentNode, { - id: `${buildInfo.componentId}-component`, - viewModel: `${buildInfo.componentId}-component-viewmodel`, - componentType: buildInfo.componentType, - contents - }); - return componentNode; - } - - function createComponent(buildInfo: ComponentBuildInfo) { - const componentRefNode = createComponentRefNode(buildInfo); - - const componentNode = createComponentNode(buildInfo); - - const viewModelNode = createViewModeNode(buildInfo); - - const formSchema = formSchemaUtils.getFormSchema(); - formSchema.module.viewmodels.push(viewModelNode); - formSchema.module.components.push(componentNode); - - designViewModelUtils.assembleDesignViewModel(); - - return wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); - } - - return { createComponent }; -} diff --git a/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts b/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts deleted file mode 100644 index fc572954812..00000000000 --- a/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts +++ /dev/null @@ -1,290 +0,0 @@ -import { FormSchemaEntity } from "@farris/ui-vue/components/common"; -import { PropertyChangeObject } from "../../../property-panel/src/composition/entity/property-entity"; -import { BaseControlProperty } from "../../../property-panel/src/composition/entity/base-property"; - -export class ListViewProperty extends BaseControlProperty { - - constructor(componentId: string, designerHostService: any) { - super(componentId, designerHostService); - } - - getPropertyConfig(propertyData: any) { - - // 基本信息 - this.getBasicPropConfig(propertyData); - - // 外观 - this.getAppearanceProperties(propertyData); - // 事件 - this.getEventPropConfig(propertyData); - - return this.propertyConfig; - } - - getBasicPropConfig(propertyData: any) { - const mainEntity = this.formSchemaUtils.getFormSchema()?.module?.entity[0]?.entities[0]; - const entityTreeData = this.assembleSchemaEntityToTree(mainEntity, 0); - const self = this; - const basicConfig = super.getBasicPropConfig(propertyData); - this.propertyConfig.categories['basic'] = { - description: 'Basic Information', - title: '基本信息', - properties: { - ...basicConfig.properties, - dataSource: { - description: '绑定数据源', - title: '绑定数据源', - editor: { - type: 'combo-tree', - textField: 'name', - valueField: 'label', - data: entityTreeData, - editable: false - }, - readonly: true - } - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'dataSource': { - const viewModelNode = self.formSchemaUtils.getViewModelById(self.viewModelId); - if (viewModelNode) { - const selectedEntity = entityTreeData.find(entityData => entityData.label === changeObject.propertyValue); - viewModelNode.bindTo = selectedEntity.bindTo; - } - self.designViewModelUtils.assembleDesignViewModel(); - break; - } - } - } - }; - } - - /** - * 将schema实体表组装成树 - */ - private assembleSchemaEntityToTree( - schemaEntity: FormSchemaEntity, - layer: number, - parent?: FormSchemaEntity, - bindToPath = '', - treeData: any[] = [] - ) { - const bindTo = bindToPath ? `${bindToPath}/${schemaEntity.label}` : '/'; - treeData.push({ - id: schemaEntity.id, - name: schemaEntity.name, - label: schemaEntity.label, - layer, - parent: parent && parent.id, - bindTo: bindTo.replace('//', '/') - }); - - if (schemaEntity.type.entities && schemaEntity.type.entities.length) { - schemaEntity.type.entities.map(ele => this.assembleSchemaEntityToTree(ele, layer + 1, schemaEntity, bindTo, treeData)); - - } - - return treeData; - } - private getAppearanceProperties(propertyData: any) { - const self = this; - this.propertyConfig.categories['appearance'] = { - title: "外观", - properties: { - class: { - title: 'class样式', - type: 'string', - description: '组件的CSS样式' - }, - contentTemplate: { - description: '内容模板', - title: '内容模板', - type: 'string', - refreshPanelAfterChanged: true, - editor: { - type: "code-editor", - language: "html", - } - }, - footerTemplate: { - description: '底部模板', - title: '底部模板', - type: 'string', - refreshPanelAfterChanged: true, - editor: { - type: "code-editor", - language: "html", - } - }, - emptyTemplate: { - description: '空数据模板', - title: '空数据模板', - type: 'string', - refreshPanelAfterChanged: true, - editor: { - type: "code-editor", - language: "html", - } - } - }, - setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - switch (changeObject && changeObject.propertyID) { - case 'useBlankWhenDataIsEmpty': - propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; - break; - case 'columns': - propertyData.columns = changeObject.propertyValue || []; - break; - } - } - }; - // this.propertyConfig.categories['selection'] = { - // title: '多选配置', - // $converter: '/converter/grid-selection.converter', - // parentPropertyID: 'editor', - // properties: { - // multiSelect: { - // title: '启用多选', - // type: 'boolean', - // refreshPanelAfterChanged: true - // }, - // showCheckbox: { - // visible: propertyData.selection == null ? false : propertyData.selection.multiSelect, - // title: '显示复选框', - // type: 'boolean', - // refreshPanelAfterChanged: true - // }, - // showSelectAll: { - // visible: propertyData.selection == null ? false : propertyData.selection.multiSelect && propertyData.selection.showCheckbox, - // title: '显示全选', - // type: 'boolean' - // } - // }, - // setPropertyRelates(changeObject: PropertyChangeObject, data: any) { - // switch (changeObject && changeObject.propertyID) { - // // 如果启用多选,则默认显示复选框;不启用多选,则默认不显示复选框 - // case 'multiSelect': - // propertyData.selection.showCheckbox = changeObject.propertyValue; - // break; - // } - // } - // }; - /** - * 默认表格上没有此属性propertyData.rowNumber,根据schema上的属性默认值写默认true或false - */ - this.propertyConfig.categories['rowNumber'] = { - title: '行号配置', - $converter: '/converter/row-number.converter', - parentPropertyID: 'rowNumber', - properties: { - enable: { - title: '显示行号', - type: 'boolean', - refreshPanelAfterChanged: true - }, - width: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '宽度', - type: 'number' - }, - heading: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '标题', - type: 'string' - } - } - }; - this.propertyConfig.categories['pagination'] = { - title: '分页', - $converter: '/converter/pagination.converter', - parentPropertyID: 'pagination', - properties: { - enable: { - title: '启用分页', - type: 'boolean', - refreshPanelAfterChanged: true, - editor: { - readonly: this.isSubGrid() - } - }, - // mode: { - // visible: propertyData.pagination?.enable || false, - // title: '分页交互模式', - // type: "enum", - // editor: { - // type: "combo-list", - // textField: "value", - // valueField: "key", - // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] - // } - // }, - showIndex: { - visible: propertyData.pagination?.enable || false, - title: '显示页码', - type: 'boolean' - }, - showLimits: { - visible: propertyData.pagination?.enable || false, - title: '显示分页条数', - type: 'boolean' - } - } - }; - } - - - private getEventPropConfig(propertyData: any) { - const events = [ - { - "label": "onClickRow", - "name": "行点击事件" - } - ]; - if (propertyData.pagination?.enable !== false) { - // 如果没有设置,默认是按照true处理的 - events.push({ - "label": "onPageIndexChanged", - "name": "切换页码事件" - }, - { - "label": "onPageSizeChanged", - "name": "分页条数变化事件" - }); - } - const self = this; - const initialData = self.eventsEditorUtils['formProperties'](propertyData, self.viewModelId, events); - const properties = self.createBaseEventProperty(initialData); - - this.propertyConfig.categories['eventsEditor'] = { - title: '事件', - hideTitle: true, - properties, - // 这个属性,标记当属性变更得时候触发重新更新属性 - refreshPanelAfterChanged: true, - tabId: 'commands', - tabName: '交互', - setPropertyRelates(changeObject: any, data: any) { - const parameters = changeObject.propertyValue; - delete propertyData[self.viewModelId]; - if (parameters) { - parameters.setPropertyRelates = this.setPropertyRelates; // 添加自定义方法后,调用此回调方法,用于处理联动属性 - self.eventsEditorUtils.saveRelatedParameters(propertyData, self.viewModelId, parameters['events'], parameters); - } - // 联动修改排序开关 - propertyData.remoteSort = propertyData.columnSorted ? true : false; - // 同步操作列命令 - if(propertyData.command) { - propertyData.command.onClickEditCommand = propertyData.onClickEditCommand; - propertyData.command.onClickDeleteCommand = propertyData.onClickDeleteCommand; - } - - } - }; - } - private isSubGrid() { - const viewModelInfo = this.formSchemaUtils.getViewModelById(this.viewModelId); - return viewModelInfo && viewModelInfo.bindTo ? viewModelInfo.bindTo.trim() !== '/' : false; - } -}; - diff --git a/packages/ui-vue/farris.config-dev.mjs b/packages/ui-vue/farris.config-dev.mjs deleted file mode 100644 index e6479973e75..00000000000 --- a/packages/ui-vue/farris.config-dev.mjs +++ /dev/null @@ -1,8 +0,0 @@ -import farrisConfig from './farris.config.mjs'; - -farrisConfig.lib.fileName = () => "ui-vue.js"; - -export default { - ...farrisConfig, - minify: false, -}; -- Gitee From 4c0659e7882a5ab9731ec2aeb5ee09962c053c2e Mon Sep 17 00:00:00 2001 From: hyygzds Date: Tue, 26 Aug 2025 11:38:15 +0800 Subject: [PATCH 088/109] build: support component locale and merge branch --- .vscode/launch.json | 27 -- .../src/converter/grid-filter.converter.ts | 16 + .../src/converter/grid-sort.converter.ts | 16 + .../src/converter/group.converter.ts | 46 +++ .../src/designer/list-view.design.props.ts | 27 ++ .../src/designer/use-designer-rules.ts | 94 +++++ .../src/designer/use-list-view-creator.ts | 338 ++++++++++++++++++ .../list-view.property-config.ts | 290 +++++++++++++++ .../ui-vue/docs/.vitepress/config/sidebar.ts | 6 +- .../docs/guide/internationalization/index.md | 54 +++ .../ui-vue/docs/guide/quick-start/index.md | 14 + packages/ui-vue/scripts/commands/build.js | 48 ++- 12 files changed, 942 insertions(+), 34 deletions(-) delete mode 100644 .vscode/launch.json create mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts create mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts create mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts create mode 100644 packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts create mode 100644 packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts create mode 100644 packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts create mode 100644 packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts create mode 100644 packages/ui-vue/docs/guide/internationalization/index.md diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index b05db726c7f..00000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "mobile-ui build", - "request": "launch", - "runtimeArgs": [ - "run-script", - "build:lib" - ], - "runtimeExecutable": "npm", - "skipFiles": [ - "/**" - ], - "type": "node" - }, - { - "command": "npm run farrisTheme --prefix packages/ui-vue", - "name": "Run npm start", - "request": "launch", - "type": "node-terminal" - } - ] -} diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts new file mode 100644 index 00000000000..316721e0652 --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-filter.converter.ts @@ -0,0 +1,16 @@ +import { ComponentSchema } from "@farris/ui-vue/components/designer-canvas"; +import { PropertyConverter, SchemaService } from "../types"; +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + if (!schema.filter) { + schema.filter = { + }; + } + schema.filter[propertyKey] = propertyValue; + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if(propertyKey === 'mode') { + return schema.filter?.mode || 'client'; + } + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts new file mode 100644 index 00000000000..e1b66b2e548 --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts @@ -0,0 +1,16 @@ +import { ComponentSchema } from "@farris/ui-vue/components/designer-canvas"; +import { PropertyConverter, SchemaService } from "../types"; +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + if (!schema.sort) { + schema.sort = { + }; + } + schema.sort[propertyKey] = propertyValue; + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if(propertyKey === 'mode') { + return schema.sort?.mode || 'client'; + } + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts new file mode 100644 index 00000000000..5caf2b8aa73 --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/group.converter.ts @@ -0,0 +1,46 @@ +import { ComponentSchema } from "../../../designer-canvas/src/types"; +import { PropertyConverter, SchemaService } from "../types"; + +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + // eslint-disable-next-line no-self-assign + if (schema.group) { + schema.group[propertyKey] = propertyValue; + } else { + schema.group = { + [propertyKey]: propertyValue + }; + } + if (propertyKey === 'enable' && propertyValue) { + // 启用合计行 + if (!schema.group) { + schema.group = { + enable: propertyValue, + groupFields: [], + showSummary: false + }; + } else { + if(!schema.group.groupFields) { + schema.group.groupFields = []; + } + } + } + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if (schema.group) { + if (propertyKey === 'enable') { + return schema.group.enable; + } + if (propertyKey === 'showSummary') { + return schema.group.showSummary; + } + } + // if (schema.type === 'data-grid-column') { + // if (schema.enableGroup === undefined) { + // return false; + // } + // return schema.enableGroup; + // } + // return ''; + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts b/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts new file mode 100644 index 00000000000..8c03feda5fb --- /dev/null +++ b/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts @@ -0,0 +1,27 @@ + +/** + * Copyright (c) 2020 - present, Inspur Genersoft Co., 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 { ExtractPropTypes } from 'vue'; +import { createPropsResolver } from '@farris/ui-vue/components/dynamic-resolver'; +import { listViewProps } from '@farris/ui-vue/components/list-view'; +import { excludeProperties } from '@farris/ui-vue/components/common'; +import { schemaMapper } from '../schema/schema-mapper'; +import { schemaResolver } from '../schema/schema-resolver'; +import listViewSchema from '../schema/list-view.schema.json'; + +export const listViewDesignProps = excludeProperties(listViewProps, 'headerTemplate', 'contentTemplate', 'emptyTemplate', 'footerTemplate'); +export type ListViewDesignProps = ExtractPropTypes; +export const propsResolver = createPropsResolver(listViewDesignProps, listViewSchema, schemaMapper, schemaResolver); diff --git a/packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts b/packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts new file mode 100644 index 00000000000..a9aa3f05a39 --- /dev/null +++ b/packages/ui-vue/components/list-view/src/designer/use-designer-rules.ts @@ -0,0 +1,94 @@ +import { ref } from "vue"; +import { DraggingResolveContext, DesignerHTMLElement, UseDesignerRules, DesignerHostService } from "../../../designer-canvas/src/composition/types"; +import { DgControl } from "../../../designer-canvas/src/composition/dg-control"; +import { ComponentSchema, DesignerItemContext } from "../../../designer-canvas/src/types"; +import { ListViewProperty } from "../property-config/list-view.property-config"; + +export function useDesignerRulesForListView(designItemContext: DesignerItemContext, designerHostService?: DesignerHostService): UseDesignerRules { + const schema = designItemContext.schema as ComponentSchema; + /** 组件在拖拽时需要将所属的Component一起拖拽 */ + const triggerBelongedComponentToMoveWhenMoved = ref(true); + /** 组件在删除时需要将所属的Component一起拖拽 */ + const triggerBelongedComponentToDeleteWhenDeleted = ref(true); + + /** + * 判断是否可以接收拖拽新增的子级控件 + */ + function canAccepts(draggingContext: DraggingResolveContext): boolean { + // 接收工具箱中拖拽来的输入类控件 + return false; + } + + /** + * listview不支持删除,需要选中所属组件Component节点删除。 + */ + function checkCanDeleteComponent() { + return false; + } + /** + * listview不支持移动,需要选中所属组件Component节点移动。 + */ + function checkCanMoveComponent() { + return false; + } + + function hideNestedPaddingInDesginerView() { + return true; + } + + + /** + * 构造属性配置方法 + */ + function getPropsConfig(componentId: string) { + const listViewProp = new ListViewProperty(componentId, designerHostService); + return listViewProp.getPropertyConfig(schema); + } + /** + * 配置表格的路径信息,用于事件交互面板显示“已有方法”的事件路径 + */ + function setComponentBasicInfoMap() { + if (designItemContext && designerHostService) { + const belongedComponentId = designItemContext?.componentInstance?.value.belongedComponentId; + let parentTitle = ''; + let reliedComponentId = ''; + const { formSchemaUtils } = designerHostService; + if (belongedComponentId) { + const rootViewModelId = formSchemaUtils.getRootViewModelId(); + const rootComponent = formSchemaUtils.getComponentByViewModelId(rootViewModelId); + const parentSchemaOfComponent = formSchemaUtils.selectNode(rootComponent, item => { + return item.contents && item.contents.find(childItem => childItem.component === belongedComponentId); + }); + // 父级为tab-page + if (parentSchemaOfComponent?.type === DgControl['tab-page']?.type && parentSchemaOfComponent?.contents?.length) { + parentTitle = parentSchemaOfComponent.title || ''; + } + // 父级为section + if (parentSchemaOfComponent?.type === DgControl.section?.type && parentSchemaOfComponent?.showHeader !== false) { + parentTitle = parentSchemaOfComponent.mainTitle || ''; + } + parentTitle = parentTitle ? `${parentTitle} > ` : ''; + reliedComponentId = parentTitle ? parentSchemaOfComponent.id : ''; + } + + const dataGridName = DgControl['data-grid'].name; + designerHostService?.formSchemaUtils.getControlBasicInfoMap().set(designItemContext.schema.id, { + componentTitle: dataGridName, + parentPathName: `${parentTitle}${dataGridName}`, + reliedComponentId + }); + } + + } + return { + canAccepts, + checkCanDeleteComponent, + checkCanMoveComponent, + hideNestedPaddingInDesginerView, + triggerBelongedComponentToMoveWhenMoved, + triggerBelongedComponentToDeleteWhenDeleted, + getPropsConfig, + setComponentBasicInfoMap + } as UseDesignerRules; + +} diff --git a/packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts b/packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts new file mode 100644 index 00000000000..977a226f6ea --- /dev/null +++ b/packages/ui-vue/components/list-view/src/designer/use-list-view-creator.ts @@ -0,0 +1,338 @@ +import { FormSchemaEntityField$Type, FormSchemaEntityFieldTypeName, useGuid } from "@farris/ui-vue/components/common"; +import { ComponentBuildInfo } from "@farris/ui-vue/components/component"; +import { ComponentSchema, DesignerHostService, DgControl } from "@farris/ui-vue/components/designer-canvas"; +import { DynamicResolver } from "@farris/ui-vue/components/dynamic-resolver"; +import { cloneDeep } from "lodash-es"; +const ROOT_VIEW_MODEL_ID = 'root-viewmodel'; +export function useListViewCreator( + resolver: DynamicResolver, + designerHostService: DesignerHostService) { + + const { + formSchemaUtils, + controlCreatorUtils, + designViewModelUtils, + useFormCommand, + formStateMachineUtils + } = designerHostService; + /** + * 组装viewModel fields 节点 + */ + function assembleViewModelFields(buildInfo: ComponentBuildInfo) { + + const vmFields: any[] = []; + const { selectedFields } = buildInfo; + selectedFields?.forEach(field => { + if (field.$type === FormSchemaEntityField$Type.ComplexField) { + return; + } + let updateOn = 'blur'; + const type = field.type.name; + if (type === FormSchemaEntityFieldTypeName.Enum || type === FormSchemaEntityFieldTypeName.Boolean) { + updateOn = 'change'; + } + + vmFields.push({ + type: "Form", + id: field.id, + fieldName: field.bindingField, + groupId: null, + groupName: null, + updateOn, + fieldSchema: {} + }); + }); + return vmFields; + } + + /** + * 添加viewModel节点 + */ + function createViewModeNode(buildInfo: ComponentBuildInfo): any { + const viewModelNode = { + id: `${buildInfo.componentId}-component-viewmodel`, + code: `${buildInfo.componentId}-component-viewmodel`, + name: buildInfo.componentName, + bindTo: buildInfo.bindTo, + parent: ROOT_VIEW_MODEL_ID, + fields: assembleViewModelFields(buildInfo), + commands: [], + states: [], + enableValidation: true + }; + return viewModelNode; + } + + function createComponentRefNode(buildInfo: ComponentBuildInfo): any { + const componentRefNode = resolver.getSchemaByType('component-ref') as ComponentSchema; + Object.assign(componentRefNode, { + id: `${buildInfo.componentId}-component-ref`, + component: `${buildInfo.componentId}-component`, + }); + return componentRefNode; + } + /** + * 获取新增删除子表命令可用的控制器id。 + */ + function resolveCommandController(): string { + const webCmds = formSchemaUtils.getFormSchema().module.webcmds; + // 卡片控制器 / 树卡控制器 / 高级列卡控制器 + const optionalControllerId = [ + '8172a979-2c80-4637-ace7-b13074d3f393', + '8fe977a1-2b32-4f0f-a6b3-2657c4d03574', + '45be24f9-c1f7-44f7-b447-fe2ada458a61' + ]; + const availableController = webCmds.find(cmd => optionalControllerId.includes(cmd.id)); + if (availableController) { + return availableController.id; + } + + // 若当前表单没有可用的控制器,默认新增一个高级列卡控制器。这里需要触发load控制器,不然加载不到控制器内的命令 + const listDicControllerId = '45be24f9-c1f7-44f7-b447-fe2ada458a61'; + webCmds.push({ + id: listDicControllerId, + path: '/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd', + name: 'AdvancedListCardController.webcmd', + refedHandlers: [] + }); + + return listDicControllerId; + + + } + /** + * 向视图模型添加新增删除命令 + */ + function appendAddAndDeleteCommands(viewModelNode: any) { + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + const addCommandId = useGuid().guid(); + const deleteCommandId = useGuid().guid(); + const cardControllerId = resolveCommandController(); + const addCommand = { + id: addCommandId, + code: `${commandPrefix}AddItem1`, + name: '增加一条子表数据', + params: [], + handlerName: 'AddItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + const deleteCommand = { + id: deleteCommandId, + code: `${commandPrefix}RemoveItem1`, + name: '删除一条子表数据', + params: [ + { + name: 'id', + shownName: '待删除子表数据的标识', + value: `{DATA~${viewModelNode.bindTo}/id}` + } + ], + handlerName: 'RemoveItem', + cmpId: cardControllerId, + shortcut: {}, + extensions: [] + }; + + if (designerHostService.designerContext?.appendIdentifyForNewCommand) { + designerHostService.designerContext.appendIdentifyForNewCommand(addCommand); + designerHostService.designerContext.appendIdentifyForNewCommand(deleteCommand); + } + + viewModelNode.commands.push(addCommand, deleteCommand); + + + // 3、记录构件命令 + const webCmds = formSchemaUtils.getFormSchema().module.webcmds; + const cardCmd = webCmds.find(webCmd => webCmd.id === cardControllerId); + cardCmd.refedHandlers.push( + { + host: addCommandId, + handler: 'AddItem' + }, + { + host: deleteCommandId, + handler: 'RemoveItem' + } + ); + } + + /** + * 为父容器追加新增、删除按钮 + */ + function appendAddDeleteBtnToParentContainer(resolvedContainerSchema: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const resolvedContainerType = resolvedContainerSchema.type; + const commandPrefix = viewModelNode.id.replace(/-/g, '').replace(/_/g, '').replace('component', '').replace('viewmodel', ''); + + // 限制子表 + if (buildInfo.bindTo === '/') { + return; + } + // 限制列表或卡片 + if (buildInfo.componentType !== 'data-grid' && buildInfo.componentType !== 'form') { + return; + } + const stateMachineRenderState = formStateMachineUtils?.getRenderStates(); + + const btnType = DgControl['tab-page'].type === resolvedContainerType ? 'tab-toolbar-item' : 'section-toolbar-item'; + const btnSchema = resolver.getSchemaByType(btnType) as ComponentSchema; + const btns = [ + Object.assign({}, btnSchema, { + id: `button-add-${buildInfo.componentId}`, + type: btnType, + text: '新增', + disabled: stateMachineRenderState.find(d => d.id === 'canAddDetail') ? `!viewModel.stateMachine['canAddDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}AddItem1` + }), + Object.assign({}, btnSchema, { + id: `button-remove-${buildInfo.componentId}`, + type: btnType, + text: '删除', + disabled: stateMachineRenderState.find(d => d.id === 'canRemoveDetail') ? `!viewModel.stateMachine['canRemoveDetail']` : false, + onClick: `root-viewModel.${viewModelNode.id}.${commandPrefix}RemoveItem1` + })]; + if (!resolvedContainerSchema.toolbar) { + resolvedContainerSchema.toolbar = { id: `${resolvedContainerSchema.id}_toolbar`, buttons: [] }; + } + if (!resolvedContainerSchema.toolbar.id) { + resolvedContainerSchema.toolbar.id = `${resolvedContainerSchema.id}_toolbar`; + } + if (!resolvedContainerSchema.toolbar.buttons) { + resolvedContainerSchema.toolbar.buttons = []; + } + resolvedContainerSchema.toolbar.buttons = resolvedContainerSchema.toolbar.buttons.concat(btns); + + appendAddAndDeleteCommands(viewModelNode); + + if (useFormCommand) { + useFormCommand.checkCommands(); + } + } + /** + * 追加父容器 + * @param componentRefNode + * @param buildInfo + * @returns + */ + function wrapContainerSectionForComponent(componentRefNode: any, buildInfo: ComponentBuildInfo, viewModelNode: any) { + const parentContainerType = buildInfo?.parentComponentInstance?.schema?.type; + + // 双列表模板、左树右列表模板,拖拽子表时,不生成父标题区域 + const templateId = formSchemaUtils.getFormSchema()?.module?.templateId; + if (parentContainerType === DgControl['splitter-pane'].type && ['double-list-template', 'tree-list-template'].includes(templateId)) { + return componentRefNode; + } + + // 1、将表格拖入无标题的目标区域,需要给表格追加Section容器。并给Section添加新增删除按钮 + const parentContainerWithoutTitle = [DgControl['content-container'].type, DgControl['response-layout-item'].type, DgControl['splitter-pane'].type]; + if (parentContainerType && parentContainerWithoutTitle.includes(parentContainerType)) { + const containerSection = resolver.getSchemaByType( + 'section', + { + parentComponentInstance: buildInfo.parentComponentInstance, + mainTitle: buildInfo.componentName + }, + designerHostService) as ComponentSchema; + if (containerSection && containerSection.contents && containerSection.contents.length) { + const section = containerSection.contents[0]; + section.contents = [componentRefNode]; + + appendAddDeleteBtnToParentContainer(section, buildInfo, viewModelNode); + + return containerSection; + } + } + // 2、将表格拖入有标题的目标区域,不需要追加父容器。只需要给父容器添加新增删除按钮 + appendAddDeleteBtnToParentContainer(buildInfo?.parentComponentInstance?.schema, buildInfo, viewModelNode); + + if (parentContainerType === DgControl['tab-page'].type) { + // 为解决标签页画布无法更新的问题,手动触发update方法 + if (buildInfo.parentComponentInstance?.parent && buildInfo.parentComponentInstance?.parent['updateToolbarItems']) { + buildInfo.parentComponentInstance?.parent['updateToolbarItems'](); + } + + } + return componentRefNode; + } + /** + * 创建表格组件内层级结构 + */ + function createListViewComponentContents(buildInfo: ComponentBuildInfo) { + const { templateId } = formSchemaUtils.getFormSchema().module; + let container; + // 多视图模板 + if (templateId === 'double-list-template') { + // 1、创建setion + const section = resolver.getSchemaByType('section') as ComponentSchema; + Object.assign(section, { + id: buildInfo.componentId + '-section', + appearance: { + // class: 'f-section-grid f-section-in-main' + }, + fill: true, + showHeader: false + }); + container = section; + } else { + // 1、创建contentContainer + const contentContainer = resolver.getSchemaByType('content-container') as ComponentSchema; + Object.assign(contentContainer, { + id: buildInfo.componentId + '-container', + appearance: { + class: 'f-grid-is-sub f-utils-flex-column' + } + }); + container = contentContainer; + } + + // 2、创建DataGrid(暂时不开启子表分页) + const listView = resolver.getSchemaByType('list-view') as ComponentSchema; + const stateMachineRenderState = formStateMachineUtils?.getRenderStates(); + // const fieldEditable = buildInfo.editable && stateMachineRenderState.length > 0 && stateMachineRenderState.findIndex(d => d.id === 'editable') > -1; + Object.assign(listView, { + id: buildInfo.componentId + '-listView', + appearance: { + class: 'f-component-grid' + }, + type:'list-view', + // fieldEditable, + dataSource: buildInfo.dataSource || '', + pagination: { + enable: buildInfo.editable ? false : true + } + }); + container.contents = [listView]; + return [container]; + } + + function createComponentNode(buildInfo: ComponentBuildInfo): any { + const componentNode = resolver.getSchemaByType('component') as ComponentSchema; + const contents = createListViewComponentContents(buildInfo); + Object.assign(componentNode, { + id: `${buildInfo.componentId}-component`, + viewModel: `${buildInfo.componentId}-component-viewmodel`, + componentType: buildInfo.componentType, + contents + }); + return componentNode; + } + + function createComponent(buildInfo: ComponentBuildInfo) { + const componentRefNode = createComponentRefNode(buildInfo); + + const componentNode = createComponentNode(buildInfo); + + const viewModelNode = createViewModeNode(buildInfo); + + const formSchema = formSchemaUtils.getFormSchema(); + formSchema.module.viewmodels.push(viewModelNode); + formSchema.module.components.push(componentNode); + + designViewModelUtils.assembleDesignViewModel(); + + return wrapContainerSectionForComponent(componentRefNode, buildInfo, viewModelNode); + } + + return { createComponent }; +} diff --git a/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts b/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts new file mode 100644 index 00000000000..fc572954812 --- /dev/null +++ b/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts @@ -0,0 +1,290 @@ +import { FormSchemaEntity } from "@farris/ui-vue/components/common"; +import { PropertyChangeObject } from "../../../property-panel/src/composition/entity/property-entity"; +import { BaseControlProperty } from "../../../property-panel/src/composition/entity/base-property"; + +export class ListViewProperty extends BaseControlProperty { + + constructor(componentId: string, designerHostService: any) { + super(componentId, designerHostService); + } + + getPropertyConfig(propertyData: any) { + + // 基本信息 + this.getBasicPropConfig(propertyData); + + // 外观 + this.getAppearanceProperties(propertyData); + // 事件 + this.getEventPropConfig(propertyData); + + return this.propertyConfig; + } + + getBasicPropConfig(propertyData: any) { + const mainEntity = this.formSchemaUtils.getFormSchema()?.module?.entity[0]?.entities[0]; + const entityTreeData = this.assembleSchemaEntityToTree(mainEntity, 0); + const self = this; + const basicConfig = super.getBasicPropConfig(propertyData); + this.propertyConfig.categories['basic'] = { + description: 'Basic Information', + title: '基本信息', + properties: { + ...basicConfig.properties, + dataSource: { + description: '绑定数据源', + title: '绑定数据源', + editor: { + type: 'combo-tree', + textField: 'name', + valueField: 'label', + data: entityTreeData, + editable: false + }, + readonly: true + } + }, + setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + switch (changeObject && changeObject.propertyID) { + case 'dataSource': { + const viewModelNode = self.formSchemaUtils.getViewModelById(self.viewModelId); + if (viewModelNode) { + const selectedEntity = entityTreeData.find(entityData => entityData.label === changeObject.propertyValue); + viewModelNode.bindTo = selectedEntity.bindTo; + } + self.designViewModelUtils.assembleDesignViewModel(); + break; + } + } + } + }; + } + + /** + * 将schema实体表组装成树 + */ + private assembleSchemaEntityToTree( + schemaEntity: FormSchemaEntity, + layer: number, + parent?: FormSchemaEntity, + bindToPath = '', + treeData: any[] = [] + ) { + const bindTo = bindToPath ? `${bindToPath}/${schemaEntity.label}` : '/'; + treeData.push({ + id: schemaEntity.id, + name: schemaEntity.name, + label: schemaEntity.label, + layer, + parent: parent && parent.id, + bindTo: bindTo.replace('//', '/') + }); + + if (schemaEntity.type.entities && schemaEntity.type.entities.length) { + schemaEntity.type.entities.map(ele => this.assembleSchemaEntityToTree(ele, layer + 1, schemaEntity, bindTo, treeData)); + + } + + return treeData; + } + private getAppearanceProperties(propertyData: any) { + const self = this; + this.propertyConfig.categories['appearance'] = { + title: "外观", + properties: { + class: { + title: 'class样式', + type: 'string', + description: '组件的CSS样式' + }, + contentTemplate: { + description: '内容模板', + title: '内容模板', + type: 'string', + refreshPanelAfterChanged: true, + editor: { + type: "code-editor", + language: "html", + } + }, + footerTemplate: { + description: '底部模板', + title: '底部模板', + type: 'string', + refreshPanelAfterChanged: true, + editor: { + type: "code-editor", + language: "html", + } + }, + emptyTemplate: { + description: '空数据模板', + title: '空数据模板', + type: 'string', + refreshPanelAfterChanged: true, + editor: { + type: "code-editor", + language: "html", + } + } + }, + setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + switch (changeObject && changeObject.propertyID) { + case 'useBlankWhenDataIsEmpty': + propertyData.emptyDataHeight = propertyData.useBlankWhenDataIsEmpty ? 36 : 240; + break; + case 'columns': + propertyData.columns = changeObject.propertyValue || []; + break; + } + } + }; + // this.propertyConfig.categories['selection'] = { + // title: '多选配置', + // $converter: '/converter/grid-selection.converter', + // parentPropertyID: 'editor', + // properties: { + // multiSelect: { + // title: '启用多选', + // type: 'boolean', + // refreshPanelAfterChanged: true + // }, + // showCheckbox: { + // visible: propertyData.selection == null ? false : propertyData.selection.multiSelect, + // title: '显示复选框', + // type: 'boolean', + // refreshPanelAfterChanged: true + // }, + // showSelectAll: { + // visible: propertyData.selection == null ? false : propertyData.selection.multiSelect && propertyData.selection.showCheckbox, + // title: '显示全选', + // type: 'boolean' + // } + // }, + // setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + // switch (changeObject && changeObject.propertyID) { + // // 如果启用多选,则默认显示复选框;不启用多选,则默认不显示复选框 + // case 'multiSelect': + // propertyData.selection.showCheckbox = changeObject.propertyValue; + // break; + // } + // } + // }; + /** + * 默认表格上没有此属性propertyData.rowNumber,根据schema上的属性默认值写默认true或false + */ + this.propertyConfig.categories['rowNumber'] = { + title: '行号配置', + $converter: '/converter/row-number.converter', + parentPropertyID: 'rowNumber', + properties: { + enable: { + title: '显示行号', + type: 'boolean', + refreshPanelAfterChanged: true + }, + width: { + visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, + title: '宽度', + type: 'number' + }, + heading: { + visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, + title: '标题', + type: 'string' + } + } + }; + this.propertyConfig.categories['pagination'] = { + title: '分页', + $converter: '/converter/pagination.converter', + parentPropertyID: 'pagination', + properties: { + enable: { + title: '启用分页', + type: 'boolean', + refreshPanelAfterChanged: true, + editor: { + readonly: this.isSubGrid() + } + }, + // mode: { + // visible: propertyData.pagination?.enable || false, + // title: '分页交互模式', + // type: "enum", + // editor: { + // type: "combo-list", + // textField: "value", + // valueField: "key", + // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] + // } + // }, + showIndex: { + visible: propertyData.pagination?.enable || false, + title: '显示页码', + type: 'boolean' + }, + showLimits: { + visible: propertyData.pagination?.enable || false, + title: '显示分页条数', + type: 'boolean' + } + } + }; + } + + + private getEventPropConfig(propertyData: any) { + const events = [ + { + "label": "onClickRow", + "name": "行点击事件" + } + ]; + if (propertyData.pagination?.enable !== false) { + // 如果没有设置,默认是按照true处理的 + events.push({ + "label": "onPageIndexChanged", + "name": "切换页码事件" + }, + { + "label": "onPageSizeChanged", + "name": "分页条数变化事件" + }); + } + const self = this; + const initialData = self.eventsEditorUtils['formProperties'](propertyData, self.viewModelId, events); + const properties = self.createBaseEventProperty(initialData); + + this.propertyConfig.categories['eventsEditor'] = { + title: '事件', + hideTitle: true, + properties, + // 这个属性,标记当属性变更得时候触发重新更新属性 + refreshPanelAfterChanged: true, + tabId: 'commands', + tabName: '交互', + setPropertyRelates(changeObject: any, data: any) { + const parameters = changeObject.propertyValue; + delete propertyData[self.viewModelId]; + if (parameters) { + parameters.setPropertyRelates = this.setPropertyRelates; // 添加自定义方法后,调用此回调方法,用于处理联动属性 + self.eventsEditorUtils.saveRelatedParameters(propertyData, self.viewModelId, parameters['events'], parameters); + } + // 联动修改排序开关 + propertyData.remoteSort = propertyData.columnSorted ? true : false; + // 同步操作列命令 + if(propertyData.command) { + propertyData.command.onClickEditCommand = propertyData.onClickEditCommand; + propertyData.command.onClickDeleteCommand = propertyData.onClickDeleteCommand; + } + + } + }; + } + private isSubGrid() { + const viewModelInfo = this.formSchemaUtils.getViewModelById(this.viewModelId); + return viewModelInfo && viewModelInfo.bindTo ? viewModelInfo.bindTo.trim() !== '/' : false; + } +}; + diff --git a/packages/ui-vue/docs/.vitepress/config/sidebar.ts b/packages/ui-vue/docs/.vitepress/config/sidebar.ts index 45f50bcfdcb..2752802ea43 100644 --- a/packages/ui-vue/docs/.vitepress/config/sidebar.ts +++ b/packages/ui-vue/docs/.vitepress/config/sidebar.ts @@ -1,7 +1,11 @@ const sidebar = [ { text: '介绍', - items: [{ text: '快速开始', link: '/guide/quick-start/' }] + items: [ + { text: '快速开始', link: '/guide/quick-start/' }, + // 国际化资源不完善,暂不展示 + // { text: '国际化', link: '/guide/internationalization/' } + ] }, { text: '通用', diff --git a/packages/ui-vue/docs/guide/internationalization/index.md b/packages/ui-vue/docs/guide/internationalization/index.md new file mode 100644 index 00000000000..c71d5ac4137 --- /dev/null +++ b/packages/ui-vue/docs/guide/internationalization/index.md @@ -0,0 +1,54 @@ +# 国际化 + +## 注册 Farris Vue 的国际化资源 + +### 1. 引入并注册国际化资源 + +```ts +import enLocale from '@farris/ui-vue/locales/ui/en.json' +import chsLocale from '@farris/ui-vue/locales/ui/zh-CHS.json' +import chtLocale from '@farris/ui-vue/locales/ui/zh-CHT.json' + +createApp(App) + .use(Farris, { + locale: 'zh-CHS', + localResources: { + en: enLocale, + 'zh-CHS': chsLocale, + 'zh-CHT': chtLocale + } + }) + .mount('#app') +``` + +### 2. 引入并注册某个组件的国际化资源 + +```ts +import FLocale from '@farris/ui-vue/locales/locale' +import dateEnLocale from '@farris/ui-vue/locales/date-picker/ui/en.json' +import dateChsLocale from '@farris/ui-vue/locales/date-picker/ui/zh-CHS.json' +import dateChtLocale from '@farris/ui-vue/locales/date-picker/ui/zh-CHT.json' +import inputEnLocale from '@farris/ui-vue/locales/input-group/ui/en.json' +import inputChsLocale from '@farris/ui-vue/locales/input-group/ui/zh-CHS.json' +import inputChtLocale from '@farris/ui-vue/locales/input-group/ui/zh-CHT.json' + +createApp(App) + .use(FLocale, { + locale: 'zh-CHS', + localResources: { + en: { + ...dateEnLocale, + ...inputEnLocale + }, + 'zh-CHS': { + ...dateChsLocale, + ...inputChsLocale + }, + 'zh-CHT': { + ...dateChtLocale, + inputChtLocale + } + } + }) + .mount('#app') +``` diff --git a/packages/ui-vue/docs/guide/quick-start/index.md b/packages/ui-vue/docs/guide/quick-start/index.md index 4180c1dfe79..5b20024319a 100644 --- a/packages/ui-vue/docs/guide/quick-start/index.md +++ b/packages/ui-vue/docs/guide/quick-start/index.md @@ -33,3 +33,17 @@ createApp(App).use(Farris).mount('#app'); ``` + +### 3. 按需加载 Farris UI Vue Component + +```ts +import FInputGroup from '@farris/ui-vue/components/input-group'; +createApp(App).use(FInputGroup).mount('#app'); + +``` + +```vue + +``` diff --git a/packages/ui-vue/scripts/commands/build.js b/packages/ui-vue/scripts/commands/build.js index 759fb039a45..4bfb5ef4ac8 100644 --- a/packages/ui-vue/scripts/commands/build.js +++ b/packages/ui-vue/scripts/commands/build.js @@ -96,17 +96,17 @@ async function buildSeperately(componentName) { defineConfig({ configFile: false, publicDir: false, - plugins: [vue(), vueJsx(), - // 应该先替换设计器组件路径,注意插件的顺序 - replaceDesignerPath((format, args) => `../../designer${args[2]}/index.${format}.js`), - replace((format, args) => `..${args[2]}/index.${format}.js`) + plugins: [vue(), vueJsx(), + // 应该先替换设计器组件路径,注意插件的顺序 + replaceDesignerPath((format, args) => `../../designer${args[2]}/index.${format}.js`), + replace((format, args) => `..${args[2]}/index.${format}.js`) ], build: { lib: { entry: tsEntry, name: componentName, fileName: 'index', - formats: ['esm','umd'] + formats: ['esm', 'umd'] }, outDir: `./package/components/${componentName}`, rollupOptions: { @@ -164,6 +164,38 @@ async function buildSeperately(componentName) { } } +/** + * 拷贝多语资源 + * @param {*} source + * @param {*} target + */ +function copyFiles(source, target) { + try { + if (!fs.existsSync(source)) { + return; + } + ensureDirExists(target); + // 读取源目录内容 + const items = fs.readdirSync(source, { withFileTypes: true }); + + for (const item of items) { + const sourcePath = path.join(source, item.name); + const targetPath = path.join(target, item.name); + + if (item.isDirectory()) { + // 递归复制子目录 + copyFiles(sourcePath, targetPath); + } else { + // 复制文件 + fs.copyFileSync(sourcePath, targetPath); + } + } + } catch (error) { + console.error('复制过程中出错:', error); + } +} + + const buildLibs = async () => { await build( defineConfig({ @@ -193,7 +225,7 @@ const buildLibs = async () => { rollupOptions: { logLevel: 'silent', // external: ['vue', '@vueuse/core', '@vue/shared', 'bignumber.js', 'lodash', 'lodash-es', 'echarts'], - external:(id) => { + external: (id) => { return externals.find((item) => id.indexOf(item) === 0 && item !== '@farris/ui-vue/components'); }, output: { @@ -237,8 +269,12 @@ const buildLibs = async () => { fs.readdirSync(componentDir).includes('style.ts')); }); + // 拷贝合并后的多语文件 + copyFiles('./public/assets/i18n', './package/locales'); components.forEach((componentName) => { buildSeperately(componentName); + // 拷贝每个组件的多语文件 + copyFiles(`./components/${componentName}/src/locales`, `./package/locales/${componentName}`); }); }; -- Gitee From 837e42984afb20560f15527716694b7794159118 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Tue, 26 Aug 2025 17:17:46 +0800 Subject: [PATCH 089/109] fix: data grid sort supports multi-column --- .../data-grid/src/data-grid.component.tsx | 2 +- .../data-grid.property-config.ts | 2 +- .../src/schema/data-grid.schema.json | 2 +- .../column-header-handler.component.tsx | 19 ++ .../composition/column/use-column.ts | 5 +- .../composition/column/use-group-column.ts | 2 +- .../components/data-view/composition/types.ts | 2 +- .../designer/property-config/use-event.ts | 10 +- .../designer/property-config/use-sort.ts | 5 + .../ui-vue/demos/data-grid/remote_sort.vue | 202 ++++++++++++++++++ .../ui-vue/docs/components/data-grid/index.md | 10 + 11 files changed, 250 insertions(+), 11 deletions(-) create mode 100644 packages/ui-vue/demos/data-grid/remote_sort.vue diff --git a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx index a469ea306d7..cdf7cce7870 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx +++ b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx @@ -36,7 +36,7 @@ export default defineComponent({ 'selecAll', 'unSelectAll', 'pageIndexChanged', 'pageSizeChanged', 'beginEditCell', 'endEditCell', 'filterChanged', - 'columnSorted'], + 'sortChanged'], setup(props: DataGridProps, context) { const settingIconRef = ref(); const preloadCount = 0; diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 95b3e58fde2..c4b58e3eccf 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -37,7 +37,7 @@ export class DataGridProperty extends BaseControlProperty { // 分组配置 this.propertyConfig.categories['group'] = useGroup().getGroupProperties(propertyData); // 排序和过滤 - // this.propertyConfig.categories['sort'] = useSort().getSort(propertyData); + this.propertyConfig.categories['sort'] = useSort().getSort(propertyData); this.propertyConfig.categories['filter'] = useFilter().getFilter(propertyData); // 事件 this.getEventPropConfig(propertyData); diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json index 19257389ead..0e6a28aaf53 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json @@ -710,7 +710,7 @@ "multiSort": { "description": "", "type": "boolean", - "default": false + "default": true } } }, diff --git a/packages/ui-vue/components/data-view/components/column-header/column-header-handler.component.tsx b/packages/ui-vue/components/data-view/components/column-header/column-header-handler.component.tsx index 8580a1498aa..bd3101e5143 100644 --- a/packages/ui-vue/components/data-view/components/column-header/column-header-handler.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-header/column-header-handler.component.tsx @@ -185,6 +185,24 @@ export default function ( } } + function updateMultiColumnSortStatus(headerCells: HeaderCell[], headerCell: HeaderCell) { + const headerCellExcludeCurrent = headerCells.filter((headerCell1: HeaderCell) => { + return headerCell1.field !== headerCell.field; + }); + if(!props.sort?.multiSort) { + headerCellExcludeCurrent.forEach((headerCell: HeaderCell) => { + const headerStatus = headerCell.status; + const sortable = (headerStatus & HeaderCellStatus.sortable) === HeaderCellStatus.sortable; + const hasSorted = (headerStatus & HeaderCellStatus.sorted) === HeaderCellStatus.sorted; + if(sortable && hasSorted) { + headerCell.status = HeaderCellStatus.sortable; + headerCell.column!.sort = 'none'; + headerCell.column!.sortOrder = 0; + } + }); + } + } + function updateSortStatus(headerCell: HeaderCell) { const headerStatus = headerCell.status; const sortable = (headerStatus & HeaderCellStatus.sortable) === HeaderCellStatus.sortable; @@ -206,6 +224,7 @@ export default function ( } function onClickColumnHandler($event: MouseEvent, headerCell: HeaderCell, headerCells: HeaderCell[]) { + updateMultiColumnSortStatus(headerCells, headerCell); updateSortStatus(headerCell); resetPopoverFilterPanel(headerCell, headerCells); const filerable = (headerCell.status & HeaderCellStatus.filterable) === HeaderCellStatus.filterable; diff --git a/packages/ui-vue/components/data-view/composition/column/use-column.ts b/packages/ui-vue/components/data-view/composition/column/use-column.ts index 0c192a3d97f..de6abb2b723 100644 --- a/packages/ui-vue/components/data-view/composition/column/use-column.ts +++ b/packages/ui-vue/components/data-view/composition/column/use-column.ts @@ -164,6 +164,9 @@ export function useColumn( columnContext.value.leftColumns.reduce(sortableReducer, sortableColumns); columnContext.value.primaryColumns.reduce(sortableReducer, sortableColumns); columnContext.value.rightColumns.reduce(sortableReducer, sortableColumns); + // if(!props.sort.multiSort) { + + // } const currentMaxSortOrder = Math.max(...sortableColumns.map((column: DataColumn) => column.sortOrder || 0)); return sortableColumns.sort(decendCompare) .map((sortableColumn: DataColumn) => { @@ -199,7 +202,7 @@ export function useColumn( }).filter((sorter: { SortField: string, SortType: number }) => { return sorter.SortType !== 2; }); - context.emit('columnSorted', columnSorterParameters); + context.emit('sortChanged', columnSorterParameters); } else { dataView.setSorters(columnSorters); } diff --git a/packages/ui-vue/components/data-view/composition/column/use-group-column.ts b/packages/ui-vue/components/data-view/composition/column/use-group-column.ts index f7ccaf0e352..46088225c19 100644 --- a/packages/ui-vue/components/data-view/composition/column/use-group-column.ts +++ b/packages/ui-vue/components/data-view/composition/column/use-group-column.ts @@ -137,7 +137,7 @@ export function useGroupColumn(props: DataViewOptions, columnRenderContext: Ref< let cellPosition = 0; columns.reduce((previousHeaderCells: Map, dataGridColumn: DataColumn) => { let headerStatus = HeaderCellStatus.none; - // headerStatus = dataGridColumn.sortable ? headerStatus | HeaderCellStatus.sortable : headerStatus; + headerStatus = dataGridColumn.sortable ? headerStatus | HeaderCellStatus.sortable : headerStatus; headerStatus = dataGridColumn.filterable ? headerStatus | HeaderCellStatus.filterable : headerStatus; headerStatus = dataGridColumn.sort && dataGridColumn.sort !== 'none' ? headerStatus | HeaderCellStatus.sorted | ( diff --git a/packages/ui-vue/components/data-view/composition/types.ts b/packages/ui-vue/components/data-view/composition/types.ts index 8b09f3885a5..f5bc3415d8b 100644 --- a/packages/ui-vue/components/data-view/composition/types.ts +++ b/packages/ui-vue/components/data-view/composition/types.ts @@ -520,7 +520,7 @@ export interface DataViewOptions { /** 显示纵向列分割线 */ showVerticallLines: boolean; summary: any; - sort: { mode?: string }; + sort: { mode?: string, multiSort?: boolean }; treeNodeIconsData: any; width: number; /** 虚拟化渲染数据 */ diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts index 4a0f449ab34..91ced37077e 100644 --- a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts +++ b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts @@ -15,12 +15,12 @@ export function useDataGridEvent() { }, { label: 'onFilterChanged', - name: '远端过滤事件' + name: '过滤事件' }, - // { - // label: 'onColumnSorted', - // name: '远端排序事件' - // } + { + label: 'onSortChanged', + name: '排序事件' + } ]; if (propertyData.pagination?.enable !== false) { // 如果没有设置,默认是按照true处理的 diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts b/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts index a1971d6d3b2..49efe19ed20 100644 --- a/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts +++ b/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts @@ -15,6 +15,11 @@ export function useSort() { { id: 'server', name: '服务端' } ] } + }, + multiSort: { + title: '启用多列排序', + type: 'boolean', + description: '启用多列排序', } } }; diff --git a/packages/ui-vue/demos/data-grid/remote_sort.vue b/packages/ui-vue/demos/data-grid/remote_sort.vue new file mode 100644 index 00000000000..26404e9e515 --- /dev/null +++ b/packages/ui-vue/demos/data-grid/remote_sort.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/packages/ui-vue/docs/components/data-grid/index.md b/packages/ui-vue/docs/components/data-grid/index.md index bf18fdd7a9e..7715d65b0a7 100644 --- a/packages/ui-vue/docs/components/data-grid/index.md +++ b/packages/ui-vue/docs/components/data-grid/index.md @@ -1,6 +1,7 @@ # Data Grid 表格 Data Grid 是展示数据的表格组件,提供分页展示数据,在单元格中编辑数据的功能。 + ## 基本用法 :::vdemo @@ -311,6 +312,15 @@ Data Grid 是展示数据的表格组件,提供分页展示数据,在单元 {demos/data-grid/remote_pagination.vue} ``` +::: +## 排序 +支持远端排序 +:::vdemo + +```vue +{demos/data-grid/remote_sort.vue} +``` + ::: -- Gitee From 86a4d1b80eb73fe9a6a0b2105f5380b485661dd3 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 27 Aug 2025 14:11:12 +0800 Subject: [PATCH 090/109] fix: locales resource set dependency --- .../components/types/toolbox/pc-toolbox.json | 6 + packages/ui-vue/components/index.ts | 6 +- packages/ui-vue/locales/designer/en.json | 557 ++++++++++++++++++ packages/ui-vue/locales/designer/zh-CHS.json | 557 ++++++++++++++++++ packages/ui-vue/locales/designer/zh-CHT.json | 553 +++++++++++++++++ packages/ui-vue/locales/ui/en.json | 493 ++++++++++++++++ packages/ui-vue/locales/ui/zh-CHS.json | 493 ++++++++++++++++ packages/ui-vue/locales/ui/zh-CHT.json | 489 +++++++++++++++ packages/ui-vue/scripts/commands/build.js | 28 +- .../scripts/commands/replace-locale-path.js | 12 + packages/ui-vue/tsconfig.json | 3 +- packages/ui-vue/vite.config.ts | 3 +- 12 files changed, 3180 insertions(+), 20 deletions(-) create mode 100644 packages/ui-vue/locales/designer/en.json create mode 100644 packages/ui-vue/locales/designer/zh-CHS.json create mode 100644 packages/ui-vue/locales/designer/zh-CHT.json create mode 100644 packages/ui-vue/locales/ui/en.json create mode 100644 packages/ui-vue/locales/ui/zh-CHS.json create mode 100644 packages/ui-vue/locales/ui/zh-CHT.json create mode 100644 packages/ui-vue/scripts/commands/replace-locale-path.js diff --git a/packages/designer/src/components/types/toolbox/pc-toolbox.json b/packages/designer/src/components/types/toolbox/pc-toolbox.json index d55d7a07cb8..6d237f6d98d 100644 --- a/packages/designer/src/components/types/toolbox/pc-toolbox.json +++ b/packages/designer/src/components/types/toolbox/pc-toolbox.json @@ -93,6 +93,12 @@ "type": "data-grid", "name": "表格", "category": "dataCollection" + }, + { + "id": "ListView", + "type": "list-view", + "name": "列表", + "category": "dataCollection" } ] }, diff --git a/packages/ui-vue/components/index.ts b/packages/ui-vue/components/index.ts index 09e6cd6079b..90868ec8207 100644 --- a/packages/ui-vue/components/index.ts +++ b/packages/ui-vue/components/index.ts @@ -96,9 +96,9 @@ import CodeEditor from './code-editor'; import HtmlTemplate from './html-template'; import Locale from './locale'; import '../public/assets/farris-all.css'; -import enLocale from '../public/assets/i18n/ui/en.json'; -import chsLocale from '../public/assets/i18n/ui/zh-CHS.json'; -import chtLocale from '../public/assets/i18n/ui/zh-CHT.json'; +import enLocale from '@farris/ui-vue/locales/ui/en.json'; +import chsLocale from '@farris/ui-vue/locales/ui/zh-CHS.json'; +import chtLocale from '@farris/ui-vue/locales/ui/zh-CHT.json'; // export all components modules export * from './components'; // export all designer components modules diff --git a/packages/ui-vue/locales/designer/en.json b/packages/ui-vue/locales/designer/en.json new file mode 100644 index 00000000000..42197c4cda3 --- /dev/null +++ b/packages/ui-vue/locales/designer/en.json @@ -0,0 +1,557 @@ +{ + "transfer": { + "selectedStart": "Selected: ", + "selectedEnd": " Items" + }, + "tabs": { + "more": "More", + "leftButton": "Left", + "rightButton": "Right", + "noData": "No data available" + }, + "section": { + "expandLabel": "Expand", + "collapseLabel": "Collapse" + }, + "schemaSelector": { + "search": "Please enter the name of the schema to search", + "emptyData": "No data", + "controller": { + "warning": "Please select a controller", + "title": "Controller List" + }, + "ok": "OK", + "cancel": "Cancel", + "required": "Please select a schema", + "title": "Schema List" + }, + "responseToolbar": { + "more": "More" + }, + "querySolution": { + "saveAsDialog": { + "queryPlanName": "Solution Name", + "setAsDefault": "Set as default", + "confirm": "OK", + "cancel": "Cancel", + "caption": "New", + "personal": "Personal solution", + "system": "System public solution", + "nameNotify": "Please enter solution name", + "authNotify": "You do not have permission to modify public solutions.", + "success": "Query solution saved successfully.", + "maxLength": "Solution name cannot exceed 100 characters, please modify" + }, + "manageDialog": { + "caption": "Solution Management", + "default": "Default", + "system": "System Public", + "saveAs": "Save As", + "save": "Save", + "manage": "Manage", + "isDefault": "Default Solution", + "code": "Name", + "type": "Type", + "private": "Personal", + "public": "System Public", + "org": "Organization Public", + "remove": "Delete" + }, + "configDialog": { + "caption": "Filter Configuration" + }, + "container": { + "filter": "Filter", + "default": "Default Filter Solution", + "clear": "Clear", + "require": "Please fill in {fields} before filtering" + } + }, + "mappgingEditor": { + "columns": { + "sourceField": "Source Field", + "targetField": "Target Field" + }, + "message": { + "noSelectItem": "Please select a field to delete!", + "confirmClear": "Are you sure you want to clear all mapping fields?", + "required": "Please fill in the mapping fields completely!", + "noDataSource": "Please set the data source!" + }, + "buttons": { + "ok": "OK", + "cancel": "Cancel", + "clear": "Clear", + "add": "Add", + "remove": "Delete" + }, + "title": "Mapping Editor" + }, + "fieldSelector": { + "message": { + "noSelectItem": "Please select a field!", + "noSetDataSource": "Please set a data source!" + }, + "ok": "Ok", + "cancel": "Cancel", + "title": "Field Selector" + }, + "expressionEditor": { + "title": "Expression Editor", + "buttons": { + "ok": "OK", + "cancel": "Cancel", + "clear": "Clear" + }, + "messagerType": { + "info": "Info", + "warning": "Warning", + "error": "Error" + }, + "tipLabel": "Tip Message:", + "variable": { + "dataEntity": "Data Entity", + "placeholder": "Please enter the name or code, press Enter to query", + "label": "Variable" + }, + "functions": { + "emptyMessage": "No matching items found", + "placeholder": "Please enter the function name, press Enter to query" + } + }, + "drawer": { + "cancel": "Cancel", + "confirm": "Confirm" + }, + "condition": { + "add": "Add condition", + "create": "Create condition group", + "reset": "Reset", + "and": "And", + "or": "Or" + }, + "avatar": { + "imgtitle": "Amend", + "typeError": "Type error", + "sizeError": "Can not be larger than", + "uploadError": "Upload Fail!", + "loadError": "Load error.", + "loading": "Loading" + }, + "timePicker": { + "placeholder": "Please select a time", + "time": { + "hour": "Hour", + "minute": "Minute", + "seconds": "Second" + } + }, + "pagination": { + "message": "Total {1} Items ", + "totalInfo": { + "firstText": "Total", + "lastText": "Items" + }, + "pageList": { + "firstText": "Display", + "lastText": "Items" + }, + "previous": "Previous", + "next": "Next", + "goto": { + "prefix": "Go to", + "suffix": "" + }, + "show": "Display" + }, + "numberSpinner": { + "placeholder": "Please enter the number", + "range": { + "begin": "Please enter the begin number", + "end": "Please enter the end number" + } + }, + "messageBox": { + "yes": "Yes", + "no": "No", + "ok": "OK", + "close": "Close", + "cancel": "Cancel", + "title": "System Information", + "errorTitle": "Error Information", + "prompt": { + "fontSize": { + "name": "Font Size", + "small": "Small", + "middle": "Middle", + "big": "Large", + "large": "Extra Large", + "huge": "Huge" + }, + "tips": { + "surplus": "You can also input {0} characters", + "length": "{0} characters have been entered" + } + }, + "exception": { + "expand": "Expand", + "collapse": "Collapse", + "happend": "Happened Time", + "detail": "Detail", + "copy": "Copy Details", + "copySuccess": "Copy Succeeded!", + "copyFailed": "Replication Failed!", + "roger": "OK" + } + }, + "lookup": { + "placeholder": "Please select", + "favorites": "Favorites", + "selected": "Selected Items", + "okText": "OK", + "cancelText": "Cancel", + "allColumns": "All Columns", + "datalist": "Data Items", + "mustWriteSomething": "Please enter a keyword to search.", + "mustChoosAdatarow": "Please select a record!", + "tipText": "Are these what you are looking for?", + "cascade": { + "enable": "Bidirectional Cascading", + "disable": "Disable Cascading", + "up": "Upward Cascading", + "down": "Downward Cascading" + }, + "includechildren": "Include Children", + "favoriteInfo": { + "addFav": "Collection Success.", + "cancelFav": "Unfavorite Successfully. ", + "addFavTitle": "Add to Favorite", + "cancelFavTitle": "Cancel Favorite" + }, + "getAllChilds": "Get All Children", + "contextMenu": { + "checkChildNodes": "Check Subordinate Nodes", + "uncheckChildNodes": "Uncheck Subordinate Nodes", + "expandall": "Expand All", + "collapseall": "Collapse All", + "expandByLayer": "Expand by Level", + "expand1": "Expand to Level 1", + "expand2": "Expand to Level 2", + "expand3": "Expand to Level 3", + "expand4": "Expand to Level 4", + "expand5": "Expand to Level 5", + "expand6": "Expand to Level 6", + "expand7": "Expand to Level 7", + "expand8": "Expand to Level 8", + "expand9": "Expand to Level 9" + }, + "quick": { + "notfind": "Search Content Not Found.", + "more": "Show More" + }, + "configError": "The help display column is not configured. Please check whether the help data source is configured correctly.", + "selectedInfo": { + "total": "Selected Items {0}", + "clear": "Cancel Selected", + "remove": "Delete ({0})", + "confirm": "Are you sure you want to cancel all selected records?" + }, + "clearAllConditions": "Clear All Conditions", + "anyFields": "All" + }, + "loading": { + "message": "Loading ..." + }, + "listView": { + "emptyMessage": "Empty Data" + }, + "filterConditionEditor": { + "cancelButton": "Cancel", + "okButton": "OK", + "addWhere": "Add", + "clear": "Clear", + "moveTop": "Top", + "moveUp": "Up", + "moveDown": "Down", + "moveBottom": "Bottom", + "leftBrackets": "Left Brackets", + "field": "Field Name", + "operator": "Operator", + "value": "Value", + "valueType": "Value type", + "expressType": { + "value": "Value", + "express": "Express", + "frontExpress": "Front Express" + }, + "rightBrackets": "Right Brackets", + "relation": "Relation", + "relationValue": { + "and": "And", + "or": "Or" + }, + "designTab": "Design", + "jsonTab": "JSON", + "sqlTab": "Sql", + "title": "Filter Designer", + "message": "Are you sure you want to clear all current data?", + "validate": { + "bracket": "The brackets do not match, please check", + "relation": "The condition relationship is incomplete, please check", + "field": "Condition field is not set, please check" + } + }, + "eventParameter": { + "title": "Parameter Editor", + "ok": "confirm", + "cancel": "cancel", + "workFlowClass": { + "title": "Please select a process category" + }, + "generalEditor": { + "field": "field", + "tabVar": "variable", + "form": "form components" + }, + "jsonEditor": { + "dialogTitle": "Configurable parameter editor", + "keyColumnTitle": "parameter", + "valueColumnTitle": "parameter value", + "addButtonText": "Add configuration parameters", + "keyColumnPlaceholder": "Please enter the parameters", + "error": "Expected array of parameter schema for JsonEditor, but received invalid JSON" + }, + "comboTree": { + "placeholder": "Please select" + } + }, + "datepicker": { + "dayLabels": { + "Sun": "Sun", + "Mon": "Mon", + "Tue": "Tue", + "Wed": "Wed", + "Thu": "Thu", + "Fri": "Fri", + "Sat": "Sat" + }, + "monthLabels": { + "1": "Jan", + "2": "Feb", + "3": "Mar", + "4": "Apr", + "5": "May", + "6": "Jun", + "7": "Jul", + "8": "Aug", + "9": "Sep", + "10": "Oct", + "11": "Nov", + "12": "Dec" + }, + "dateFormat": "MM/dd/yyyy", + "returnFormat": "MM/dd/yyyy", + "firstDayOfWeek": "mo", + "sunHighlight": false, + "yearTxt": "", + "timeBtnText": "Select Time", + "dateBtnText": "Select Date", + "commitBtnText": "OK", + "weekText": "Week", + "placeholder": "Please select a date", + "range": { + "begin": "Please select a begin date", + "end": "Please select an end date" + }, + "message": { + "101": "The end time must not be earlier than the start time.", + "102": "Only ${0} dates are allowed to be selected." + }, + "current": { + "today": "Today", + "week": "Current Week", + "month": "Current Month", + "year": "Current Year" + }, + "multiDatesLocale": { + "backtotoday": "Back to Today", + "clearSelections": "Clear All", + "delete": "Delete", + "selected": "Selected,Days" + }, + "quickSelectors": { + "today": "Today", + "yesterday": "Yesterday", + "tomorrow": "Tomorrow", + "thisMonday": "This Monday", + "nextMonday": "Next Monday", + "firstDayOfMonth": "First Day of Month", + "lastDayOfMonth": "Last Day of Month", + "firstDayOfLastMonth": "First Day of Last Month", + "lastDayOfLastMonth": "Last Day of Last Month", + "firstDayOfYear": "First Day of Year", + "lastDayOfYear": "Last Day of Year", + "firstDayOfQuarter": "First Day of Quarter", + "lastDayOfQuarter": "Last Day of Quarter", + "thisWeek": "This Week", + "lastWeek": "Last Week", + "nextWeek": "Next Week", + "past7Days": "Past 7 Days", + "past30Days": "Past 30 Days", + "thisMonth": "This Month", + "lastMonth": "Last Month", + "thisQuarter": "This Quarter", + "lastQuarter": "Last Quarter", + "thisYear": "This Year", + "lastYear": "Last Year", + "recent3Months": "Recent 3 Months", + "recent6Months": "Recent 6 Months" + } + }, + "datagrid": { + "lineNumberTitle": "NO.", + "emptyMessage": "Empty Data", + "pagination": { + "previousLabel": "Prev Page", + "nextLabel": "Next Page", + "message": "Total {1} Items", + "pagelist": { + "firstText": "Display", + "lastText": "items" + } + }, + "filter": { + "title": "Conditions", + "reset": "Reset", + "clear": "Clear", + "clearAll": "Clear All Conditions", + "setting": "Settings", + "nofilter": "[ Empty ]", + "checkAll": "Check All", + "and": "And", + "or": "Or", + "operators": { + "equal": "equal", + "notEqual": "not equal", + "greater": "greater than", + "greaterOrEqual": "greater than or equal", + "less": "less than", + "lessOrEqual": "less than or equal", + "contains": "contains", + "notContains": "not contains", + "like": "contains", + "notLike": "not contains", + "in": "in", + "notIn": "not in", + "empty": "empty", + "notEmpty": "not empty", + "null": "null", + "notNull": "not null" + }, + "more": "More", + "ok": "ok", + "cancel": "cancel", + "sevenDays": "Seven Days", + "oneMonth": "One Month", + "threeMonths": "Three Months", + "sixMonths": "Six Months" + }, + "settings": { + "visible": "Display Columns", + "sortting": "Sortting", + "title": "Column Settings", + "canchoose": "Can choose", + "choosed": "Choosed", + "asc": "ASC", + "desc": "DESC", + "cancelSort": "Cancel sortting", + "ok": "OK", + "cancel": "Cancel", + "reset": "Reset", + "conciseMode": "Concise", + "advancedMode": "Advanced", + "formatSetting": "Column format", + "properties": "Column properties", + "groupping": "Groupping", + "allColumns": "All", + "visibleColumns": "Visible", + "hiddenColumns": "Hidden", + "searchPlaceholder": "Please enter a column name", + "checkall": "Show or hide all", + "headeralign": "Header alignment", + "dataalign": "Data alignment", + "alignLeft": "Left", + "alignCenter": "Center", + "alignRight": "Right", + "summarytype": "Summary type", + "summarytext": "Summary text", + "summaryNone": "None", + "summarySum": "Sum", + "summaryMax": "Max", + "summaryMin": "Min", + "summarCount": "Count", + "summaryAverage": "Average", + "grouppingField": "Groupping field", + "moreGrouppingFieldWarningMessage": "Up to 3 fields are set for grouping", + "grouppingSummary": "Group total", + "addGrouppingFieldTip": "Add groupping field", + "removeGrouppingFieldTip": "Remove groupping field", + "grouppingSummaryType": "Group total type", + "grouppingSummaryText": "Group total text", + "restoreDefaultSettingsText": "Are you sure you want to restore the default settings", + "simple": { + "title": "Show Columns", + "tip": "The selected fields can be displayed in the list. Drag to adjust the display order in the list.", + "count": "show {0} columns" + } + }, + "selectionData": { + "clearAll": "Clear all", + "tooltip": "Click here show list.", + "currentLenth": "{0} items selected." + }, + "groupRow": { + "tips": "Drag columns here to group data.", + "removeColumn": "Remove the group column.", + "clearTip": "Clear all grouped fields.", + "clear": "Empty" + }, + "summary": { + "title": "Current Page Summary" + }, + "loadingMessage": "Loading", + "commandColumn": { + "title": "Operation", + "edit": "Edit", + "remove": "Remove", + "cancel": "Cancel", + "accept": "Accept" + } + }, + "operators": { + "equal": "Equal", + "notEqual": "Not equal", + "greater": "Greater than", + "greaterOrEqual": "Greater than or equal", + "less": "Less than", + "lessOrEqual": "Less than or equal", + "contains": "Contains", + "notContains": "Does not contain", + "like": "Contains", + "notLike": "Does not contain", + "in": "In", + "notIn": "Not in", + "empty": "Is empty", + "notEmpty": "Is not empty", + "null": "Null", + "notNull": "Not null", + "startWith": "Starts with", + "endWith": "Ends with", + "and": "And", + "or": "Or" + }, + "comboList": { + "remoteError": "The request method type is incorrect", + "placeholder": "Please select" + } +} \ No newline at end of file diff --git a/packages/ui-vue/locales/designer/zh-CHS.json b/packages/ui-vue/locales/designer/zh-CHS.json new file mode 100644 index 00000000000..781b8b3b5d2 --- /dev/null +++ b/packages/ui-vue/locales/designer/zh-CHS.json @@ -0,0 +1,557 @@ +{ + "transfer": { + "selectedStart": "已选:", + "selectedEnd": "项数据" + }, + "tabs": { + "more": "更多", + "leftButton": "向左", + "rightButton": "向左", + "noData": "没有相关数据" + }, + "section": { + "expandLabel": "展开", + "collapseLabel": "收起" + }, + "schemaSelector": { + "search": "请输入名称/编号搜索", + "emptyData": "暂无数据", + "controller": { + "warning": "请选择控制器", + "title": "控制器列表" + }, + "ok": "确定", + "cancel": "取消", + "required": "请选择数据源", + "title": "数据源列表" + }, + "responseToolbar": { + "more": "更多" + }, + "querySolution": { + "saveAsDialog": { + "queryPlanName": "方案名称", + "setAsDefault": "设为默认", + "confirm": "确定", + "cancel": "取消", + "caption": "新增方案", + "personal": "用户个人方案", + "system": "系统公共方案", + "nameNotify": "请填写方案名称", + "authNotify": "您暂无权限修改公共类型方案。", + "success": "查询方案保存成功。", + "maxLength": "方案名称最多100个字符,超出请修改" + }, + "manageDialog": { + "caption": "方案管理", + "default": "默认", + "system": "系统公共", + "saveAs": "另存为", + "save": "保存", + "manage": "管理", + "isDefault": "默认方案", + "code": "名称", + "type": "属性", + "private": "用户个人方案", + "public": "系统公共方案", + "org": "组织公共方案", + "remove": "删除" + }, + "configDialog": { + "caption": "筛选条件配置" + }, + "container": { + "filter": "筛选", + "default": "默认筛选方案", + "clear": "清空", + "require": "请填写{fields}再进行筛选" + } + }, + "mappgingEditor": { + "columns": { + "sourceField": "源字段", + "targetField": "目标字段" + }, + "message": { + "noSelectItem": "请选择要删除的字段!", + "confirmClear": "确定要清空所有映射字段吗?", + "required": "请将映射字段填写完整!", + "noDataSource": "请设置数据源!" + }, + "buttons": { + "ok": "确定", + "cancel": "取消", + "clear": "清空", + "add": "添加", + "remove": "删除" + }, + "title": "映射编辑器" + }, + "fieldSelector": { + "message": { + "noSelectItem": "请选择一个字段!", + "noSetDataSource": "请设置数据源!" + }, + "ok": "确定", + "cancel": "取消", + "title": "字段选择器" + }, + "expressionEditor": { + "title": "表达式编辑器", + "buttons": { + "ok": "确定", + "cancel": "取消", + "clear": "清空" + }, + "messagerType": { + "info": "提示", + "warning": "警告", + "error": "错误" + }, + "tipLabel": "提示信息:", + "variable": { + "dataEntity": "数据实体", + "placeholder": "请输入名称或编号,按回车查询", + "label": "变量" + }, + "functions": { + "emptyMessage": "没有与搜索条件匹配的项", + "placeholder": "请输入函数名称,按回车查询" + } + }, + "drawer": { + "cancel": "取消", + "confirm": "确定" + }, + "condition": { + "add": "添加条件", + "create": "生成条件组", + "reset": "重置", + "and": "与", + "or": "或" + }, + "avatar": { + "imgtitle": "点击修改", + "typeError": "上传图片类型不正确", + "sizeError": "上传图片不能大于", + "uploadError": "图片上传失败,请重试!", + "loadError": "加载错误", + "loading": "加载中" + }, + "timePicker": { + "placeholder": "请选择时间", + "time": { + "hour": "时", + "minute": "分", + "seconds": "秒" + } + }, + "pagination": { + "message": "共 {1} 条", + "totalInfo": { + "firstText": "共", + "lastText": "条" + }, + "pageList": { + "firstText": "每页", + "lastText": "条" + }, + "previous": "上一页", + "next": "下一页", + "goto": { + "prefix": "跳转至", + "suffix": "页" + }, + "show": "显示" + }, + "numberSpinner": { + "placeholder": "请输入数字", + "range": { + "begin": "请输入开始数字", + "end": "请输入结束数字" + } + }, + "messageBox": { + "yes": "是", + "no": "否", + "ok": "确定", + "close": "关闭", + "cancel": "取消", + "title": "系统提示", + "errorTitle": "错误提示", + "prompt": { + "fontSize": { + "name": "字体大小", + "small": "小", + "middle": "中", + "big": "大", + "large": "特大", + "huge": "超大" + }, + "tips": { + "surplus": "还可以输入 {0} 个字符", + "length": "已输入 {0} 个字符" + } + }, + "exception": { + "expand": "展开", + "collapse": "收起", + "happend": "发生时间", + "detail": "详细信息", + "copy": "复制详细信息", + "copySuccess": "复制成功", + "copyFailed": "复制失败", + "roger": "知道了" + } + }, + "lookup": { + "placeholder": "请选择", + "favorites": "收藏夹", + "selected": "已选数据", + "okText": "确定", + "cancelText": "取消", + "allColumns": "所有列", + "datalist": "数据列表", + "mustWriteSomething": "请输入关键字后查询。", + "mustChoosAdatarow": "请选择一条记录!", + "tipText": "您要找的是不是这些?", + "cascade": { + "enable": "同步选择", + "disable": "仅选择自身", + "up": "包含上级", + "down": "包含下级" + }, + "includechildren": "包含下级", + "favoriteInfo": { + "addFav": "已添加到收藏夹。", + "cancelFav": "已从收藏夹中移除。", + "addFavTitle": "收藏", + "cancelFavTitle": "取消收藏" + }, + "getAllChilds": "获取所有子级数据", + "contextMenu": { + "checkChildNodes": "勾选下级数据", + "uncheckChildNodes": "取消勾选下级数据", + "expandall": "全部展开", + "collapseall": "全部收起", + "expandByLayer": "按层级展开", + "expand1": "展开 1 级", + "expand2": "展开 2 级", + "expand3": "展开 3 级", + "expand4": "展开 4 级", + "expand5": "展开 5 级", + "expand6": "展开 6 级", + "expand7": "展开 7 级", + "expand8": "展开 8 级", + "expand9": "展开 9 级" + }, + "quick": { + "notfind": "未找到搜索内容", + "more": "显示更多" + }, + "configError": "帮助显示列未配置,请检查是否已正确配置帮助数据源! ", + "selectedInfo": { + "total": "已选 {0} 条", + "clear": "取消已选", + "remove": "移除 ({0})", + "confirm": "您确认要取消所有选中记录吗?" + }, + "clearAllConditions": "清除所有查询条件", + "anyFields": "全部" + }, + "loading": { + "message": "正在加载,请稍候..." + }, + "listView": { + "emptyMessage": "暂无数据" + }, + "filterConditionEditor": { + "cancelButton": "取消", + "okButton": "确定", + "addWhere": "添加子句", + "clear": "清空", + "moveTop": "置顶", + "moveUp": "上移", + "moveDown": "下移", + "moveBottom": "置底", + "leftBrackets": "左括号", + "field": "字段", + "operator": "操作符", + "value": "值", + "valueType": "值类型", + "expressType": { + "value": "值", + "express": "表达式", + "frontExpress": "表单表达式" + }, + "rightBrackets": "右括号", + "relation": "关系", + "relationValue": { + "and": "并且", + "or": "或者" + }, + "designTab": "设计器", + "jsonTab": "源代码", + "sqlTab": "Sql预览", + "title": "条件编辑器", + "message": "确认要清空当前所有数据吗?", + "validate": { + "bracket": "左右括号不匹配,请检查", + "relation": "条件关系不完整,请检查", + "field": "条件字段未设置,请检查" + } + }, + "eventParameter": { + "title": "参数编辑器", + "ok": "确定", + "cancel": "取消", + "workFlowClass": { + "title": "请选择流程分类" + }, + "generalEditor": { + "field": "字段", + "tabVar": "变量", + "form": "表单组件" + }, + "jsonEditor": { + "dialogTitle": "可配置参数编辑器", + "keyColumnTitle": "参数", + "valueColumnTitle": "参数值", + "addButtonText": "添加配置参数", + "keyColumnPlaceholder": "请输入参数", + "error": "JsonEditor的参数预期是数组,但收到无效的JSON" + }, + "comboTree": { + "placeholder": "请选择" + } + }, + "datepicker": { + "dayLabels": { + "Sun": "日", + "Mon": "一", + "Tue": "二", + "Wed": "三", + "Thu": "四", + "Fri": "五", + "Sat": "六" + }, + "monthLabels": { + "1": "一月", + "2": "二月", + "3": "三月", + "4": "四月", + "5": "五月", + "6": "六月", + "7": "七月", + "8": "八月", + "9": "九月", + "10": "十月", + "11": "十一月", + "12": "十二月" + }, + "dateFormat": "yyyy-MM-dd", + "returnFormat": "yyyy-MM-dd", + "firstDayOfWeek": "mo", + "sunHighlight": false, + "yearTxt": "年", + "timeBtnText": "选择时间", + "dateBtnText": "选择日期", + "commitBtnText": "确定", + "weekText": "周", + "placeholder": "请选择日期", + "range": { + "begin": "请选择开始日期", + "end": "请选择结束日期" + }, + "message": { + "101": "结束时间不得早于开始时间!", + "102": "仅允许选择 ${0} 个日期" + }, + "current": { + "today": "今天", + "week": "本周", + "month": "本月", + "year": "今年" + }, + "multiDatesLocale": { + "backtotoday": "回到今天", + "clearSelections": "清空", + "delete": "删除", + "selected": "已选,天" + }, + "quickSelectors": { + "today": "今天", + "yesterday": "昨天", + "tomorrow": "明天", + "thisMonday": "本周一", + "nextMonday": "下周一", + "firstDayOfMonth": "本月初", + "lastDayOfMonth": "本月末", + "firstDayOfLastMonth": "上月初", + "lastDayOfLastMonth": "上月末", + "firstDayOfYear": "今年初", + "lastDayOfYear": "今年末", + "firstDayOfQuarter": "本季度初", + "lastDayOfQuarter": "本季度末", + "thisWeek": "本周", + "lastWeek": "上周", + "nextWeek": "下周", + "past7Days": "过去7天", + "past30Days": "过去30天", + "thisMonth": "本月", + "lastMonth": "上月", + "thisQuarter": "本季度", + "lastQuarter": "上季度", + "thisYear": "今年", + "lastYear": "去年", + "recent3Months": "最近3个月", + "recent6Months": "最近6个月" + } + }, + "datagrid": { + "lineNumberTitle": "序号", + "emptyMessage": "暂无数据", + "pagination": { + "previousLabel": "上一页", + "nextLabel": "下一页", + "message": "共 {1} 条", + "pagelist": { + "firstText": "显示", + "lastText": "条" + } + }, + "filter": { + "title": "筛选", + "reset": "重置", + "clear": "清空", + "clearAll": "清空所有条件", + "setting": "高级设置", + "nofilter": "[ 无 ]", + "checkAll": "全选", + "and": "并且", + "or": "或者", + "operators": { + "equal": "等于", + "notEqual": "不等于", + "greater": "大于", + "greaterOrEqual": "大于等于", + "less": "小于", + "lessOrEqual": "小于等于", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "属于", + "notIn": "不属于", + "empty": "为空", + "notEmpty": "不为空", + "null": "null", + "notNull": "不为null" + }, + "more": "查看更多", + "ok": "确定", + "cancel": "取消", + "sevenDays": "七天", + "oneMonth": "一个月", + "threeMonths": "三个月", + "sixMonths": "半年" + }, + "settings": { + "visible": "显示列", + "sortting": "列排序", + "title": "列配置", + "canchoose": "可选列", + "choosed": "已选列", + "asc": "升序", + "desc": "降序", + "cancelSort": "取消排序", + "ok": "确定", + "cancel": "取消", + "reset": "恢复默认", + "conciseMode": "简洁模式", + "advancedMode": "高级模式", + "formatSetting": "列格式", + "properties": "列属性", + "groupping": "分组", + "allColumns": "所有列", + "visibleColumns": "可见列", + "hiddenColumns": "隐藏列", + "searchPlaceholder": "请输入列名称", + "checkall": "全部显示/隐藏", + "headeralign": "表头对齐", + "dataalign": "数据对齐", + "alignLeft": "左对齐", + "alignCenter": "居中对齐", + "alignRight": "右对齐", + "summarytype": "汇总合计类型", + "summarytext": "汇总合计文本", + "summaryNone": "无", + "summarySum": "求和", + "summaryMax": "最大值", + "summaryMin": "最小值", + "summarCount": "计数", + "summaryAverage": "平均值", + "grouppingField": "分组字段", + "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", + "grouppingSummary": "分组合计", + "addGrouppingFieldTip": "添加分组字段", + "removeGrouppingFieldTip": "移除分组字段", + "grouppingSummaryType": "分组合计类型", + "grouppingSummaryText": "分组合计文本", + "restoreDefaultSettingsText": "确认要恢复默认设置吗?", + "simple": { + "title": "显示列", + "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", + "count": "已显示 {0} 列" + } + }, + "selectionData": { + "clearAll": "清空", + "tooltip": "点击显示已选记录列表", + "currentLenth": "已选择:{0} 条" + }, + "groupRow": { + "tips": "拖动列到这儿可进行数据分组", + "removeColumn": "移除分组列", + "clearTip": "清除所有分组字段", + "clear": "清空" + }, + "summary": { + "title": "当页合计" + }, + "loadingMessage": "正在加载", + "commandColumn": { + "title": "操作", + "edit": "编辑", + "remove": "删除", + "cancel": "取消", + "accept": "确定" + } + }, + "operators": { + "equal": "等于", + "notEqual": "不等于", + "greater": "大于", + "greaterOrEqual": "大于等于", + "less": "小于", + "lessOrEqual": "小于等于", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "属于", + "notIn": "不属于", + "empty": "为空", + "notEmpty": "不为空", + "null": "null", + "notNull": "不为null", + "startWith": "开始是", + "endWith": "结束是", + "and": "与", + "or": "或" + }, + "comboList": { + "remoteError": "请求方法类型不正确", + "placeholder": "请选择" + } +} \ No newline at end of file diff --git a/packages/ui-vue/locales/designer/zh-CHT.json b/packages/ui-vue/locales/designer/zh-CHT.json new file mode 100644 index 00000000000..7763e1b61a0 --- /dev/null +++ b/packages/ui-vue/locales/designer/zh-CHT.json @@ -0,0 +1,553 @@ +{ + "transfer": { + "selectedStart": "已選:", + "selectedEnd": "項數據" + }, + "tabs": { + "more": "更多", + "leftButton": "向左", + "rightButton": "向左", + "noData": "沒有相關數據" + }, + "section": { + "expandLabel": "展開", + "collapseLabel": "收起" + }, + "schemaSelector": { + "search": "請輸入名稱/編號搜索", + "emptyData": "暫無數據", + "controller": { + "warning": "請選擇控制器", + "title": "控制器列表" + }, + "ok": "確定", + "cancel": "取消", + "required": "請選擇數據源", + "title": "數據源列表" + }, + "responseToolbar": { + "more": "更多" + }, + "querySolution": { + "saveAsDialog": { + "queryPlanName": "方案名稱", + "setAsDefault": "設為預設", + "confirm": "確定", + "cancel": "取消", + "caption": "新增方案", + "personal": "使用者個人方案", + "system": "系統公共方案", + "nameNotify": "請填寫方案名稱", + "authNotify": "您暫無權限修改公共類型方案。", + "success": "查詢方案儲存成功。", + "maxLength": "方案名稱最多100個字元,超出請修改" + }, + "manageDialog": { + "caption": "方案管理", + "default": "預設", + "system": "系統公共", + "saveAs": "另存為", + "save": "保存", + "manage": "管理", + "isDefault": "預設方案", + "code": "名稱", + "type": "屬性", + "private": "用戶個人方案", + "public": "系統公共方案", + "org": "組織公共方案", + "remove": "刪除" + }, + "configDialog": { + "caption": "篩選條件配置" + }, + "container": { + "filter": "篩選", + "default": "默認篩選方案", + "clear": "清空", + "require": "請填寫{fields}再進行篩選" + } + }, + "mappgingEditor": { + "columns": { + "sourceField": "源字段", + "targetField": "目標字段" + }, + "message": { + "noSelectItem": "請選擇要刪除的字段!", + "confirmClear": "確定要清空所有映射字段嗎?", + "required": "請將映射字段填寫完整!", + "noDataSource": "請設置數據源!" + }, + "buttons": { + "ok": "確定", + "cancel": "取消", + "clear": "清空", + "add": "添加", + "remove": "刪除" + }, + "title": "映射編輯器" + }, + "fieldSelector": { + "message": { + "noSelectItem": "請選擇壹個字段!", + "noSetDataSource": "請設置數據源!" + }, + "ok": "確定", + "cancel": "取消", + "title": "字段選擇器" + }, + "expressionEditor": { + "title": "表達式編輯器", + "buttons": { + "ok": "確定", + "cancel": "取消", + "clear": "清空" + }, + "messagerType": { + "info": "提示", + "warning": "警告", + "error": "錯誤" + }, + "tipLabel": "提示信息:", + "variable": { + "dataEntity": "資料實體", + "placeholder": "請輸入名稱或編號,按 Enter 查詢", + "label": "變數" + }, + "functions": { + "emptyMessage": "沒有與搜索條件匹配的項", + "placeholder": "請輸入函數名稱,按 Enter 查詢" + } + }, + "drawer": { + "cancel": "取消", + "confirm": "確定" + }, + "condition": { + "add": "新增條件", + "create": "建立條件群組", + "reset": "重設", + "and": "且", + "or": "或" + }, + "avatar": { + "imgtitle": "點擊修改", + "typeError": "上傳圖片類型不正確", + "sizeError": "上傳圖片不能大於", + "uploadError": "圖片上傳失敗,請重試!", + "loadError": "加載錯誤", + "loading": "加載中" + }, + "timePicker": { + "placeholder": "請選擇時間", + "time": { + "hour": "時", + "minute": "分", + "seconds": "秒" + } + }, + "pagination": { + "message": "共 {1} 條 ", + "totalInfo": { + "firstText": "共", + "lastText": "條" + }, + "pageList": { + "firstText": "每頁", + "lastText": "條" + }, + "previous": "上一頁", + "next": "下一頁", + "goto": { + "prefix": "跳轉至", + "suffix": "頁" + }, + "show": "顯示" + }, + "numberSpinner": { + "placeholder": "請輸入數字", + "range": { + "begin": "請輸入開始數字", + "end": "請輸入結束數字" + } + }, + "messageBox": { + "yes": "是", + "no": "否", + "ok": "確定", + "close": "關閉", + "cancel": "取消", + "title": "係統提示", + "errorTitle": "錯誤提示", + "prompt": { + "fontSize": { + "name": "字體大小", + "small": "小", + "middle": "中", + "big": "大", + "large": "特大", + "huge": "超大" + } + }, + "exception": { + "expand": "展開", + "collapse": "收起", + "happend": "發生時間", + "detail": "詳細信息", + "copy": "複制詳細信息", + "copySuccess": "複制成功", + "copyFailed": "複制失敗", + "roger": "知道了" + } + }, + "lookup": { + "placeholder": "請選擇", + "favorites": "收藏夾", + "selected": "已選數據", + "okText": "確定", + "cancelText": "取消", + "allColumns": "所有列", + "datalist": "數據列錶", + "mustWriteSomething": "請輸入關鍵字後查詢。", + "mustChoosAdatarow": "請選擇一條記錄!", + "tipText": "您要找的是不是這些?", + "cascade": { + "enable": "同步選擇", + "disable": "僅選擇自身", + "up": "包含上級", + "down": "包含下級" + }, + "includechildren": "包含下級", + "favoriteInfo": { + "addFav": "已添加到收藏夾。", + "cancelFav": "已從收藏夾中移除。", + "addFavTitle": "收藏", + "cancelFavTitle": "取消收藏" + }, + "getAllChilds": "獲取所有子級數據", + "contextMenu": { + "checkChildNodes": "勾選下級數據", + "uncheckChildNodes": "取消勾選下級數據", + "expandall": "全部展開", + "collapseall": "全部收起", + "expandByLayer": "按層級展開", + "expand1": "展開 1 級", + "expand2": "展開 2 級", + "expand3": "展開 3 級", + "expand4": "展開 4 級", + "expand5": "展開 5 級", + "expand6": "展開 6 級", + "expand7": "展開 7 級", + "expand8": "展開 8 級", + "expand9": "展開 9 級" + }, + "quick": { + "notfind": "未找到搜索內容", + "more": "顯示更多" + }, + "configError": "幫助顯示列未配置,請檢查是否已正確配置幫助數據源!", + "selectedInfo": { + "total": "已選 {0} 條", + "clear": "取消已選", + "remove": "移除 ({0})", + "confirm": "您確認要取消所有選中記錄嗎?" + }, + "clearAllConditions": "清除所有查詢條件", + "anyFields": "全部" + }, + "loading": { + "message": "正在加載,請稍候..." + }, + "listView": { + "emptyMessage": "暫無數據" + }, + "filterConditionEditor": { + "cancelButton": "取消", + "okButton": "確定", + "addWhere": "添加子句", + "clear": "清空", + "moveTop": "置頂", + "moveUp": "上移", + "moveDown": "下移", + "moveBottom": "置底", + "leftBrackets": "左括號", + "field": "字段", + "operator": "操作符", + "value": "值", + "valueType": "值類型", + "expressType": { + "value": "值", + "express": "錶達式", + "frontExpress": "表單表達式" + }, + "rightBrackets": "右括號", + "relation": "關係", + "relationValue": { + "and": "並且", + "or": "或者" + }, + "designTab": "設計器", + "jsonTab": "源代碼", + "sqlTab": "Sql預覽", + "title": "條件編輯器", + "message": "確認要清空當前所有數據嗎?", + "validate": { + "bracket": "左右括號不匹配,請檢查", + "relation": "條件關系不完整,請檢查", + "field": "條件字段未設置,請檢查" + } + }, + "eventParameter": { + "title": "參數編輯器", + "ok": "確定", + "cancel": "取消", + "workFlowClass": { + "title": "請選擇流程分類" + }, + "generalEditor": { + "field": "欄位", + "tabVar": "變數", + "form": "表單元件" + }, + "jsonEditor": { + "dialogTitle": "可配置參數編輯器", + "keyColumnTitle": "參數", + "valueColumnTitle": "參數值", + "addButtonText": "添加配置參數", + "keyColumnPlaceholder": "請輸入參數", + "error": "JsonEditor的參數預期是數位,但收到無效的JSON" + }, + "comboTree": { + "placeholder": "請選擇" + } + }, + "datepicker": { + "dayLabels": { + "Sun": "日", + "Mon": "一", + "Tue": "二", + "Wed": "三", + "Thu": "四", + "Fri": "五", + "Sat": "六" + }, + "monthLabels": { + "1": "一月", + "2": "二月", + "3": "三月", + "4": "四月", + "5": "五月", + "6": "六月", + "7": "七月", + "8": "八月", + "9": "九月", + "10": "十月", + "11": "十一月", + "12": "十二月" + }, + "dateFormat": "yyyy-MM-dd", + "returnFormat": "yyyy-MM-dd", + "firstDayOfWeek": "mo", + "sunHighlight": false, + "yearTxt": "年", + "timeBtnText": "選擇時間", + "dateBtnText": "選擇日期", + "commitBtnText": "確認", + "weekText": "周", + "placeholder": "請選擇日期", + "range": { + "begin": "請選擇開始日期", + "end": "請選擇結束日期" + }, + "message": { + "101": "結束時間不得早于開始時間!", + "102": "僅允許選擇 ${0} 個日期" + }, + "current": { + "today": "今天", + "month": "本月", + "week": "本周", + "year": "今年" + }, + "multiDatesLocale": { + "backtotoday": "回到今天", + "clearSelections": "清空", + "delete": "刪除", + "selected": "已選,天" + }, + "quickSelectors": { + "today": "今天", + "yesterday": "昨天", + "tomorrow": "明天", + "thisMonday": "本周壹", + "nextMonday": "下周壹", + "firstDayOfMonth": "本月初", + "lastDayOfMonth": "本月末", + "firstDayOfLastMonth": "上月初", + "lastDayOfLastMonth": "上月末", + "firstDayOfYear": "今年初", + "lastDayOfYear": "今年末", + "firstDayOfQuarter": "本季度初", + "lastDayOfQuarter": "本季度末", + "thisWeek": "本周", + "lastWeek": "上周", + "nextWeek": "下周", + "past7Days": "過去7天", + "past30Days": "過去30天", + "thisMonth": "本月", + "lastMonth": "上月", + "thisQuarter": "本季度", + "lastQuarter": "上季度", + "thisYear": "今年", + "lastYear": "去年", + "recent3Months": "最近3個月", + "recent6Months": "最近6個月" + } + }, + "datagrid": { + "lineNumberTitle": "序號", + "emptyMessage": "暫無數據", + "pagination": { + "previousLabel": "上一頁", + "nextLabel": "下一頁", + "message": "共 {1} 條", + "pagelist": { + "firstText": "顯示", + "lastText": "條" + } + }, + "filter": { + "title": "過濾條件", + "reset": "重置", + "clear": "清空條件", + "clearAll": "清空所有條件", + "setting": "高級設置", + "nofilter": "[ 無 ]", + "checkAll": "全選", + "and": "並且", + "or": "或者", + "operators": { + "equal": "等於", + "notEqual": "不等於", + "greater": "大於", + "greaterOrEqual": "大於等於", + "less": "小於", + "lessOrEqual": "小於等於", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "屬於", + "notIn": "不屬於", + "empty": "為空", + "notEmpty": "不為空", + "null": "null", + "notNull": "不為null" + }, + "more": "查看更多", + "ok": "確定", + "cancel": "取消", + "sevenDays": "七天", + "oneMonth": "一個月", + "threeMonths": "三個月", + "sixMonths": "半年" + }, + "settings": { + "visible": "顯示列", + "sortting": "列排序", + "title": "列配置", + "canchoose": "可選列", + "choosed": "已選列", + "asc": "升序", + "desc": "降序", + "cancelSort": "取消排序", + "ok": "確定", + "cancel": "取消", + "reset": "恢複默認", + "conciseMode": "簡潔模式", + "advancedMode": "高級模式", + "formatSetting": "列格式", + "properties": "列屬性", + "groupping": "分組", + "allColumns": "所有列", + "visibleColumns": "可見列", + "hiddenColumns": "隱藏列", + "searchPlaceholder": "請輸入列名稱", + "checkall": "全部顯示/隱藏", + "headeralign": "表頭對齊", + "dataalign": "數據對齊", + "alignLeft": "左對齊", + "alignCenter": "居中對齊", + "alignRight": "右對齊", + "summarytype": "匯總合計類型", + "summarytext": "匯總合計文本", + "summaryNone": "無", + "summarySum": "求和", + "summaryMax": "最大值", + "summaryMin": "最小值", + "summarCount": "計數", + "summaryAverage": "平均值", + "grouppingField": "分組字段", + "moreGrouppingFieldWarningMessage": "最多設置3個字段進行分組", + "grouppingSummary": "分組合計", + "addGrouppingFieldTip": "添加分組字段", + "removeGrouppingFieldTip": "移除分組字段", + "grouppingSummaryType": "分組合計類型e", + "grouppingSummaryText": "分組合計文本", + "restoreDefaultSettingsText": "確認要恢複默認設置嗎", + "simple": { + "title": "顯示列", + "tip": "選中的字段可展示到列表中,拖拽可調整在列表中的展示順序。", + "count": "已顯示 {0} 列" + } + }, + "selectionData": { + "clearAll": "清空", + "tooltip": "點擊顯示已選記錄列錶", + "currentLenth": "已選擇:{0} 條" + }, + "groupRow": { + "tips": "拖動列到這兒可進行數據分組", + "removeColumn": "移除分組列", + "clearTip": "清除所有分組字段", + "clear": "清空" + }, + "summary": { + "title": "當頁合計" + }, + "loadingMessage": "正在載入", + "commandColumn": { + "title": "操作", + "edit": "編輯", + "remove": "刪除", + "cancel": "取消", + "accept": "確定" + } + }, + "operators": { + "equal": "等於", + "notEqual": "不等於", + "greater": "大於", + "greaterOrEqual": "大於等於", + "less": "小於", + "lessOrEqual": "小於等於", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "屬於", + "notIn": "不屬於", + "empty": "為空", + "notEmpty": "不為空", + "null": "null", + "notNull": "不為null", + "startWith": "開始於", + "endWith": "結束於", + "and": "且", + "or": "或" + }, + "comboList": { + "remoteError": "請求方法類型不正確", + "placeholder": "請選擇" + } +} \ No newline at end of file diff --git a/packages/ui-vue/locales/ui/en.json b/packages/ui-vue/locales/ui/en.json new file mode 100644 index 00000000000..ac2e1109320 --- /dev/null +++ b/packages/ui-vue/locales/ui/en.json @@ -0,0 +1,493 @@ +{ + "transfer": { + "selectedStart": "Selected: ", + "selectedEnd": " Items" + }, + "timePicker": { + "placeholder": "Please select a time", + "time": { + "hour": "Hour", + "minute": "Minute", + "seconds": "Second" + } + }, + "tabs": { + "more": "More", + "leftButton": "Left", + "rightButton": "Right", + "noData": "No data available" + }, + "section": { + "expandLabel": "Expand", + "collapseLabel": "Collapse" + }, + "responseToolbar": { + "more": "More" + }, + "querySolution": { + "saveAsDialog": { + "queryPlanName": "Solution Name", + "setAsDefault": "Set as default", + "confirm": "OK", + "cancel": "Cancel", + "caption": "New", + "personal": "Personal solution", + "system": "System public solution", + "nameNotify": "Please enter solution name", + "authNotify": "You do not have permission to modify public solutions.", + "success": "Query solution saved successfully.", + "maxLength": "Solution name cannot exceed 100 characters, please modify" + }, + "manageDialog": { + "caption": "Solution Management", + "default": "Default", + "system": "System Public", + "saveAs": "Save As", + "save": "Save", + "manage": "Manage", + "isDefault": "Default Solution", + "code": "Name", + "type": "Type", + "private": "Personal", + "public": "System Public", + "org": "Organization Public", + "remove": "Delete" + }, + "configDialog": { + "caption": "Filter Configuration" + }, + "container": { + "filter": "Filter", + "default": "Default Filter Solution", + "clear": "Clear", + "require": "Please fill in {fields} before filtering" + } + }, + "pagination": { + "message": "Total {1} Items ", + "totalInfo": { + "firstText": "Total", + "lastText": "Items" + }, + "pageList": { + "firstText": "Display", + "lastText": "Items" + }, + "previous": "Previous", + "next": "Next", + "goto": { + "prefix": "Go to", + "suffix": "" + }, + "show": "Display" + }, + "numberSpinner": { + "placeholder": "Please enter the number", + "range": { + "begin": "Please enter the begin number", + "end": "Please enter the end number" + } + }, + "messageBox": { + "yes": "Yes", + "no": "No", + "ok": "OK", + "close": "Close", + "cancel": "Cancel", + "title": "System Information", + "errorTitle": "Error Information", + "prompt": { + "fontSize": { + "name": "Font Size", + "small": "Small", + "middle": "Middle", + "big": "Large", + "large": "Extra Large", + "huge": "Huge" + }, + "tips": { + "surplus": "You can also input {0} characters", + "length": "{0} characters have been entered" + } + }, + "exception": { + "expand": "Expand", + "collapse": "Collapse", + "happend": "Happened Time", + "detail": "Detail", + "copy": "Copy Details", + "copySuccess": "Copy Succeeded!", + "copyFailed": "Replication Failed!", + "roger": "OK" + } + }, + "lookup": { + "placeholder": "Please select", + "favorites": "Favorites", + "selected": "Selected Items", + "okText": "OK", + "cancelText": "Cancel", + "allColumns": "All Columns", + "datalist": "Data Items", + "mustWriteSomething": "Please enter a keyword to search.", + "mustChoosAdatarow": "Please select a record!", + "tipText": "Are these what you are looking for?", + "cascade": { + "enable": "Bidirectional Cascading", + "disable": "Disable Cascading", + "up": "Upward Cascading", + "down": "Downward Cascading" + }, + "includechildren": "Include Children", + "favoriteInfo": { + "addFav": "Collection Success.", + "cancelFav": "Unfavorite Successfully. ", + "addFavTitle": "Add to Favorite", + "cancelFavTitle": "Cancel Favorite" + }, + "getAllChilds": "Get All Children", + "contextMenu": { + "checkChildNodes": "Check Subordinate Nodes", + "uncheckChildNodes": "Uncheck Subordinate Nodes", + "expandall": "Expand All", + "collapseall": "Collapse All", + "expandByLayer": "Expand by Level", + "expand1": "Expand to Level 1", + "expand2": "Expand to Level 2", + "expand3": "Expand to Level 3", + "expand4": "Expand to Level 4", + "expand5": "Expand to Level 5", + "expand6": "Expand to Level 6", + "expand7": "Expand to Level 7", + "expand8": "Expand to Level 8", + "expand9": "Expand to Level 9" + }, + "quick": { + "notfind": "Search Content Not Found.", + "more": "Show More" + }, + "configError": "The help display column is not configured. Please check whether the help data source is configured correctly.", + "selectedInfo": { + "total": "Selected Items {0}", + "clear": "Cancel Selected", + "remove": "Delete ({0})", + "confirm": "Are you sure you want to cancel all selected records?" + }, + "clearAllConditions": "Clear All Conditions", + "anyFields": "All" + }, + "loading": { + "message": "Loading ..." + }, + "listView": { + "emptyMessage": "Empty Data" + }, + "filterConditionEditor": { + "cancelButton": "Cancel", + "okButton": "OK", + "addWhere": "Add", + "clear": "Clear", + "moveTop": "Top", + "moveUp": "Up", + "moveDown": "Down", + "moveBottom": "Bottom", + "leftBrackets": "Left Brackets", + "field": "Field Name", + "operator": "Operator", + "value": "Value", + "valueType": "Value type", + "expressType": { + "value": "Value", + "express": "Express", + "frontExpress": "Front Express" + }, + "rightBrackets": "Right Brackets", + "relation": "Relation", + "relationValue": { + "and": "And", + "or": "Or" + }, + "designTab": "Design", + "jsonTab": "JSON", + "sqlTab": "Sql", + "title": "Filter Designer", + "message": "Are you sure you want to clear all current data?", + "validate": { + "bracket": "The brackets do not match, please check", + "relation": "The condition relationship is incomplete, please check", + "field": "Condition field is not set, please check" + } + }, + "eventParameter": { + "title": "Parameter Editor", + "ok": "confirm", + "cancel": "cancel", + "workFlowClass": { + "title": "Please select a process category" + }, + "generalEditor": { + "field": "field", + "tabVar": "variable", + "form": "form components" + }, + "jsonEditor": { + "dialogTitle": "Configurable parameter editor", + "keyColumnTitle": "parameter", + "valueColumnTitle": "parameter value", + "addButtonText": "Add configuration parameters", + "keyColumnPlaceholder": "Please enter the parameters", + "error": "Expected array of parameter schema for JsonEditor, but received invalid JSON" + }, + "comboTree": { + "placeholder": "Please select" + } + }, + "drawer": { + "cancel": "Cancel", + "confirm": "Confirm" + }, + "datepicker": { + "dayLabels": { + "Sun": "Sun", + "Mon": "Mon", + "Tue": "Tue", + "Wed": "Wed", + "Thu": "Thu", + "Fri": "Fri", + "Sat": "Sat" + }, + "monthLabels": { + "1": "Jan", + "2": "Feb", + "3": "Mar", + "4": "Apr", + "5": "May", + "6": "Jun", + "7": "Jul", + "8": "Aug", + "9": "Sep", + "10": "Oct", + "11": "Nov", + "12": "Dec" + }, + "dateFormat": "MM/dd/yyyy", + "returnFormat": "MM/dd/yyyy", + "firstDayOfWeek": "mo", + "sunHighlight": false, + "yearTxt": "", + "timeBtnText": "Select Time", + "dateBtnText": "Select Date", + "commitBtnText": "OK", + "weekText": "Week", + "placeholder": "Please select a date", + "range": { + "begin": "Please select a begin date", + "end": "Please select an end date" + }, + "message": { + "101": "The end time must not be earlier than the start time.", + "102": "Only ${0} dates are allowed to be selected." + }, + "current": { + "today": "Today", + "week": "Current Week", + "month": "Current Month", + "year": "Current Year" + }, + "multiDatesLocale": { + "backtotoday": "Back to Today", + "clearSelections": "Clear All", + "delete": "Delete", + "selected": "Selected,Days" + }, + "quickSelectors": { + "today": "Today", + "yesterday": "Yesterday", + "tomorrow": "Tomorrow", + "thisMonday": "This Monday", + "nextMonday": "Next Monday", + "firstDayOfMonth": "First Day of Month", + "lastDayOfMonth": "Last Day of Month", + "firstDayOfLastMonth": "First Day of Last Month", + "lastDayOfLastMonth": "Last Day of Last Month", + "firstDayOfYear": "First Day of Year", + "lastDayOfYear": "Last Day of Year", + "firstDayOfQuarter": "First Day of Quarter", + "lastDayOfQuarter": "Last Day of Quarter", + "thisWeek": "This Week", + "lastWeek": "Last Week", + "nextWeek": "Next Week", + "past7Days": "Past 7 Days", + "past30Days": "Past 30 Days", + "thisMonth": "This Month", + "lastMonth": "Last Month", + "thisQuarter": "This Quarter", + "lastQuarter": "Last Quarter", + "thisYear": "This Year", + "lastYear": "Last Year", + "recent3Months": "Recent 3 Months", + "recent6Months": "Recent 6 Months" + } + }, + "datagrid": { + "lineNumberTitle": "NO.", + "emptyMessage": "Empty Data", + "pagination": { + "previousLabel": "Prev Page", + "nextLabel": "Next Page", + "message": "Total {1} Items", + "pagelist": { + "firstText": "Display", + "lastText": "items" + } + }, + "filter": { + "title": "Conditions", + "reset": "Reset", + "clear": "Clear", + "clearAll": "Clear All Conditions", + "setting": "Settings", + "nofilter": "[ Empty ]", + "checkAll": "Check All", + "and": "And", + "or": "Or", + "operators": { + "equal": "equal", + "notEqual": "not equal", + "greater": "greater than", + "greaterOrEqual": "greater than or equal", + "less": "less than", + "lessOrEqual": "less than or equal", + "contains": "contains", + "notContains": "not contains", + "like": "contains", + "notLike": "not contains", + "in": "in", + "notIn": "not in", + "empty": "empty", + "notEmpty": "not empty", + "null": "null", + "notNull": "not null" + }, + "more": "More", + "ok": "ok", + "cancel": "cancel", + "sevenDays": "Seven Days", + "oneMonth": "One Month", + "threeMonths": "Three Months", + "sixMonths": "Six Months" + }, + "settings": { + "visible": "Display Columns", + "sortting": "Sortting", + "title": "Column Settings", + "canchoose": "Can choose", + "choosed": "Choosed", + "asc": "ASC", + "desc": "DESC", + "cancelSort": "Cancel sortting", + "ok": "OK", + "cancel": "Cancel", + "reset": "Reset", + "conciseMode": "Concise", + "advancedMode": "Advanced", + "formatSetting": "Column format", + "properties": "Column properties", + "groupping": "Groupping", + "allColumns": "All", + "visibleColumns": "Visible", + "hiddenColumns": "Hidden", + "searchPlaceholder": "Please enter a column name", + "checkall": "Show or hide all", + "headeralign": "Header alignment", + "dataalign": "Data alignment", + "alignLeft": "Left", + "alignCenter": "Center", + "alignRight": "Right", + "summarytype": "Summary type", + "summarytext": "Summary text", + "summaryNone": "None", + "summarySum": "Sum", + "summaryMax": "Max", + "summaryMin": "Min", + "summarCount": "Count", + "summaryAverage": "Average", + "grouppingField": "Groupping field", + "moreGrouppingFieldWarningMessage": "Up to 3 fields are set for grouping", + "grouppingSummary": "Group total", + "addGrouppingFieldTip": "Add groupping field", + "removeGrouppingFieldTip": "Remove groupping field", + "grouppingSummaryType": "Group total type", + "grouppingSummaryText": "Group total text", + "restoreDefaultSettingsText": "Are you sure you want to restore the default settings", + "simple": { + "title": "Show Columns", + "tip": "The selected fields can be displayed in the list. Drag to adjust the display order in the list.", + "count": "show {0} columns" + } + }, + "selectionData": { + "clearAll": "Clear all", + "tooltip": "Click here show list.", + "currentLenth": "{0} items selected." + }, + "groupRow": { + "tips": "Drag columns here to group data.", + "removeColumn": "Remove the group column.", + "clearTip": "Clear all grouped fields.", + "clear": "Empty" + }, + "summary": { + "title": "Current Page Summary" + }, + "loadingMessage": "Loading", + "commandColumn": { + "title": "Operation", + "edit": "Edit", + "remove": "Remove", + "cancel": "Cancel", + "accept": "Accept" + } + }, + "condition": { + "add": "Add condition", + "create": "Create condition group", + "reset": "Reset", + "and": "And", + "or": "Or" + }, + "operators": { + "equal": "Equal", + "notEqual": "Not equal", + "greater": "Greater than", + "greaterOrEqual": "Greater than or equal", + "less": "Less than", + "lessOrEqual": "Less than or equal", + "contains": "Contains", + "notContains": "Does not contain", + "like": "Contains", + "notLike": "Does not contain", + "in": "In", + "notIn": "Not in", + "empty": "Is empty", + "notEmpty": "Is not empty", + "null": "Null", + "notNull": "Not null", + "startWith": "Starts with", + "endWith": "Ends with", + "and": "And", + "or": "Or" + }, + "comboList": { + "remoteError": "The request method type is incorrect", + "placeholder": "Please select" + }, + "avatar": { + "imgtitle": "Amend", + "typeError": "Type error", + "sizeError": "Can not be larger than", + "uploadError": "Upload Fail!", + "loadError": "Load error.", + "loading": "Loading" + } +} \ No newline at end of file diff --git a/packages/ui-vue/locales/ui/zh-CHS.json b/packages/ui-vue/locales/ui/zh-CHS.json new file mode 100644 index 00000000000..406cdd0ef60 --- /dev/null +++ b/packages/ui-vue/locales/ui/zh-CHS.json @@ -0,0 +1,493 @@ +{ + "transfer": { + "selectedStart": "已选:", + "selectedEnd": "项数据" + }, + "timePicker": { + "placeholder": "请选择时间", + "time": { + "hour": "时", + "minute": "分", + "seconds": "秒" + } + }, + "tabs": { + "more": "更多", + "leftButton": "向左", + "rightButton": "向左", + "noData": "没有相关数据" + }, + "section": { + "expandLabel": "展开", + "collapseLabel": "收起" + }, + "responseToolbar": { + "more": "更多" + }, + "querySolution": { + "saveAsDialog": { + "queryPlanName": "方案名称", + "setAsDefault": "设为默认", + "confirm": "确定", + "cancel": "取消", + "caption": "新增方案", + "personal": "用户个人方案", + "system": "系统公共方案", + "nameNotify": "请填写方案名称", + "authNotify": "您暂无权限修改公共类型方案。", + "success": "查询方案保存成功。", + "maxLength": "方案名称最多100个字符,超出请修改" + }, + "manageDialog": { + "caption": "方案管理", + "default": "默认", + "system": "系统公共", + "saveAs": "另存为", + "save": "保存", + "manage": "管理", + "isDefault": "默认方案", + "code": "名称", + "type": "属性", + "private": "用户个人方案", + "public": "系统公共方案", + "org": "组织公共方案", + "remove": "删除" + }, + "configDialog": { + "caption": "筛选条件配置" + }, + "container": { + "filter": "筛选", + "default": "默认筛选方案", + "clear": "清空", + "require": "请填写{fields}再进行筛选" + } + }, + "pagination": { + "message": "共 {1} 条", + "totalInfo": { + "firstText": "共", + "lastText": "条" + }, + "pageList": { + "firstText": "每页", + "lastText": "条" + }, + "previous": "上一页", + "next": "下一页", + "goto": { + "prefix": "跳转至", + "suffix": "页" + }, + "show": "显示" + }, + "numberSpinner": { + "placeholder": "请输入数字", + "range": { + "begin": "请输入开始数字", + "end": "请输入结束数字" + } + }, + "messageBox": { + "yes": "是", + "no": "否", + "ok": "确定", + "close": "关闭", + "cancel": "取消", + "title": "系统提示", + "errorTitle": "错误提示", + "prompt": { + "fontSize": { + "name": "字体大小", + "small": "小", + "middle": "中", + "big": "大", + "large": "特大", + "huge": "超大" + }, + "tips": { + "surplus": "还可以输入 {0} 个字符", + "length": "已输入 {0} 个字符" + } + }, + "exception": { + "expand": "展开", + "collapse": "收起", + "happend": "发生时间", + "detail": "详细信息", + "copy": "复制详细信息", + "copySuccess": "复制成功", + "copyFailed": "复制失败", + "roger": "知道了" + } + }, + "lookup": { + "placeholder": "请选择", + "favorites": "收藏夹", + "selected": "已选数据", + "okText": "确定", + "cancelText": "取消", + "allColumns": "所有列", + "datalist": "数据列表", + "mustWriteSomething": "请输入关键字后查询。", + "mustChoosAdatarow": "请选择一条记录!", + "tipText": "您要找的是不是这些?", + "cascade": { + "enable": "同步选择", + "disable": "仅选择自身", + "up": "包含上级", + "down": "包含下级" + }, + "includechildren": "包含下级", + "favoriteInfo": { + "addFav": "已添加到收藏夹。", + "cancelFav": "已从收藏夹中移除。", + "addFavTitle": "收藏", + "cancelFavTitle": "取消收藏" + }, + "getAllChilds": "获取所有子级数据", + "contextMenu": { + "checkChildNodes": "勾选下级数据", + "uncheckChildNodes": "取消勾选下级数据", + "expandall": "全部展开", + "collapseall": "全部收起", + "expandByLayer": "按层级展开", + "expand1": "展开 1 级", + "expand2": "展开 2 级", + "expand3": "展开 3 级", + "expand4": "展开 4 级", + "expand5": "展开 5 级", + "expand6": "展开 6 级", + "expand7": "展开 7 级", + "expand8": "展开 8 级", + "expand9": "展开 9 级" + }, + "quick": { + "notfind": "未找到搜索内容", + "more": "显示更多" + }, + "configError": "帮助显示列未配置,请检查是否已正确配置帮助数据源! ", + "selectedInfo": { + "total": "已选 {0} 条", + "clear": "取消已选", + "remove": "移除 ({0})", + "confirm": "您确认要取消所有选中记录吗?" + }, + "clearAllConditions": "清除所有查询条件", + "anyFields": "全部" + }, + "loading": { + "message": "正在加载,请稍候..." + }, + "listView": { + "emptyMessage": "暂无数据" + }, + "filterConditionEditor": { + "cancelButton": "取消", + "okButton": "确定", + "addWhere": "添加子句", + "clear": "清空", + "moveTop": "置顶", + "moveUp": "上移", + "moveDown": "下移", + "moveBottom": "置底", + "leftBrackets": "左括号", + "field": "字段", + "operator": "操作符", + "value": "值", + "valueType": "值类型", + "expressType": { + "value": "值", + "express": "表达式", + "frontExpress": "表单表达式" + }, + "rightBrackets": "右括号", + "relation": "关系", + "relationValue": { + "and": "并且", + "or": "或者" + }, + "designTab": "设计器", + "jsonTab": "源代码", + "sqlTab": "Sql预览", + "title": "条件编辑器", + "message": "确认要清空当前所有数据吗?", + "validate": { + "bracket": "左右括号不匹配,请检查", + "relation": "条件关系不完整,请检查", + "field": "条件字段未设置,请检查" + } + }, + "eventParameter": { + "title": "参数编辑器", + "ok": "确定", + "cancel": "取消", + "workFlowClass": { + "title": "请选择流程分类" + }, + "generalEditor": { + "field": "字段", + "tabVar": "变量", + "form": "表单组件" + }, + "jsonEditor": { + "dialogTitle": "可配置参数编辑器", + "keyColumnTitle": "参数", + "valueColumnTitle": "参数值", + "addButtonText": "添加配置参数", + "keyColumnPlaceholder": "请输入参数", + "error": "JsonEditor的参数预期是数组,但收到无效的JSON" + }, + "comboTree": { + "placeholder": "请选择" + } + }, + "drawer": { + "cancel": "取消", + "confirm": "确定" + }, + "datepicker": { + "dayLabels": { + "Sun": "日", + "Mon": "一", + "Tue": "二", + "Wed": "三", + "Thu": "四", + "Fri": "五", + "Sat": "六" + }, + "monthLabels": { + "1": "一月", + "2": "二月", + "3": "三月", + "4": "四月", + "5": "五月", + "6": "六月", + "7": "七月", + "8": "八月", + "9": "九月", + "10": "十月", + "11": "十一月", + "12": "十二月" + }, + "dateFormat": "yyyy-MM-dd", + "returnFormat": "yyyy-MM-dd", + "firstDayOfWeek": "mo", + "sunHighlight": false, + "yearTxt": "年", + "timeBtnText": "选择时间", + "dateBtnText": "选择日期", + "commitBtnText": "确定", + "weekText": "周", + "placeholder": "请选择日期", + "range": { + "begin": "请选择开始日期", + "end": "请选择结束日期" + }, + "message": { + "101": "结束时间不得早于开始时间!", + "102": "仅允许选择 ${0} 个日期" + }, + "current": { + "today": "今天", + "week": "本周", + "month": "本月", + "year": "今年" + }, + "multiDatesLocale": { + "backtotoday": "回到今天", + "clearSelections": "清空", + "delete": "删除", + "selected": "已选,天" + }, + "quickSelectors": { + "today": "今天", + "yesterday": "昨天", + "tomorrow": "明天", + "thisMonday": "本周一", + "nextMonday": "下周一", + "firstDayOfMonth": "本月初", + "lastDayOfMonth": "本月末", + "firstDayOfLastMonth": "上月初", + "lastDayOfLastMonth": "上月末", + "firstDayOfYear": "今年初", + "lastDayOfYear": "今年末", + "firstDayOfQuarter": "本季度初", + "lastDayOfQuarter": "本季度末", + "thisWeek": "本周", + "lastWeek": "上周", + "nextWeek": "下周", + "past7Days": "过去7天", + "past30Days": "过去30天", + "thisMonth": "本月", + "lastMonth": "上月", + "thisQuarter": "本季度", + "lastQuarter": "上季度", + "thisYear": "今年", + "lastYear": "去年", + "recent3Months": "最近3个月", + "recent6Months": "最近6个月" + } + }, + "datagrid": { + "lineNumberTitle": "序号", + "emptyMessage": "暂无数据", + "pagination": { + "previousLabel": "上一页", + "nextLabel": "下一页", + "message": "共 {1} 条", + "pagelist": { + "firstText": "显示", + "lastText": "条" + } + }, + "filter": { + "title": "筛选", + "reset": "重置", + "clear": "清空", + "clearAll": "清空所有条件", + "setting": "高级设置", + "nofilter": "[ 无 ]", + "checkAll": "全选", + "and": "并且", + "or": "或者", + "operators": { + "equal": "等于", + "notEqual": "不等于", + "greater": "大于", + "greaterOrEqual": "大于等于", + "less": "小于", + "lessOrEqual": "小于等于", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "属于", + "notIn": "不属于", + "empty": "为空", + "notEmpty": "不为空", + "null": "null", + "notNull": "不为null" + }, + "more": "查看更多", + "ok": "确定", + "cancel": "取消", + "sevenDays": "七天", + "oneMonth": "一个月", + "threeMonths": "三个月", + "sixMonths": "半年" + }, + "settings": { + "visible": "显示列", + "sortting": "列排序", + "title": "列配置", + "canchoose": "可选列", + "choosed": "已选列", + "asc": "升序", + "desc": "降序", + "cancelSort": "取消排序", + "ok": "确定", + "cancel": "取消", + "reset": "恢复默认", + "conciseMode": "简洁模式", + "advancedMode": "高级模式", + "formatSetting": "列格式", + "properties": "列属性", + "groupping": "分组", + "allColumns": "所有列", + "visibleColumns": "可见列", + "hiddenColumns": "隐藏列", + "searchPlaceholder": "请输入列名称", + "checkall": "全部显示/隐藏", + "headeralign": "表头对齐", + "dataalign": "数据对齐", + "alignLeft": "左对齐", + "alignCenter": "居中对齐", + "alignRight": "右对齐", + "summarytype": "汇总合计类型", + "summarytext": "汇总合计文本", + "summaryNone": "无", + "summarySum": "求和", + "summaryMax": "最大值", + "summaryMin": "最小值", + "summarCount": "计数", + "summaryAverage": "平均值", + "grouppingField": "分组字段", + "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", + "grouppingSummary": "分组合计", + "addGrouppingFieldTip": "添加分组字段", + "removeGrouppingFieldTip": "移除分组字段", + "grouppingSummaryType": "分组合计类型", + "grouppingSummaryText": "分组合计文本", + "restoreDefaultSettingsText": "确认要恢复默认设置吗?", + "simple": { + "title": "显示列", + "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", + "count": "已显示 {0} 列" + } + }, + "selectionData": { + "clearAll": "清空", + "tooltip": "点击显示已选记录列表", + "currentLenth": "已选择:{0} 条" + }, + "groupRow": { + "tips": "拖动列到这儿可进行数据分组", + "removeColumn": "移除分组列", + "clearTip": "清除所有分组字段", + "clear": "清空" + }, + "summary": { + "title": "当页合计" + }, + "loadingMessage": "正在加载", + "commandColumn": { + "title": "操作", + "edit": "编辑", + "remove": "删除", + "cancel": "取消", + "accept": "确定" + } + }, + "condition": { + "add": "添加条件", + "create": "生成条件组", + "reset": "重置", + "and": "与", + "or": "或" + }, + "operators": { + "equal": "等于", + "notEqual": "不等于", + "greater": "大于", + "greaterOrEqual": "大于等于", + "less": "小于", + "lessOrEqual": "小于等于", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "属于", + "notIn": "不属于", + "empty": "为空", + "notEmpty": "不为空", + "null": "null", + "notNull": "不为null", + "startWith": "开始是", + "endWith": "结束是", + "and": "与", + "or": "或" + }, + "comboList": { + "remoteError": "请求方法类型不正确", + "placeholder": "请选择" + }, + "avatar": { + "imgtitle": "点击修改", + "typeError": "上传图片类型不正确", + "sizeError": "上传图片不能大于", + "uploadError": "图片上传失败,请重试!", + "loadError": "加载错误", + "loading": "加载中" + } +} \ No newline at end of file diff --git a/packages/ui-vue/locales/ui/zh-CHT.json b/packages/ui-vue/locales/ui/zh-CHT.json new file mode 100644 index 00000000000..57a182774a3 --- /dev/null +++ b/packages/ui-vue/locales/ui/zh-CHT.json @@ -0,0 +1,489 @@ +{ + "transfer": { + "selectedStart": "已選:", + "selectedEnd": "項數據" + }, + "timePicker": { + "placeholder": "請選擇時間", + "time": { + "hour": "時", + "minute": "分", + "seconds": "秒" + } + }, + "tabs": { + "more": "更多", + "leftButton": "向左", + "rightButton": "向左", + "noData": "沒有相關數據" + }, + "section": { + "expandLabel": "展開", + "collapseLabel": "收起" + }, + "responseToolbar": { + "more": "更多" + }, + "querySolution": { + "saveAsDialog": { + "queryPlanName": "方案名稱", + "setAsDefault": "設為預設", + "confirm": "確定", + "cancel": "取消", + "caption": "新增方案", + "personal": "使用者個人方案", + "system": "系統公共方案", + "nameNotify": "請填寫方案名稱", + "authNotify": "您暫無權限修改公共類型方案。", + "success": "查詢方案儲存成功。", + "maxLength": "方案名稱最多100個字元,超出請修改" + }, + "manageDialog": { + "caption": "方案管理", + "default": "預設", + "system": "系統公共", + "saveAs": "另存為", + "save": "保存", + "manage": "管理", + "isDefault": "預設方案", + "code": "名稱", + "type": "屬性", + "private": "用戶個人方案", + "public": "系統公共方案", + "org": "組織公共方案", + "remove": "刪除" + }, + "configDialog": { + "caption": "篩選條件配置" + }, + "container": { + "filter": "篩選", + "default": "默認篩選方案", + "clear": "清空", + "require": "請填寫{fields}再進行篩選" + } + }, + "pagination": { + "message": "共 {1} 條 ", + "totalInfo": { + "firstText": "共", + "lastText": "條" + }, + "pageList": { + "firstText": "每頁", + "lastText": "條" + }, + "previous": "上一頁", + "next": "下一頁", + "goto": { + "prefix": "跳轉至", + "suffix": "頁" + }, + "show": "顯示" + }, + "numberSpinner": { + "placeholder": "請輸入數字", + "range": { + "begin": "請輸入開始數字", + "end": "請輸入結束數字" + } + }, + "messageBox": { + "yes": "是", + "no": "否", + "ok": "確定", + "close": "關閉", + "cancel": "取消", + "title": "係統提示", + "errorTitle": "錯誤提示", + "prompt": { + "fontSize": { + "name": "字體大小", + "small": "小", + "middle": "中", + "big": "大", + "large": "特大", + "huge": "超大" + } + }, + "exception": { + "expand": "展開", + "collapse": "收起", + "happend": "發生時間", + "detail": "詳細信息", + "copy": "複制詳細信息", + "copySuccess": "複制成功", + "copyFailed": "複制失敗", + "roger": "知道了" + } + }, + "lookup": { + "placeholder": "請選擇", + "favorites": "收藏夾", + "selected": "已選數據", + "okText": "確定", + "cancelText": "取消", + "allColumns": "所有列", + "datalist": "數據列錶", + "mustWriteSomething": "請輸入關鍵字後查詢。", + "mustChoosAdatarow": "請選擇一條記錄!", + "tipText": "您要找的是不是這些?", + "cascade": { + "enable": "同步選擇", + "disable": "僅選擇自身", + "up": "包含上級", + "down": "包含下級" + }, + "includechildren": "包含下級", + "favoriteInfo": { + "addFav": "已添加到收藏夾。", + "cancelFav": "已從收藏夾中移除。", + "addFavTitle": "收藏", + "cancelFavTitle": "取消收藏" + }, + "getAllChilds": "獲取所有子級數據", + "contextMenu": { + "checkChildNodes": "勾選下級數據", + "uncheckChildNodes": "取消勾選下級數據", + "expandall": "全部展開", + "collapseall": "全部收起", + "expandByLayer": "按層級展開", + "expand1": "展開 1 級", + "expand2": "展開 2 級", + "expand3": "展開 3 級", + "expand4": "展開 4 級", + "expand5": "展開 5 級", + "expand6": "展開 6 級", + "expand7": "展開 7 級", + "expand8": "展開 8 級", + "expand9": "展開 9 級" + }, + "quick": { + "notfind": "未找到搜索內容", + "more": "顯示更多" + }, + "configError": "幫助顯示列未配置,請檢查是否已正確配置幫助數據源!", + "selectedInfo": { + "total": "已選 {0} 條", + "clear": "取消已選", + "remove": "移除 ({0})", + "confirm": "您確認要取消所有選中記錄嗎?" + }, + "clearAllConditions": "清除所有查詢條件", + "anyFields": "全部" + }, + "loading": { + "message": "正在加載,請稍候..." + }, + "listView": { + "emptyMessage": "暫無數據" + }, + "filterConditionEditor": { + "cancelButton": "取消", + "okButton": "確定", + "addWhere": "添加子句", + "clear": "清空", + "moveTop": "置頂", + "moveUp": "上移", + "moveDown": "下移", + "moveBottom": "置底", + "leftBrackets": "左括號", + "field": "字段", + "operator": "操作符", + "value": "值", + "valueType": "值類型", + "expressType": { + "value": "值", + "express": "錶達式", + "frontExpress": "表單表達式" + }, + "rightBrackets": "右括號", + "relation": "關係", + "relationValue": { + "and": "並且", + "or": "或者" + }, + "designTab": "設計器", + "jsonTab": "源代碼", + "sqlTab": "Sql預覽", + "title": "條件編輯器", + "message": "確認要清空當前所有數據嗎?", + "validate": { + "bracket": "左右括號不匹配,請檢查", + "relation": "條件關系不完整,請檢查", + "field": "條件字段未設置,請檢查" + } + }, + "eventParameter": { + "title": "參數編輯器", + "ok": "確定", + "cancel": "取消", + "workFlowClass": { + "title": "請選擇流程分類" + }, + "generalEditor": { + "field": "欄位", + "tabVar": "變數", + "form": "表單元件" + }, + "jsonEditor": { + "dialogTitle": "可配置參數編輯器", + "keyColumnTitle": "參數", + "valueColumnTitle": "參數值", + "addButtonText": "添加配置參數", + "keyColumnPlaceholder": "請輸入參數", + "error": "JsonEditor的參數預期是數位,但收到無效的JSON" + }, + "comboTree": { + "placeholder": "請選擇" + } + }, + "drawer": { + "cancel": "取消", + "confirm": "確定" + }, + "datepicker": { + "dayLabels": { + "Sun": "日", + "Mon": "一", + "Tue": "二", + "Wed": "三", + "Thu": "四", + "Fri": "五", + "Sat": "六" + }, + "monthLabels": { + "1": "一月", + "2": "二月", + "3": "三月", + "4": "四月", + "5": "五月", + "6": "六月", + "7": "七月", + "8": "八月", + "9": "九月", + "10": "十月", + "11": "十一月", + "12": "十二月" + }, + "dateFormat": "yyyy-MM-dd", + "returnFormat": "yyyy-MM-dd", + "firstDayOfWeek": "mo", + "sunHighlight": false, + "yearTxt": "年", + "timeBtnText": "選擇時間", + "dateBtnText": "選擇日期", + "commitBtnText": "確認", + "weekText": "周", + "placeholder": "請選擇日期", + "range": { + "begin": "請選擇開始日期", + "end": "請選擇結束日期" + }, + "message": { + "101": "結束時間不得早于開始時間!", + "102": "僅允許選擇 ${0} 個日期" + }, + "current": { + "today": "今天", + "month": "本月", + "week": "本周", + "year": "今年" + }, + "multiDatesLocale": { + "backtotoday": "回到今天", + "clearSelections": "清空", + "delete": "刪除", + "selected": "已選,天" + }, + "quickSelectors": { + "today": "今天", + "yesterday": "昨天", + "tomorrow": "明天", + "thisMonday": "本周壹", + "nextMonday": "下周壹", + "firstDayOfMonth": "本月初", + "lastDayOfMonth": "本月末", + "firstDayOfLastMonth": "上月初", + "lastDayOfLastMonth": "上月末", + "firstDayOfYear": "今年初", + "lastDayOfYear": "今年末", + "firstDayOfQuarter": "本季度初", + "lastDayOfQuarter": "本季度末", + "thisWeek": "本周", + "lastWeek": "上周", + "nextWeek": "下周", + "past7Days": "過去7天", + "past30Days": "過去30天", + "thisMonth": "本月", + "lastMonth": "上月", + "thisQuarter": "本季度", + "lastQuarter": "上季度", + "thisYear": "今年", + "lastYear": "去年", + "recent3Months": "最近3個月", + "recent6Months": "最近6個月" + } + }, + "datagrid": { + "lineNumberTitle": "序號", + "emptyMessage": "暫無數據", + "pagination": { + "previousLabel": "上一頁", + "nextLabel": "下一頁", + "message": "共 {1} 條", + "pagelist": { + "firstText": "顯示", + "lastText": "條" + } + }, + "filter": { + "title": "過濾條件", + "reset": "重置", + "clear": "清空條件", + "clearAll": "清空所有條件", + "setting": "高級設置", + "nofilter": "[ 無 ]", + "checkAll": "全選", + "and": "並且", + "or": "或者", + "operators": { + "equal": "等於", + "notEqual": "不等於", + "greater": "大於", + "greaterOrEqual": "大於等於", + "less": "小於", + "lessOrEqual": "小於等於", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "屬於", + "notIn": "不屬於", + "empty": "為空", + "notEmpty": "不為空", + "null": "null", + "notNull": "不為null" + }, + "more": "查看更多", + "ok": "確定", + "cancel": "取消", + "sevenDays": "七天", + "oneMonth": "一個月", + "threeMonths": "三個月", + "sixMonths": "半年" + }, + "settings": { + "visible": "顯示列", + "sortting": "列排序", + "title": "列配置", + "canchoose": "可選列", + "choosed": "已選列", + "asc": "升序", + "desc": "降序", + "cancelSort": "取消排序", + "ok": "確定", + "cancel": "取消", + "reset": "恢複默認", + "conciseMode": "簡潔模式", + "advancedMode": "高級模式", + "formatSetting": "列格式", + "properties": "列屬性", + "groupping": "分組", + "allColumns": "所有列", + "visibleColumns": "可見列", + "hiddenColumns": "隱藏列", + "searchPlaceholder": "請輸入列名稱", + "checkall": "全部顯示/隱藏", + "headeralign": "表頭對齊", + "dataalign": "數據對齊", + "alignLeft": "左對齊", + "alignCenter": "居中對齊", + "alignRight": "右對齊", + "summarytype": "匯總合計類型", + "summarytext": "匯總合計文本", + "summaryNone": "無", + "summarySum": "求和", + "summaryMax": "最大值", + "summaryMin": "最小值", + "summarCount": "計數", + "summaryAverage": "平均值", + "grouppingField": "分組字段", + "moreGrouppingFieldWarningMessage": "最多設置3個字段進行分組", + "grouppingSummary": "分組合計", + "addGrouppingFieldTip": "添加分組字段", + "removeGrouppingFieldTip": "移除分組字段", + "grouppingSummaryType": "分組合計類型e", + "grouppingSummaryText": "分組合計文本", + "restoreDefaultSettingsText": "確認要恢複默認設置嗎", + "simple": { + "title": "顯示列", + "tip": "選中的字段可展示到列表中,拖拽可調整在列表中的展示順序。", + "count": "已顯示 {0} 列" + } + }, + "selectionData": { + "clearAll": "清空", + "tooltip": "點擊顯示已選記錄列錶", + "currentLenth": "已選擇:{0} 條" + }, + "groupRow": { + "tips": "拖動列到這兒可進行數據分組", + "removeColumn": "移除分組列", + "clearTip": "清除所有分組字段", + "clear": "清空" + }, + "summary": { + "title": "當頁合計" + }, + "loadingMessage": "正在載入", + "commandColumn": { + "title": "操作", + "edit": "編輯", + "remove": "刪除", + "cancel": "取消", + "accept": "確定" + } + }, + "condition": { + "add": "新增條件", + "create": "建立條件群組", + "reset": "重設", + "and": "且", + "or": "或" + }, + "operators": { + "equal": "等於", + "notEqual": "不等於", + "greater": "大於", + "greaterOrEqual": "大於等於", + "less": "小於", + "lessOrEqual": "小於等於", + "contains": "包含", + "notContains": "不包含", + "like": "包含", + "notLike": "不包含", + "in": "屬於", + "notIn": "不屬於", + "empty": "為空", + "notEmpty": "不為空", + "null": "null", + "notNull": "不為null", + "startWith": "開始於", + "endWith": "結束於", + "and": "且", + "or": "或" + }, + "comboList": { + "remoteError": "請求方法類型不正確", + "placeholder": "請選擇" + }, + "avatar": { + "imgtitle": "點擊修改", + "typeError": "上傳圖片類型不正確", + "sizeError": "上傳圖片不能大於", + "uploadError": "圖片上傳失敗,請重試!", + "loadError": "加載錯誤", + "loading": "加載中" + } +} \ No newline at end of file diff --git a/packages/ui-vue/scripts/commands/build.js b/packages/ui-vue/scripts/commands/build.js index 4bfb5ef4ac8..35d0aa682f5 100644 --- a/packages/ui-vue/scripts/commands/build.js +++ b/packages/ui-vue/scripts/commands/build.js @@ -10,6 +10,7 @@ import dts from 'vite-plugin-dts'; import ts from 'typescript'; import { replace } from './replace-path.js'; import { replaceDesignerPath } from './replace-designer-path.js'; +import { replaceLocales } from './replace-locale-path.js'; const currentFileName = fileURLToPath(import.meta.url); const currentDirectoryName = path.dirname(currentFileName); @@ -96,17 +97,17 @@ async function buildSeperately(componentName) { defineConfig({ configFile: false, publicDir: false, - plugins: [vue(), vueJsx(), - // 应该先替换设计器组件路径,注意插件的顺序 - replaceDesignerPath((format, args) => `../../designer${args[2]}/index.${format}.js`), - replace((format, args) => `..${args[2]}/index.${format}.js`) + plugins: [vue(), vueJsx(), + // 应该先替换设计器组件路径,注意插件的顺序 + replaceDesignerPath((format, args) => `../../designer${args[2]}/index.${format}.js`), + replace((format, args) => `..${args[2]}/index.${format}.js`) ], build: { lib: { entry: tsEntry, name: componentName, fileName: 'index', - formats: ['esm', 'umd'] + formats: ['esm','umd'] }, outDir: `./package/components/${componentName}`, rollupOptions: { @@ -169,7 +170,7 @@ async function buildSeperately(componentName) { * @param {*} source * @param {*} target */ -function copyFiles(source, target) { +function copyLocales(source, target) { try { if (!fs.existsSync(source)) { return; @@ -184,7 +185,7 @@ function copyFiles(source, target) { if (item.isDirectory()) { // 递归复制子目录 - copyFiles(sourcePath, targetPath); + copyLocales(sourcePath, targetPath); } else { // 复制文件 fs.copyFileSync(sourcePath, targetPath); @@ -195,7 +196,6 @@ function copyFiles(source, target) { } } - const buildLibs = async () => { await build( defineConfig({ @@ -212,7 +212,8 @@ const buildLibs = async () => { }), // 应该先替换设计器组件路径,注意插件的顺序 replaceDesignerPath((format, args) => `./designer${args[2]}/index.${format}.js`), - replace((format, args) => `./components${args[2]}/index.${format}.js`) + replace((format, args) => `./components${args[2]}/index.${format}.js`), + replaceLocales((format, args) => `./locales${args[2]}${args[3]}`) ], build: { lib: { @@ -225,7 +226,7 @@ const buildLibs = async () => { rollupOptions: { logLevel: 'silent', // external: ['vue', '@vueuse/core', '@vue/shared', 'bignumber.js', 'lodash', 'lodash-es', 'echarts'], - external: (id) => { + external:(id) => { return externals.find((item) => id.indexOf(item) === 0 && item !== '@farris/ui-vue/components'); }, output: { @@ -268,13 +269,10 @@ const buildLibs = async () => { return isDir && !ignore && (fs.readdirSync(componentDir).includes('index.ts') || fs.readdirSync(componentDir).includes('style.ts')); }); - - // 拷贝合并后的多语文件 - copyFiles('./public/assets/i18n', './package/locales'); + copyLocales('./locales', './package/locales'); components.forEach((componentName) => { buildSeperately(componentName); - // 拷贝每个组件的多语文件 - copyFiles(`./components/${componentName}/src/locales`, `./package/locales/${componentName}`); + copyLocales(`./components/${componentName}/src/locales`, `./package/locales/${componentName}`); }); }; diff --git a/packages/ui-vue/scripts/commands/replace-locale-path.js b/packages/ui-vue/scripts/commands/replace-locale-path.js new file mode 100644 index 00000000000..fa248b36539 --- /dev/null +++ b/packages/ui-vue/scripts/commands/replace-locale-path.js @@ -0,0 +1,12 @@ +export function replaceLocales(path) { + return { + name: 'replaceThePathOfUIVueLocale', + renderChunk(code, chunk) { + const fileNames = chunk.fileName.split('.'); + const locale = fileNames[fileNames.length - 2]; + return code.replace(/(@farris\/ui-vue|@)\/locales(\/ui|\/designer)(\/\w+(-\w+)*)/g, (...args) => { + return path(locale, args); + }); + } + }; +}; diff --git a/packages/ui-vue/tsconfig.json b/packages/ui-vue/tsconfig.json index c852ac8106e..26c0f7bd1ff 100644 --- a/packages/ui-vue/tsconfig.json +++ b/packages/ui-vue/tsconfig.json @@ -20,7 +20,8 @@ "types": ["vitest/globals", "@types/jest"], "baseUrl": "./", "paths": { - "@farris/ui-vue/components/*": ["./components/*"] + "@farris/ui-vue/components/*": ["./components/*"], + "@farris/ui-vue/locales/*": ["./locales/*"] } }, "include": ["components/**/*", "src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "designer/**/*"], diff --git a/packages/ui-vue/vite.config.ts b/packages/ui-vue/vite.config.ts index 654bb9b54b4..f3e08ed2811 100644 --- a/packages/ui-vue/vite.config.ts +++ b/packages/ui-vue/vite.config.ts @@ -24,7 +24,8 @@ export default defineConfig({ }, resolve: { alias: { - '@farris/ui-vue/components': resolve(__dirname, './components') + '@farris/ui-vue/components': resolve(__dirname, './components'), + // '@farris/ui-vue/locales': resolve(__dirname, './locales') } }, server: { -- Gitee From 45bda7c90031d4e6d016f16d0e49f51fba87947c Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 27 Aug 2025 14:23:32 +0800 Subject: [PATCH 091/109] chore: resolve conflicts --- .../components/tabs/src/designer/tabs.design.component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/tabs/src/designer/tabs.design.component.tsx b/packages/ui-vue/components/tabs/src/designer/tabs.design.component.tsx index 76203c9eb9f..edae3771495 100644 --- a/packages/ui-vue/components/tabs/src/designer/tabs.design.component.tsx +++ b/packages/ui-vue/components/tabs/src/designer/tabs.design.component.tsx @@ -117,7 +117,7 @@ export default defineComponent({ } }; // 提供者tabs,供增加、修改tab标题用 - provide('tabs', { activeId, addTab, updateTab, tabPages, tabType, toggleShowTab }); + provide>('tabs', { activeId, addTab, updateTab, tabPages, tabType, toggleShowTab }); provide('toolbar-item-handler', toolbarItemService); // 填充模式 -- Gitee From 62fcc8e74d68ac8569f7ab147d0fe07d540801c5 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 27 Aug 2025 16:07:43 +0800 Subject: [PATCH 092/109] build: optimize listview --- .../list-view.property-config.ts | 116 +++++++++--------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts b/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts index fc572954812..b50fecbf1fe 100644 --- a/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts +++ b/packages/ui-vue/components/list-view/src/property-config/list-view.property-config.ts @@ -173,64 +173,64 @@ export class ListViewProperty extends BaseControlProperty { /** * 默认表格上没有此属性propertyData.rowNumber,根据schema上的属性默认值写默认true或false */ - this.propertyConfig.categories['rowNumber'] = { - title: '行号配置', - $converter: '/converter/row-number.converter', - parentPropertyID: 'rowNumber', - properties: { - enable: { - title: '显示行号', - type: 'boolean', - refreshPanelAfterChanged: true - }, - width: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '宽度', - type: 'number' - }, - heading: { - visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, - title: '标题', - type: 'string' - } - } - }; - this.propertyConfig.categories['pagination'] = { - title: '分页', - $converter: '/converter/pagination.converter', - parentPropertyID: 'pagination', - properties: { - enable: { - title: '启用分页', - type: 'boolean', - refreshPanelAfterChanged: true, - editor: { - readonly: this.isSubGrid() - } - }, - // mode: { - // visible: propertyData.pagination?.enable || false, - // title: '分页交互模式', - // type: "enum", - // editor: { - // type: "combo-list", - // textField: "value", - // valueField: "key", - // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] - // } - // }, - showIndex: { - visible: propertyData.pagination?.enable || false, - title: '显示页码', - type: 'boolean' - }, - showLimits: { - visible: propertyData.pagination?.enable || false, - title: '显示分页条数', - type: 'boolean' - } - } - }; + // this.propertyConfig.categories['rowNumber'] = { + // title: '行号配置', + // $converter: '/converter/row-number.converter', + // parentPropertyID: 'rowNumber', + // properties: { + // enable: { + // title: '显示行号', + // type: 'boolean', + // refreshPanelAfterChanged: true + // }, + // width: { + // visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, + // title: '宽度', + // type: 'number' + // }, + // heading: { + // visible: propertyData.rowNumber == null ? true : propertyData.rowNumber.enable, + // title: '标题', + // type: 'string' + // } + // } + // }; + // this.propertyConfig.categories['pagination'] = { + // title: '分页', + // $converter: '/converter/pagination.converter', + // parentPropertyID: 'pagination', + // properties: { + // enable: { + // title: '启用分页', + // type: 'boolean', + // refreshPanelAfterChanged: true, + // editor: { + // readonly: this.isSubGrid() + // } + // }, + // mode: { + // visible: propertyData.pagination?.enable || false, + // title: '分页交互模式', + // type: "enum", + // editor: { + // type: "combo-list", + // textField: "value", + // valueField: "key", + // data: [{ "key": "client", "value": "客户端" }, { "key": "server", "value": "服务器端" }] + // } + // }, + // showIndex: { + // visible: propertyData.pagination?.enable || false, + // title: '显示页码', + // type: 'boolean' + // }, + // showLimits: { + // visible: propertyData.pagination?.enable || false, + // title: '显示分页条数', + // type: 'boolean' + // } + // } + // }; } -- Gitee From c92ae69a9546def9f434f29510f18dee889ae871 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 27 Aug 2025 17:28:34 +0800 Subject: [PATCH 093/109] build: optimize data grid --- .../column-filter/column-filter-container.component.tsx | 8 +++++--- packages/ui-vue/farris.config.mjs | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx b/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx index c357f42aeaa..96e56af9184 100644 --- a/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-filter/column-filter-container.component.tsx @@ -155,9 +155,11 @@ export default function ( function renderFilterContainer(headerCell: HeaderCell) { return (
-
- -
+ { + headerCell.status === HeaderCellStatus.sortable &&
+ +
+ }
{getLocaleValue('datagrid.filter.title')}
{useColumnFilterComposition.getFilterEditor(headerCell)}
diff --git a/packages/ui-vue/farris.config.mjs b/packages/ui-vue/farris.config.mjs index b844000049d..9e9b9358d34 100644 --- a/packages/ui-vue/farris.config.mjs +++ b/packages/ui-vue/farris.config.mjs @@ -28,7 +28,8 @@ export default { { find: '@', replacement: fileURLToPath(new URL('./', import.meta.url)) }, { find: '@/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, { find: '@farris/ui-vue/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, - { find: '@farris/mobile-ui-vue', replacement: fileURLToPath(new URL('./components', import.meta.url)) } + { find: '@farris/mobile-ui-vue', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, + { find: '@farris/ui-vue/locales', replacement: fileURLToPath(new URL('./locales', import.meta.url)) }, ], plugins: [ banner('Last Update Time: ' + currentTime()) -- Gitee From f06b97fe074da2f77ce5f367411c7938f402951c Mon Sep 17 00:00:00 2001 From: hyygzds Date: Wed, 27 Aug 2025 19:37:59 +0800 Subject: [PATCH 094/109] build: optimize data grid group schema --- .../components/data-grid/src/schema/data-grid.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json index 0e6a28aaf53..7963f539054 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid.schema.json @@ -274,7 +274,7 @@ "showSummary": { "description": "", "type": "boolean", - "default": true + "default": false }, "onFilterChange": { "description": "", -- Gitee From a448fbd77b54b3c5b818c60dc70c7f48c9069d30 Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 28 Aug 2025 10:14:28 +0800 Subject: [PATCH 095/109] build: import zhs locale --- packages/ui-vue/components/index.ts | 13 +- packages/ui-vue/components/locale/index.ts | 2 +- packages/ui-vue/farris.config.mjs | 3 +- packages/ui-vue/locales/designer/en.json | 557 ------------------- packages/ui-vue/locales/designer/zh-CHS.json | 557 ------------------- packages/ui-vue/locales/designer/zh-CHT.json | 553 ------------------ packages/ui-vue/locales/ui/en.json | 493 ---------------- packages/ui-vue/locales/ui/zh-CHS.json | 493 ---------------- packages/ui-vue/locales/ui/zh-CHT.json | 489 ---------------- packages/ui-vue/scripts/commands/build.js | 2 +- packages/ui-vue/tsconfig.json | 3 +- 11 files changed, 9 insertions(+), 3156 deletions(-) delete mode 100644 packages/ui-vue/locales/designer/en.json delete mode 100644 packages/ui-vue/locales/designer/zh-CHS.json delete mode 100644 packages/ui-vue/locales/designer/zh-CHT.json delete mode 100644 packages/ui-vue/locales/ui/en.json delete mode 100644 packages/ui-vue/locales/ui/zh-CHS.json delete mode 100644 packages/ui-vue/locales/ui/zh-CHT.json diff --git a/packages/ui-vue/components/index.ts b/packages/ui-vue/components/index.ts index 90868ec8207..aac1ce65d31 100644 --- a/packages/ui-vue/components/index.ts +++ b/packages/ui-vue/components/index.ts @@ -94,11 +94,9 @@ import JsonEditor from './json-editor'; import DynamicView from './dynamic-view'; import CodeEditor from './code-editor'; import HtmlTemplate from './html-template'; -import Locale from './locale'; +import Locale, { LocaleConfig } from './locale'; import '../public/assets/farris-all.css'; -import enLocale from '@farris/ui-vue/locales/ui/en.json'; -import chsLocale from '@farris/ui-vue/locales/ui/zh-CHS.json'; -import chtLocale from '@farris/ui-vue/locales/ui/zh-CHT.json'; +import zhChsLocale from '../public/assets/i18n/ui/zh-CHS.json'; // export all components modules export * from './components'; // export all designer components modules @@ -106,11 +104,10 @@ export * from './designer'; // 不注册设计时组件 export default { - install(app: App, options = { + install(app: App, options: LocaleConfig = { + locale: 'zh-CHS', localResources: { - en: enLocale, - 'zh-CHS': chsLocale, - 'zh-CHT': chtLocale + 'zh-CHS': zhChsLocale } }): void { app.use(Locale, options) diff --git a/packages/ui-vue/components/locale/index.ts b/packages/ui-vue/components/locale/index.ts index 951c09cc79b..6554e3800dc 100644 --- a/packages/ui-vue/components/locale/index.ts +++ b/packages/ui-vue/components/locale/index.ts @@ -16,7 +16,7 @@ import type { App, Plugin } from 'vue'; import { LocaleService, LOCALE_SERVICE_INJECTION_TOKEN, LocaleConfig } from './src/lib'; -export { LocaleService, LOCALE_SERVICE_INJECTION_TOKEN }; +export { LocaleService, LOCALE_SERVICE_INJECTION_TOKEN, type LocaleConfig }; export default { async install(app: App, config?: LocaleConfig): Promise { diff --git a/packages/ui-vue/farris.config.mjs b/packages/ui-vue/farris.config.mjs index 9e9b9358d34..b844000049d 100644 --- a/packages/ui-vue/farris.config.mjs +++ b/packages/ui-vue/farris.config.mjs @@ -28,8 +28,7 @@ export default { { find: '@', replacement: fileURLToPath(new URL('./', import.meta.url)) }, { find: '@/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, { find: '@farris/ui-vue/components', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, - { find: '@farris/mobile-ui-vue', replacement: fileURLToPath(new URL('./components', import.meta.url)) }, - { find: '@farris/ui-vue/locales', replacement: fileURLToPath(new URL('./locales', import.meta.url)) }, + { find: '@farris/mobile-ui-vue', replacement: fileURLToPath(new URL('./components', import.meta.url)) } ], plugins: [ banner('Last Update Time: ' + currentTime()) diff --git a/packages/ui-vue/locales/designer/en.json b/packages/ui-vue/locales/designer/en.json deleted file mode 100644 index 42197c4cda3..00000000000 --- a/packages/ui-vue/locales/designer/en.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "transfer": { - "selectedStart": "Selected: ", - "selectedEnd": " Items" - }, - "tabs": { - "more": "More", - "leftButton": "Left", - "rightButton": "Right", - "noData": "No data available" - }, - "section": { - "expandLabel": "Expand", - "collapseLabel": "Collapse" - }, - "schemaSelector": { - "search": "Please enter the name of the schema to search", - "emptyData": "No data", - "controller": { - "warning": "Please select a controller", - "title": "Controller List" - }, - "ok": "OK", - "cancel": "Cancel", - "required": "Please select a schema", - "title": "Schema List" - }, - "responseToolbar": { - "more": "More" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "Solution Name", - "setAsDefault": "Set as default", - "confirm": "OK", - "cancel": "Cancel", - "caption": "New", - "personal": "Personal solution", - "system": "System public solution", - "nameNotify": "Please enter solution name", - "authNotify": "You do not have permission to modify public solutions.", - "success": "Query solution saved successfully.", - "maxLength": "Solution name cannot exceed 100 characters, please modify" - }, - "manageDialog": { - "caption": "Solution Management", - "default": "Default", - "system": "System Public", - "saveAs": "Save As", - "save": "Save", - "manage": "Manage", - "isDefault": "Default Solution", - "code": "Name", - "type": "Type", - "private": "Personal", - "public": "System Public", - "org": "Organization Public", - "remove": "Delete" - }, - "configDialog": { - "caption": "Filter Configuration" - }, - "container": { - "filter": "Filter", - "default": "Default Filter Solution", - "clear": "Clear", - "require": "Please fill in {fields} before filtering" - } - }, - "mappgingEditor": { - "columns": { - "sourceField": "Source Field", - "targetField": "Target Field" - }, - "message": { - "noSelectItem": "Please select a field to delete!", - "confirmClear": "Are you sure you want to clear all mapping fields?", - "required": "Please fill in the mapping fields completely!", - "noDataSource": "Please set the data source!" - }, - "buttons": { - "ok": "OK", - "cancel": "Cancel", - "clear": "Clear", - "add": "Add", - "remove": "Delete" - }, - "title": "Mapping Editor" - }, - "fieldSelector": { - "message": { - "noSelectItem": "Please select a field!", - "noSetDataSource": "Please set a data source!" - }, - "ok": "Ok", - "cancel": "Cancel", - "title": "Field Selector" - }, - "expressionEditor": { - "title": "Expression Editor", - "buttons": { - "ok": "OK", - "cancel": "Cancel", - "clear": "Clear" - }, - "messagerType": { - "info": "Info", - "warning": "Warning", - "error": "Error" - }, - "tipLabel": "Tip Message:", - "variable": { - "dataEntity": "Data Entity", - "placeholder": "Please enter the name or code, press Enter to query", - "label": "Variable" - }, - "functions": { - "emptyMessage": "No matching items found", - "placeholder": "Please enter the function name, press Enter to query" - } - }, - "drawer": { - "cancel": "Cancel", - "confirm": "Confirm" - }, - "condition": { - "add": "Add condition", - "create": "Create condition group", - "reset": "Reset", - "and": "And", - "or": "Or" - }, - "avatar": { - "imgtitle": "Amend", - "typeError": "Type error", - "sizeError": "Can not be larger than", - "uploadError": "Upload Fail!", - "loadError": "Load error.", - "loading": "Loading" - }, - "timePicker": { - "placeholder": "Please select a time", - "time": { - "hour": "Hour", - "minute": "Minute", - "seconds": "Second" - } - }, - "pagination": { - "message": "Total {1} Items ", - "totalInfo": { - "firstText": "Total", - "lastText": "Items" - }, - "pageList": { - "firstText": "Display", - "lastText": "Items" - }, - "previous": "Previous", - "next": "Next", - "goto": { - "prefix": "Go to", - "suffix": "" - }, - "show": "Display" - }, - "numberSpinner": { - "placeholder": "Please enter the number", - "range": { - "begin": "Please enter the begin number", - "end": "Please enter the end number" - } - }, - "messageBox": { - "yes": "Yes", - "no": "No", - "ok": "OK", - "close": "Close", - "cancel": "Cancel", - "title": "System Information", - "errorTitle": "Error Information", - "prompt": { - "fontSize": { - "name": "Font Size", - "small": "Small", - "middle": "Middle", - "big": "Large", - "large": "Extra Large", - "huge": "Huge" - }, - "tips": { - "surplus": "You can also input {0} characters", - "length": "{0} characters have been entered" - } - }, - "exception": { - "expand": "Expand", - "collapse": "Collapse", - "happend": "Happened Time", - "detail": "Detail", - "copy": "Copy Details", - "copySuccess": "Copy Succeeded!", - "copyFailed": "Replication Failed!", - "roger": "OK" - } - }, - "lookup": { - "placeholder": "Please select", - "favorites": "Favorites", - "selected": "Selected Items", - "okText": "OK", - "cancelText": "Cancel", - "allColumns": "All Columns", - "datalist": "Data Items", - "mustWriteSomething": "Please enter a keyword to search.", - "mustChoosAdatarow": "Please select a record!", - "tipText": "Are these what you are looking for?", - "cascade": { - "enable": "Bidirectional Cascading", - "disable": "Disable Cascading", - "up": "Upward Cascading", - "down": "Downward Cascading" - }, - "includechildren": "Include Children", - "favoriteInfo": { - "addFav": "Collection Success.", - "cancelFav": "Unfavorite Successfully. ", - "addFavTitle": "Add to Favorite", - "cancelFavTitle": "Cancel Favorite" - }, - "getAllChilds": "Get All Children", - "contextMenu": { - "checkChildNodes": "Check Subordinate Nodes", - "uncheckChildNodes": "Uncheck Subordinate Nodes", - "expandall": "Expand All", - "collapseall": "Collapse All", - "expandByLayer": "Expand by Level", - "expand1": "Expand to Level 1", - "expand2": "Expand to Level 2", - "expand3": "Expand to Level 3", - "expand4": "Expand to Level 4", - "expand5": "Expand to Level 5", - "expand6": "Expand to Level 6", - "expand7": "Expand to Level 7", - "expand8": "Expand to Level 8", - "expand9": "Expand to Level 9" - }, - "quick": { - "notfind": "Search Content Not Found.", - "more": "Show More" - }, - "configError": "The help display column is not configured. Please check whether the help data source is configured correctly.", - "selectedInfo": { - "total": "Selected Items {0}", - "clear": "Cancel Selected", - "remove": "Delete ({0})", - "confirm": "Are you sure you want to cancel all selected records?" - }, - "clearAllConditions": "Clear All Conditions", - "anyFields": "All" - }, - "loading": { - "message": "Loading ..." - }, - "listView": { - "emptyMessage": "Empty Data" - }, - "filterConditionEditor": { - "cancelButton": "Cancel", - "okButton": "OK", - "addWhere": "Add", - "clear": "Clear", - "moveTop": "Top", - "moveUp": "Up", - "moveDown": "Down", - "moveBottom": "Bottom", - "leftBrackets": "Left Brackets", - "field": "Field Name", - "operator": "Operator", - "value": "Value", - "valueType": "Value type", - "expressType": { - "value": "Value", - "express": "Express", - "frontExpress": "Front Express" - }, - "rightBrackets": "Right Brackets", - "relation": "Relation", - "relationValue": { - "and": "And", - "or": "Or" - }, - "designTab": "Design", - "jsonTab": "JSON", - "sqlTab": "Sql", - "title": "Filter Designer", - "message": "Are you sure you want to clear all current data?", - "validate": { - "bracket": "The brackets do not match, please check", - "relation": "The condition relationship is incomplete, please check", - "field": "Condition field is not set, please check" - } - }, - "eventParameter": { - "title": "Parameter Editor", - "ok": "confirm", - "cancel": "cancel", - "workFlowClass": { - "title": "Please select a process category" - }, - "generalEditor": { - "field": "field", - "tabVar": "variable", - "form": "form components" - }, - "jsonEditor": { - "dialogTitle": "Configurable parameter editor", - "keyColumnTitle": "parameter", - "valueColumnTitle": "parameter value", - "addButtonText": "Add configuration parameters", - "keyColumnPlaceholder": "Please enter the parameters", - "error": "Expected array of parameter schema for JsonEditor, but received invalid JSON" - }, - "comboTree": { - "placeholder": "Please select" - } - }, - "datepicker": { - "dayLabels": { - "Sun": "Sun", - "Mon": "Mon", - "Tue": "Tue", - "Wed": "Wed", - "Thu": "Thu", - "Fri": "Fri", - "Sat": "Sat" - }, - "monthLabels": { - "1": "Jan", - "2": "Feb", - "3": "Mar", - "4": "Apr", - "5": "May", - "6": "Jun", - "7": "Jul", - "8": "Aug", - "9": "Sep", - "10": "Oct", - "11": "Nov", - "12": "Dec" - }, - "dateFormat": "MM/dd/yyyy", - "returnFormat": "MM/dd/yyyy", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "", - "timeBtnText": "Select Time", - "dateBtnText": "Select Date", - "commitBtnText": "OK", - "weekText": "Week", - "placeholder": "Please select a date", - "range": { - "begin": "Please select a begin date", - "end": "Please select an end date" - }, - "message": { - "101": "The end time must not be earlier than the start time.", - "102": "Only ${0} dates are allowed to be selected." - }, - "current": { - "today": "Today", - "week": "Current Week", - "month": "Current Month", - "year": "Current Year" - }, - "multiDatesLocale": { - "backtotoday": "Back to Today", - "clearSelections": "Clear All", - "delete": "Delete", - "selected": "Selected,Days" - }, - "quickSelectors": { - "today": "Today", - "yesterday": "Yesterday", - "tomorrow": "Tomorrow", - "thisMonday": "This Monday", - "nextMonday": "Next Monday", - "firstDayOfMonth": "First Day of Month", - "lastDayOfMonth": "Last Day of Month", - "firstDayOfLastMonth": "First Day of Last Month", - "lastDayOfLastMonth": "Last Day of Last Month", - "firstDayOfYear": "First Day of Year", - "lastDayOfYear": "Last Day of Year", - "firstDayOfQuarter": "First Day of Quarter", - "lastDayOfQuarter": "Last Day of Quarter", - "thisWeek": "This Week", - "lastWeek": "Last Week", - "nextWeek": "Next Week", - "past7Days": "Past 7 Days", - "past30Days": "Past 30 Days", - "thisMonth": "This Month", - "lastMonth": "Last Month", - "thisQuarter": "This Quarter", - "lastQuarter": "Last Quarter", - "thisYear": "This Year", - "lastYear": "Last Year", - "recent3Months": "Recent 3 Months", - "recent6Months": "Recent 6 Months" - } - }, - "datagrid": { - "lineNumberTitle": "NO.", - "emptyMessage": "Empty Data", - "pagination": { - "previousLabel": "Prev Page", - "nextLabel": "Next Page", - "message": "Total {1} Items", - "pagelist": { - "firstText": "Display", - "lastText": "items" - } - }, - "filter": { - "title": "Conditions", - "reset": "Reset", - "clear": "Clear", - "clearAll": "Clear All Conditions", - "setting": "Settings", - "nofilter": "[ Empty ]", - "checkAll": "Check All", - "and": "And", - "or": "Or", - "operators": { - "equal": "equal", - "notEqual": "not equal", - "greater": "greater than", - "greaterOrEqual": "greater than or equal", - "less": "less than", - "lessOrEqual": "less than or equal", - "contains": "contains", - "notContains": "not contains", - "like": "contains", - "notLike": "not contains", - "in": "in", - "notIn": "not in", - "empty": "empty", - "notEmpty": "not empty", - "null": "null", - "notNull": "not null" - }, - "more": "More", - "ok": "ok", - "cancel": "cancel", - "sevenDays": "Seven Days", - "oneMonth": "One Month", - "threeMonths": "Three Months", - "sixMonths": "Six Months" - }, - "settings": { - "visible": "Display Columns", - "sortting": "Sortting", - "title": "Column Settings", - "canchoose": "Can choose", - "choosed": "Choosed", - "asc": "ASC", - "desc": "DESC", - "cancelSort": "Cancel sortting", - "ok": "OK", - "cancel": "Cancel", - "reset": "Reset", - "conciseMode": "Concise", - "advancedMode": "Advanced", - "formatSetting": "Column format", - "properties": "Column properties", - "groupping": "Groupping", - "allColumns": "All", - "visibleColumns": "Visible", - "hiddenColumns": "Hidden", - "searchPlaceholder": "Please enter a column name", - "checkall": "Show or hide all", - "headeralign": "Header alignment", - "dataalign": "Data alignment", - "alignLeft": "Left", - "alignCenter": "Center", - "alignRight": "Right", - "summarytype": "Summary type", - "summarytext": "Summary text", - "summaryNone": "None", - "summarySum": "Sum", - "summaryMax": "Max", - "summaryMin": "Min", - "summarCount": "Count", - "summaryAverage": "Average", - "grouppingField": "Groupping field", - "moreGrouppingFieldWarningMessage": "Up to 3 fields are set for grouping", - "grouppingSummary": "Group total", - "addGrouppingFieldTip": "Add groupping field", - "removeGrouppingFieldTip": "Remove groupping field", - "grouppingSummaryType": "Group total type", - "grouppingSummaryText": "Group total text", - "restoreDefaultSettingsText": "Are you sure you want to restore the default settings", - "simple": { - "title": "Show Columns", - "tip": "The selected fields can be displayed in the list. Drag to adjust the display order in the list.", - "count": "show {0} columns" - } - }, - "selectionData": { - "clearAll": "Clear all", - "tooltip": "Click here show list.", - "currentLenth": "{0} items selected." - }, - "groupRow": { - "tips": "Drag columns here to group data.", - "removeColumn": "Remove the group column.", - "clearTip": "Clear all grouped fields.", - "clear": "Empty" - }, - "summary": { - "title": "Current Page Summary" - }, - "loadingMessage": "Loading", - "commandColumn": { - "title": "Operation", - "edit": "Edit", - "remove": "Remove", - "cancel": "Cancel", - "accept": "Accept" - } - }, - "operators": { - "equal": "Equal", - "notEqual": "Not equal", - "greater": "Greater than", - "greaterOrEqual": "Greater than or equal", - "less": "Less than", - "lessOrEqual": "Less than or equal", - "contains": "Contains", - "notContains": "Does not contain", - "like": "Contains", - "notLike": "Does not contain", - "in": "In", - "notIn": "Not in", - "empty": "Is empty", - "notEmpty": "Is not empty", - "null": "Null", - "notNull": "Not null", - "startWith": "Starts with", - "endWith": "Ends with", - "and": "And", - "or": "Or" - }, - "comboList": { - "remoteError": "The request method type is incorrect", - "placeholder": "Please select" - } -} \ No newline at end of file diff --git a/packages/ui-vue/locales/designer/zh-CHS.json b/packages/ui-vue/locales/designer/zh-CHS.json deleted file mode 100644 index 781b8b3b5d2..00000000000 --- a/packages/ui-vue/locales/designer/zh-CHS.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "transfer": { - "selectedStart": "已选:", - "selectedEnd": "项数据" - }, - "tabs": { - "more": "更多", - "leftButton": "向左", - "rightButton": "向左", - "noData": "没有相关数据" - }, - "section": { - "expandLabel": "展开", - "collapseLabel": "收起" - }, - "schemaSelector": { - "search": "请输入名称/编号搜索", - "emptyData": "暂无数据", - "controller": { - "warning": "请选择控制器", - "title": "控制器列表" - }, - "ok": "确定", - "cancel": "取消", - "required": "请选择数据源", - "title": "数据源列表" - }, - "responseToolbar": { - "more": "更多" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "方案名称", - "setAsDefault": "设为默认", - "confirm": "确定", - "cancel": "取消", - "caption": "新增方案", - "personal": "用户个人方案", - "system": "系统公共方案", - "nameNotify": "请填写方案名称", - "authNotify": "您暂无权限修改公共类型方案。", - "success": "查询方案保存成功。", - "maxLength": "方案名称最多100个字符,超出请修改" - }, - "manageDialog": { - "caption": "方案管理", - "default": "默认", - "system": "系统公共", - "saveAs": "另存为", - "save": "保存", - "manage": "管理", - "isDefault": "默认方案", - "code": "名称", - "type": "属性", - "private": "用户个人方案", - "public": "系统公共方案", - "org": "组织公共方案", - "remove": "删除" - }, - "configDialog": { - "caption": "筛选条件配置" - }, - "container": { - "filter": "筛选", - "default": "默认筛选方案", - "clear": "清空", - "require": "请填写{fields}再进行筛选" - } - }, - "mappgingEditor": { - "columns": { - "sourceField": "源字段", - "targetField": "目标字段" - }, - "message": { - "noSelectItem": "请选择要删除的字段!", - "confirmClear": "确定要清空所有映射字段吗?", - "required": "请将映射字段填写完整!", - "noDataSource": "请设置数据源!" - }, - "buttons": { - "ok": "确定", - "cancel": "取消", - "clear": "清空", - "add": "添加", - "remove": "删除" - }, - "title": "映射编辑器" - }, - "fieldSelector": { - "message": { - "noSelectItem": "请选择一个字段!", - "noSetDataSource": "请设置数据源!" - }, - "ok": "确定", - "cancel": "取消", - "title": "字段选择器" - }, - "expressionEditor": { - "title": "表达式编辑器", - "buttons": { - "ok": "确定", - "cancel": "取消", - "clear": "清空" - }, - "messagerType": { - "info": "提示", - "warning": "警告", - "error": "错误" - }, - "tipLabel": "提示信息:", - "variable": { - "dataEntity": "数据实体", - "placeholder": "请输入名称或编号,按回车查询", - "label": "变量" - }, - "functions": { - "emptyMessage": "没有与搜索条件匹配的项", - "placeholder": "请输入函数名称,按回车查询" - } - }, - "drawer": { - "cancel": "取消", - "confirm": "确定" - }, - "condition": { - "add": "添加条件", - "create": "生成条件组", - "reset": "重置", - "and": "与", - "or": "或" - }, - "avatar": { - "imgtitle": "点击修改", - "typeError": "上传图片类型不正确", - "sizeError": "上传图片不能大于", - "uploadError": "图片上传失败,请重试!", - "loadError": "加载错误", - "loading": "加载中" - }, - "timePicker": { - "placeholder": "请选择时间", - "time": { - "hour": "时", - "minute": "分", - "seconds": "秒" - } - }, - "pagination": { - "message": "共 {1} 条", - "totalInfo": { - "firstText": "共", - "lastText": "条" - }, - "pageList": { - "firstText": "每页", - "lastText": "条" - }, - "previous": "上一页", - "next": "下一页", - "goto": { - "prefix": "跳转至", - "suffix": "页" - }, - "show": "显示" - }, - "numberSpinner": { - "placeholder": "请输入数字", - "range": { - "begin": "请输入开始数字", - "end": "请输入结束数字" - } - }, - "messageBox": { - "yes": "是", - "no": "否", - "ok": "确定", - "close": "关闭", - "cancel": "取消", - "title": "系统提示", - "errorTitle": "错误提示", - "prompt": { - "fontSize": { - "name": "字体大小", - "small": "小", - "middle": "中", - "big": "大", - "large": "特大", - "huge": "超大" - }, - "tips": { - "surplus": "还可以输入 {0} 个字符", - "length": "已输入 {0} 个字符" - } - }, - "exception": { - "expand": "展开", - "collapse": "收起", - "happend": "发生时间", - "detail": "详细信息", - "copy": "复制详细信息", - "copySuccess": "复制成功", - "copyFailed": "复制失败", - "roger": "知道了" - } - }, - "lookup": { - "placeholder": "请选择", - "favorites": "收藏夹", - "selected": "已选数据", - "okText": "确定", - "cancelText": "取消", - "allColumns": "所有列", - "datalist": "数据列表", - "mustWriteSomething": "请输入关键字后查询。", - "mustChoosAdatarow": "请选择一条记录!", - "tipText": "您要找的是不是这些?", - "cascade": { - "enable": "同步选择", - "disable": "仅选择自身", - "up": "包含上级", - "down": "包含下级" - }, - "includechildren": "包含下级", - "favoriteInfo": { - "addFav": "已添加到收藏夹。", - "cancelFav": "已从收藏夹中移除。", - "addFavTitle": "收藏", - "cancelFavTitle": "取消收藏" - }, - "getAllChilds": "获取所有子级数据", - "contextMenu": { - "checkChildNodes": "勾选下级数据", - "uncheckChildNodes": "取消勾选下级数据", - "expandall": "全部展开", - "collapseall": "全部收起", - "expandByLayer": "按层级展开", - "expand1": "展开 1 级", - "expand2": "展开 2 级", - "expand3": "展开 3 级", - "expand4": "展开 4 级", - "expand5": "展开 5 级", - "expand6": "展开 6 级", - "expand7": "展开 7 级", - "expand8": "展开 8 级", - "expand9": "展开 9 级" - }, - "quick": { - "notfind": "未找到搜索内容", - "more": "显示更多" - }, - "configError": "帮助显示列未配置,请检查是否已正确配置帮助数据源! ", - "selectedInfo": { - "total": "已选 {0} 条", - "clear": "取消已选", - "remove": "移除 ({0})", - "confirm": "您确认要取消所有选中记录吗?" - }, - "clearAllConditions": "清除所有查询条件", - "anyFields": "全部" - }, - "loading": { - "message": "正在加载,请稍候..." - }, - "listView": { - "emptyMessage": "暂无数据" - }, - "filterConditionEditor": { - "cancelButton": "取消", - "okButton": "确定", - "addWhere": "添加子句", - "clear": "清空", - "moveTop": "置顶", - "moveUp": "上移", - "moveDown": "下移", - "moveBottom": "置底", - "leftBrackets": "左括号", - "field": "字段", - "operator": "操作符", - "value": "值", - "valueType": "值类型", - "expressType": { - "value": "值", - "express": "表达式", - "frontExpress": "表单表达式" - }, - "rightBrackets": "右括号", - "relation": "关系", - "relationValue": { - "and": "并且", - "or": "或者" - }, - "designTab": "设计器", - "jsonTab": "源代码", - "sqlTab": "Sql预览", - "title": "条件编辑器", - "message": "确认要清空当前所有数据吗?", - "validate": { - "bracket": "左右括号不匹配,请检查", - "relation": "条件关系不完整,请检查", - "field": "条件字段未设置,请检查" - } - }, - "eventParameter": { - "title": "参数编辑器", - "ok": "确定", - "cancel": "取消", - "workFlowClass": { - "title": "请选择流程分类" - }, - "generalEditor": { - "field": "字段", - "tabVar": "变量", - "form": "表单组件" - }, - "jsonEditor": { - "dialogTitle": "可配置参数编辑器", - "keyColumnTitle": "参数", - "valueColumnTitle": "参数值", - "addButtonText": "添加配置参数", - "keyColumnPlaceholder": "请输入参数", - "error": "JsonEditor的参数预期是数组,但收到无效的JSON" - }, - "comboTree": { - "placeholder": "请选择" - } - }, - "datepicker": { - "dayLabels": { - "Sun": "日", - "Mon": "一", - "Tue": "二", - "Wed": "三", - "Thu": "四", - "Fri": "五", - "Sat": "六" - }, - "monthLabels": { - "1": "一月", - "2": "二月", - "3": "三月", - "4": "四月", - "5": "五月", - "6": "六月", - "7": "七月", - "8": "八月", - "9": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月" - }, - "dateFormat": "yyyy-MM-dd", - "returnFormat": "yyyy-MM-dd", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "年", - "timeBtnText": "选择时间", - "dateBtnText": "选择日期", - "commitBtnText": "确定", - "weekText": "周", - "placeholder": "请选择日期", - "range": { - "begin": "请选择开始日期", - "end": "请选择结束日期" - }, - "message": { - "101": "结束时间不得早于开始时间!", - "102": "仅允许选择 ${0} 个日期" - }, - "current": { - "today": "今天", - "week": "本周", - "month": "本月", - "year": "今年" - }, - "multiDatesLocale": { - "backtotoday": "回到今天", - "clearSelections": "清空", - "delete": "删除", - "selected": "已选,天" - }, - "quickSelectors": { - "today": "今天", - "yesterday": "昨天", - "tomorrow": "明天", - "thisMonday": "本周一", - "nextMonday": "下周一", - "firstDayOfMonth": "本月初", - "lastDayOfMonth": "本月末", - "firstDayOfLastMonth": "上月初", - "lastDayOfLastMonth": "上月末", - "firstDayOfYear": "今年初", - "lastDayOfYear": "今年末", - "firstDayOfQuarter": "本季度初", - "lastDayOfQuarter": "本季度末", - "thisWeek": "本周", - "lastWeek": "上周", - "nextWeek": "下周", - "past7Days": "过去7天", - "past30Days": "过去30天", - "thisMonth": "本月", - "lastMonth": "上月", - "thisQuarter": "本季度", - "lastQuarter": "上季度", - "thisYear": "今年", - "lastYear": "去年", - "recent3Months": "最近3个月", - "recent6Months": "最近6个月" - } - }, - "datagrid": { - "lineNumberTitle": "序号", - "emptyMessage": "暂无数据", - "pagination": { - "previousLabel": "上一页", - "nextLabel": "下一页", - "message": "共 {1} 条", - "pagelist": { - "firstText": "显示", - "lastText": "条" - } - }, - "filter": { - "title": "筛选", - "reset": "重置", - "clear": "清空", - "clearAll": "清空所有条件", - "setting": "高级设置", - "nofilter": "[ 无 ]", - "checkAll": "全选", - "and": "并且", - "or": "或者", - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null" - }, - "more": "查看更多", - "ok": "确定", - "cancel": "取消", - "sevenDays": "七天", - "oneMonth": "一个月", - "threeMonths": "三个月", - "sixMonths": "半年" - }, - "settings": { - "visible": "显示列", - "sortting": "列排序", - "title": "列配置", - "canchoose": "可选列", - "choosed": "已选列", - "asc": "升序", - "desc": "降序", - "cancelSort": "取消排序", - "ok": "确定", - "cancel": "取消", - "reset": "恢复默认", - "conciseMode": "简洁模式", - "advancedMode": "高级模式", - "formatSetting": "列格式", - "properties": "列属性", - "groupping": "分组", - "allColumns": "所有列", - "visibleColumns": "可见列", - "hiddenColumns": "隐藏列", - "searchPlaceholder": "请输入列名称", - "checkall": "全部显示/隐藏", - "headeralign": "表头对齐", - "dataalign": "数据对齐", - "alignLeft": "左对齐", - "alignCenter": "居中对齐", - "alignRight": "右对齐", - "summarytype": "汇总合计类型", - "summarytext": "汇总合计文本", - "summaryNone": "无", - "summarySum": "求和", - "summaryMax": "最大值", - "summaryMin": "最小值", - "summarCount": "计数", - "summaryAverage": "平均值", - "grouppingField": "分组字段", - "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", - "grouppingSummary": "分组合计", - "addGrouppingFieldTip": "添加分组字段", - "removeGrouppingFieldTip": "移除分组字段", - "grouppingSummaryType": "分组合计类型", - "grouppingSummaryText": "分组合计文本", - "restoreDefaultSettingsText": "确认要恢复默认设置吗?", - "simple": { - "title": "显示列", - "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", - "count": "已显示 {0} 列" - } - }, - "selectionData": { - "clearAll": "清空", - "tooltip": "点击显示已选记录列表", - "currentLenth": "已选择:{0} 条" - }, - "groupRow": { - "tips": "拖动列到这儿可进行数据分组", - "removeColumn": "移除分组列", - "clearTip": "清除所有分组字段", - "clear": "清空" - }, - "summary": { - "title": "当页合计" - }, - "loadingMessage": "正在加载", - "commandColumn": { - "title": "操作", - "edit": "编辑", - "remove": "删除", - "cancel": "取消", - "accept": "确定" - } - }, - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null", - "startWith": "开始是", - "endWith": "结束是", - "and": "与", - "or": "或" - }, - "comboList": { - "remoteError": "请求方法类型不正确", - "placeholder": "请选择" - } -} \ No newline at end of file diff --git a/packages/ui-vue/locales/designer/zh-CHT.json b/packages/ui-vue/locales/designer/zh-CHT.json deleted file mode 100644 index 7763e1b61a0..00000000000 --- a/packages/ui-vue/locales/designer/zh-CHT.json +++ /dev/null @@ -1,553 +0,0 @@ -{ - "transfer": { - "selectedStart": "已選:", - "selectedEnd": "項數據" - }, - "tabs": { - "more": "更多", - "leftButton": "向左", - "rightButton": "向左", - "noData": "沒有相關數據" - }, - "section": { - "expandLabel": "展開", - "collapseLabel": "收起" - }, - "schemaSelector": { - "search": "請輸入名稱/編號搜索", - "emptyData": "暫無數據", - "controller": { - "warning": "請選擇控制器", - "title": "控制器列表" - }, - "ok": "確定", - "cancel": "取消", - "required": "請選擇數據源", - "title": "數據源列表" - }, - "responseToolbar": { - "more": "更多" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "方案名稱", - "setAsDefault": "設為預設", - "confirm": "確定", - "cancel": "取消", - "caption": "新增方案", - "personal": "使用者個人方案", - "system": "系統公共方案", - "nameNotify": "請填寫方案名稱", - "authNotify": "您暫無權限修改公共類型方案。", - "success": "查詢方案儲存成功。", - "maxLength": "方案名稱最多100個字元,超出請修改" - }, - "manageDialog": { - "caption": "方案管理", - "default": "預設", - "system": "系統公共", - "saveAs": "另存為", - "save": "保存", - "manage": "管理", - "isDefault": "預設方案", - "code": "名稱", - "type": "屬性", - "private": "用戶個人方案", - "public": "系統公共方案", - "org": "組織公共方案", - "remove": "刪除" - }, - "configDialog": { - "caption": "篩選條件配置" - }, - "container": { - "filter": "篩選", - "default": "默認篩選方案", - "clear": "清空", - "require": "請填寫{fields}再進行篩選" - } - }, - "mappgingEditor": { - "columns": { - "sourceField": "源字段", - "targetField": "目標字段" - }, - "message": { - "noSelectItem": "請選擇要刪除的字段!", - "confirmClear": "確定要清空所有映射字段嗎?", - "required": "請將映射字段填寫完整!", - "noDataSource": "請設置數據源!" - }, - "buttons": { - "ok": "確定", - "cancel": "取消", - "clear": "清空", - "add": "添加", - "remove": "刪除" - }, - "title": "映射編輯器" - }, - "fieldSelector": { - "message": { - "noSelectItem": "請選擇壹個字段!", - "noSetDataSource": "請設置數據源!" - }, - "ok": "確定", - "cancel": "取消", - "title": "字段選擇器" - }, - "expressionEditor": { - "title": "表達式編輯器", - "buttons": { - "ok": "確定", - "cancel": "取消", - "clear": "清空" - }, - "messagerType": { - "info": "提示", - "warning": "警告", - "error": "錯誤" - }, - "tipLabel": "提示信息:", - "variable": { - "dataEntity": "資料實體", - "placeholder": "請輸入名稱或編號,按 Enter 查詢", - "label": "變數" - }, - "functions": { - "emptyMessage": "沒有與搜索條件匹配的項", - "placeholder": "請輸入函數名稱,按 Enter 查詢" - } - }, - "drawer": { - "cancel": "取消", - "confirm": "確定" - }, - "condition": { - "add": "新增條件", - "create": "建立條件群組", - "reset": "重設", - "and": "且", - "or": "或" - }, - "avatar": { - "imgtitle": "點擊修改", - "typeError": "上傳圖片類型不正確", - "sizeError": "上傳圖片不能大於", - "uploadError": "圖片上傳失敗,請重試!", - "loadError": "加載錯誤", - "loading": "加載中" - }, - "timePicker": { - "placeholder": "請選擇時間", - "time": { - "hour": "時", - "minute": "分", - "seconds": "秒" - } - }, - "pagination": { - "message": "共 {1} 條 ", - "totalInfo": { - "firstText": "共", - "lastText": "條" - }, - "pageList": { - "firstText": "每頁", - "lastText": "條" - }, - "previous": "上一頁", - "next": "下一頁", - "goto": { - "prefix": "跳轉至", - "suffix": "頁" - }, - "show": "顯示" - }, - "numberSpinner": { - "placeholder": "請輸入數字", - "range": { - "begin": "請輸入開始數字", - "end": "請輸入結束數字" - } - }, - "messageBox": { - "yes": "是", - "no": "否", - "ok": "確定", - "close": "關閉", - "cancel": "取消", - "title": "係統提示", - "errorTitle": "錯誤提示", - "prompt": { - "fontSize": { - "name": "字體大小", - "small": "小", - "middle": "中", - "big": "大", - "large": "特大", - "huge": "超大" - } - }, - "exception": { - "expand": "展開", - "collapse": "收起", - "happend": "發生時間", - "detail": "詳細信息", - "copy": "複制詳細信息", - "copySuccess": "複制成功", - "copyFailed": "複制失敗", - "roger": "知道了" - } - }, - "lookup": { - "placeholder": "請選擇", - "favorites": "收藏夾", - "selected": "已選數據", - "okText": "確定", - "cancelText": "取消", - "allColumns": "所有列", - "datalist": "數據列錶", - "mustWriteSomething": "請輸入關鍵字後查詢。", - "mustChoosAdatarow": "請選擇一條記錄!", - "tipText": "您要找的是不是這些?", - "cascade": { - "enable": "同步選擇", - "disable": "僅選擇自身", - "up": "包含上級", - "down": "包含下級" - }, - "includechildren": "包含下級", - "favoriteInfo": { - "addFav": "已添加到收藏夾。", - "cancelFav": "已從收藏夾中移除。", - "addFavTitle": "收藏", - "cancelFavTitle": "取消收藏" - }, - "getAllChilds": "獲取所有子級數據", - "contextMenu": { - "checkChildNodes": "勾選下級數據", - "uncheckChildNodes": "取消勾選下級數據", - "expandall": "全部展開", - "collapseall": "全部收起", - "expandByLayer": "按層級展開", - "expand1": "展開 1 級", - "expand2": "展開 2 級", - "expand3": "展開 3 級", - "expand4": "展開 4 級", - "expand5": "展開 5 級", - "expand6": "展開 6 級", - "expand7": "展開 7 級", - "expand8": "展開 8 級", - "expand9": "展開 9 級" - }, - "quick": { - "notfind": "未找到搜索內容", - "more": "顯示更多" - }, - "configError": "幫助顯示列未配置,請檢查是否已正確配置幫助數據源!", - "selectedInfo": { - "total": "已選 {0} 條", - "clear": "取消已選", - "remove": "移除 ({0})", - "confirm": "您確認要取消所有選中記錄嗎?" - }, - "clearAllConditions": "清除所有查詢條件", - "anyFields": "全部" - }, - "loading": { - "message": "正在加載,請稍候..." - }, - "listView": { - "emptyMessage": "暫無數據" - }, - "filterConditionEditor": { - "cancelButton": "取消", - "okButton": "確定", - "addWhere": "添加子句", - "clear": "清空", - "moveTop": "置頂", - "moveUp": "上移", - "moveDown": "下移", - "moveBottom": "置底", - "leftBrackets": "左括號", - "field": "字段", - "operator": "操作符", - "value": "值", - "valueType": "值類型", - "expressType": { - "value": "值", - "express": "錶達式", - "frontExpress": "表單表達式" - }, - "rightBrackets": "右括號", - "relation": "關係", - "relationValue": { - "and": "並且", - "or": "或者" - }, - "designTab": "設計器", - "jsonTab": "源代碼", - "sqlTab": "Sql預覽", - "title": "條件編輯器", - "message": "確認要清空當前所有數據嗎?", - "validate": { - "bracket": "左右括號不匹配,請檢查", - "relation": "條件關系不完整,請檢查", - "field": "條件字段未設置,請檢查" - } - }, - "eventParameter": { - "title": "參數編輯器", - "ok": "確定", - "cancel": "取消", - "workFlowClass": { - "title": "請選擇流程分類" - }, - "generalEditor": { - "field": "欄位", - "tabVar": "變數", - "form": "表單元件" - }, - "jsonEditor": { - "dialogTitle": "可配置參數編輯器", - "keyColumnTitle": "參數", - "valueColumnTitle": "參數值", - "addButtonText": "添加配置參數", - "keyColumnPlaceholder": "請輸入參數", - "error": "JsonEditor的參數預期是數位,但收到無效的JSON" - }, - "comboTree": { - "placeholder": "請選擇" - } - }, - "datepicker": { - "dayLabels": { - "Sun": "日", - "Mon": "一", - "Tue": "二", - "Wed": "三", - "Thu": "四", - "Fri": "五", - "Sat": "六" - }, - "monthLabels": { - "1": "一月", - "2": "二月", - "3": "三月", - "4": "四月", - "5": "五月", - "6": "六月", - "7": "七月", - "8": "八月", - "9": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月" - }, - "dateFormat": "yyyy-MM-dd", - "returnFormat": "yyyy-MM-dd", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "年", - "timeBtnText": "選擇時間", - "dateBtnText": "選擇日期", - "commitBtnText": "確認", - "weekText": "周", - "placeholder": "請選擇日期", - "range": { - "begin": "請選擇開始日期", - "end": "請選擇結束日期" - }, - "message": { - "101": "結束時間不得早于開始時間!", - "102": "僅允許選擇 ${0} 個日期" - }, - "current": { - "today": "今天", - "month": "本月", - "week": "本周", - "year": "今年" - }, - "multiDatesLocale": { - "backtotoday": "回到今天", - "clearSelections": "清空", - "delete": "刪除", - "selected": "已選,天" - }, - "quickSelectors": { - "today": "今天", - "yesterday": "昨天", - "tomorrow": "明天", - "thisMonday": "本周壹", - "nextMonday": "下周壹", - "firstDayOfMonth": "本月初", - "lastDayOfMonth": "本月末", - "firstDayOfLastMonth": "上月初", - "lastDayOfLastMonth": "上月末", - "firstDayOfYear": "今年初", - "lastDayOfYear": "今年末", - "firstDayOfQuarter": "本季度初", - "lastDayOfQuarter": "本季度末", - "thisWeek": "本周", - "lastWeek": "上周", - "nextWeek": "下周", - "past7Days": "過去7天", - "past30Days": "過去30天", - "thisMonth": "本月", - "lastMonth": "上月", - "thisQuarter": "本季度", - "lastQuarter": "上季度", - "thisYear": "今年", - "lastYear": "去年", - "recent3Months": "最近3個月", - "recent6Months": "最近6個月" - } - }, - "datagrid": { - "lineNumberTitle": "序號", - "emptyMessage": "暫無數據", - "pagination": { - "previousLabel": "上一頁", - "nextLabel": "下一頁", - "message": "共 {1} 條", - "pagelist": { - "firstText": "顯示", - "lastText": "條" - } - }, - "filter": { - "title": "過濾條件", - "reset": "重置", - "clear": "清空條件", - "clearAll": "清空所有條件", - "setting": "高級設置", - "nofilter": "[ 無 ]", - "checkAll": "全選", - "and": "並且", - "or": "或者", - "operators": { - "equal": "等於", - "notEqual": "不等於", - "greater": "大於", - "greaterOrEqual": "大於等於", - "less": "小於", - "lessOrEqual": "小於等於", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "屬於", - "notIn": "不屬於", - "empty": "為空", - "notEmpty": "不為空", - "null": "null", - "notNull": "不為null" - }, - "more": "查看更多", - "ok": "確定", - "cancel": "取消", - "sevenDays": "七天", - "oneMonth": "一個月", - "threeMonths": "三個月", - "sixMonths": "半年" - }, - "settings": { - "visible": "顯示列", - "sortting": "列排序", - "title": "列配置", - "canchoose": "可選列", - "choosed": "已選列", - "asc": "升序", - "desc": "降序", - "cancelSort": "取消排序", - "ok": "確定", - "cancel": "取消", - "reset": "恢複默認", - "conciseMode": "簡潔模式", - "advancedMode": "高級模式", - "formatSetting": "列格式", - "properties": "列屬性", - "groupping": "分組", - "allColumns": "所有列", - "visibleColumns": "可見列", - "hiddenColumns": "隱藏列", - "searchPlaceholder": "請輸入列名稱", - "checkall": "全部顯示/隱藏", - "headeralign": "表頭對齊", - "dataalign": "數據對齊", - "alignLeft": "左對齊", - "alignCenter": "居中對齊", - "alignRight": "右對齊", - "summarytype": "匯總合計類型", - "summarytext": "匯總合計文本", - "summaryNone": "無", - "summarySum": "求和", - "summaryMax": "最大值", - "summaryMin": "最小值", - "summarCount": "計數", - "summaryAverage": "平均值", - "grouppingField": "分組字段", - "moreGrouppingFieldWarningMessage": "最多設置3個字段進行分組", - "grouppingSummary": "分組合計", - "addGrouppingFieldTip": "添加分組字段", - "removeGrouppingFieldTip": "移除分組字段", - "grouppingSummaryType": "分組合計類型e", - "grouppingSummaryText": "分組合計文本", - "restoreDefaultSettingsText": "確認要恢複默認設置嗎", - "simple": { - "title": "顯示列", - "tip": "選中的字段可展示到列表中,拖拽可調整在列表中的展示順序。", - "count": "已顯示 {0} 列" - } - }, - "selectionData": { - "clearAll": "清空", - "tooltip": "點擊顯示已選記錄列錶", - "currentLenth": "已選擇:{0} 條" - }, - "groupRow": { - "tips": "拖動列到這兒可進行數據分組", - "removeColumn": "移除分組列", - "clearTip": "清除所有分組字段", - "clear": "清空" - }, - "summary": { - "title": "當頁合計" - }, - "loadingMessage": "正在載入", - "commandColumn": { - "title": "操作", - "edit": "編輯", - "remove": "刪除", - "cancel": "取消", - "accept": "確定" - } - }, - "operators": { - "equal": "等於", - "notEqual": "不等於", - "greater": "大於", - "greaterOrEqual": "大於等於", - "less": "小於", - "lessOrEqual": "小於等於", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "屬於", - "notIn": "不屬於", - "empty": "為空", - "notEmpty": "不為空", - "null": "null", - "notNull": "不為null", - "startWith": "開始於", - "endWith": "結束於", - "and": "且", - "or": "或" - }, - "comboList": { - "remoteError": "請求方法類型不正確", - "placeholder": "請選擇" - } -} \ No newline at end of file diff --git a/packages/ui-vue/locales/ui/en.json b/packages/ui-vue/locales/ui/en.json deleted file mode 100644 index ac2e1109320..00000000000 --- a/packages/ui-vue/locales/ui/en.json +++ /dev/null @@ -1,493 +0,0 @@ -{ - "transfer": { - "selectedStart": "Selected: ", - "selectedEnd": " Items" - }, - "timePicker": { - "placeholder": "Please select a time", - "time": { - "hour": "Hour", - "minute": "Minute", - "seconds": "Second" - } - }, - "tabs": { - "more": "More", - "leftButton": "Left", - "rightButton": "Right", - "noData": "No data available" - }, - "section": { - "expandLabel": "Expand", - "collapseLabel": "Collapse" - }, - "responseToolbar": { - "more": "More" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "Solution Name", - "setAsDefault": "Set as default", - "confirm": "OK", - "cancel": "Cancel", - "caption": "New", - "personal": "Personal solution", - "system": "System public solution", - "nameNotify": "Please enter solution name", - "authNotify": "You do not have permission to modify public solutions.", - "success": "Query solution saved successfully.", - "maxLength": "Solution name cannot exceed 100 characters, please modify" - }, - "manageDialog": { - "caption": "Solution Management", - "default": "Default", - "system": "System Public", - "saveAs": "Save As", - "save": "Save", - "manage": "Manage", - "isDefault": "Default Solution", - "code": "Name", - "type": "Type", - "private": "Personal", - "public": "System Public", - "org": "Organization Public", - "remove": "Delete" - }, - "configDialog": { - "caption": "Filter Configuration" - }, - "container": { - "filter": "Filter", - "default": "Default Filter Solution", - "clear": "Clear", - "require": "Please fill in {fields} before filtering" - } - }, - "pagination": { - "message": "Total {1} Items ", - "totalInfo": { - "firstText": "Total", - "lastText": "Items" - }, - "pageList": { - "firstText": "Display", - "lastText": "Items" - }, - "previous": "Previous", - "next": "Next", - "goto": { - "prefix": "Go to", - "suffix": "" - }, - "show": "Display" - }, - "numberSpinner": { - "placeholder": "Please enter the number", - "range": { - "begin": "Please enter the begin number", - "end": "Please enter the end number" - } - }, - "messageBox": { - "yes": "Yes", - "no": "No", - "ok": "OK", - "close": "Close", - "cancel": "Cancel", - "title": "System Information", - "errorTitle": "Error Information", - "prompt": { - "fontSize": { - "name": "Font Size", - "small": "Small", - "middle": "Middle", - "big": "Large", - "large": "Extra Large", - "huge": "Huge" - }, - "tips": { - "surplus": "You can also input {0} characters", - "length": "{0} characters have been entered" - } - }, - "exception": { - "expand": "Expand", - "collapse": "Collapse", - "happend": "Happened Time", - "detail": "Detail", - "copy": "Copy Details", - "copySuccess": "Copy Succeeded!", - "copyFailed": "Replication Failed!", - "roger": "OK" - } - }, - "lookup": { - "placeholder": "Please select", - "favorites": "Favorites", - "selected": "Selected Items", - "okText": "OK", - "cancelText": "Cancel", - "allColumns": "All Columns", - "datalist": "Data Items", - "mustWriteSomething": "Please enter a keyword to search.", - "mustChoosAdatarow": "Please select a record!", - "tipText": "Are these what you are looking for?", - "cascade": { - "enable": "Bidirectional Cascading", - "disable": "Disable Cascading", - "up": "Upward Cascading", - "down": "Downward Cascading" - }, - "includechildren": "Include Children", - "favoriteInfo": { - "addFav": "Collection Success.", - "cancelFav": "Unfavorite Successfully. ", - "addFavTitle": "Add to Favorite", - "cancelFavTitle": "Cancel Favorite" - }, - "getAllChilds": "Get All Children", - "contextMenu": { - "checkChildNodes": "Check Subordinate Nodes", - "uncheckChildNodes": "Uncheck Subordinate Nodes", - "expandall": "Expand All", - "collapseall": "Collapse All", - "expandByLayer": "Expand by Level", - "expand1": "Expand to Level 1", - "expand2": "Expand to Level 2", - "expand3": "Expand to Level 3", - "expand4": "Expand to Level 4", - "expand5": "Expand to Level 5", - "expand6": "Expand to Level 6", - "expand7": "Expand to Level 7", - "expand8": "Expand to Level 8", - "expand9": "Expand to Level 9" - }, - "quick": { - "notfind": "Search Content Not Found.", - "more": "Show More" - }, - "configError": "The help display column is not configured. Please check whether the help data source is configured correctly.", - "selectedInfo": { - "total": "Selected Items {0}", - "clear": "Cancel Selected", - "remove": "Delete ({0})", - "confirm": "Are you sure you want to cancel all selected records?" - }, - "clearAllConditions": "Clear All Conditions", - "anyFields": "All" - }, - "loading": { - "message": "Loading ..." - }, - "listView": { - "emptyMessage": "Empty Data" - }, - "filterConditionEditor": { - "cancelButton": "Cancel", - "okButton": "OK", - "addWhere": "Add", - "clear": "Clear", - "moveTop": "Top", - "moveUp": "Up", - "moveDown": "Down", - "moveBottom": "Bottom", - "leftBrackets": "Left Brackets", - "field": "Field Name", - "operator": "Operator", - "value": "Value", - "valueType": "Value type", - "expressType": { - "value": "Value", - "express": "Express", - "frontExpress": "Front Express" - }, - "rightBrackets": "Right Brackets", - "relation": "Relation", - "relationValue": { - "and": "And", - "or": "Or" - }, - "designTab": "Design", - "jsonTab": "JSON", - "sqlTab": "Sql", - "title": "Filter Designer", - "message": "Are you sure you want to clear all current data?", - "validate": { - "bracket": "The brackets do not match, please check", - "relation": "The condition relationship is incomplete, please check", - "field": "Condition field is not set, please check" - } - }, - "eventParameter": { - "title": "Parameter Editor", - "ok": "confirm", - "cancel": "cancel", - "workFlowClass": { - "title": "Please select a process category" - }, - "generalEditor": { - "field": "field", - "tabVar": "variable", - "form": "form components" - }, - "jsonEditor": { - "dialogTitle": "Configurable parameter editor", - "keyColumnTitle": "parameter", - "valueColumnTitle": "parameter value", - "addButtonText": "Add configuration parameters", - "keyColumnPlaceholder": "Please enter the parameters", - "error": "Expected array of parameter schema for JsonEditor, but received invalid JSON" - }, - "comboTree": { - "placeholder": "Please select" - } - }, - "drawer": { - "cancel": "Cancel", - "confirm": "Confirm" - }, - "datepicker": { - "dayLabels": { - "Sun": "Sun", - "Mon": "Mon", - "Tue": "Tue", - "Wed": "Wed", - "Thu": "Thu", - "Fri": "Fri", - "Sat": "Sat" - }, - "monthLabels": { - "1": "Jan", - "2": "Feb", - "3": "Mar", - "4": "Apr", - "5": "May", - "6": "Jun", - "7": "Jul", - "8": "Aug", - "9": "Sep", - "10": "Oct", - "11": "Nov", - "12": "Dec" - }, - "dateFormat": "MM/dd/yyyy", - "returnFormat": "MM/dd/yyyy", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "", - "timeBtnText": "Select Time", - "dateBtnText": "Select Date", - "commitBtnText": "OK", - "weekText": "Week", - "placeholder": "Please select a date", - "range": { - "begin": "Please select a begin date", - "end": "Please select an end date" - }, - "message": { - "101": "The end time must not be earlier than the start time.", - "102": "Only ${0} dates are allowed to be selected." - }, - "current": { - "today": "Today", - "week": "Current Week", - "month": "Current Month", - "year": "Current Year" - }, - "multiDatesLocale": { - "backtotoday": "Back to Today", - "clearSelections": "Clear All", - "delete": "Delete", - "selected": "Selected,Days" - }, - "quickSelectors": { - "today": "Today", - "yesterday": "Yesterday", - "tomorrow": "Tomorrow", - "thisMonday": "This Monday", - "nextMonday": "Next Monday", - "firstDayOfMonth": "First Day of Month", - "lastDayOfMonth": "Last Day of Month", - "firstDayOfLastMonth": "First Day of Last Month", - "lastDayOfLastMonth": "Last Day of Last Month", - "firstDayOfYear": "First Day of Year", - "lastDayOfYear": "Last Day of Year", - "firstDayOfQuarter": "First Day of Quarter", - "lastDayOfQuarter": "Last Day of Quarter", - "thisWeek": "This Week", - "lastWeek": "Last Week", - "nextWeek": "Next Week", - "past7Days": "Past 7 Days", - "past30Days": "Past 30 Days", - "thisMonth": "This Month", - "lastMonth": "Last Month", - "thisQuarter": "This Quarter", - "lastQuarter": "Last Quarter", - "thisYear": "This Year", - "lastYear": "Last Year", - "recent3Months": "Recent 3 Months", - "recent6Months": "Recent 6 Months" - } - }, - "datagrid": { - "lineNumberTitle": "NO.", - "emptyMessage": "Empty Data", - "pagination": { - "previousLabel": "Prev Page", - "nextLabel": "Next Page", - "message": "Total {1} Items", - "pagelist": { - "firstText": "Display", - "lastText": "items" - } - }, - "filter": { - "title": "Conditions", - "reset": "Reset", - "clear": "Clear", - "clearAll": "Clear All Conditions", - "setting": "Settings", - "nofilter": "[ Empty ]", - "checkAll": "Check All", - "and": "And", - "or": "Or", - "operators": { - "equal": "equal", - "notEqual": "not equal", - "greater": "greater than", - "greaterOrEqual": "greater than or equal", - "less": "less than", - "lessOrEqual": "less than or equal", - "contains": "contains", - "notContains": "not contains", - "like": "contains", - "notLike": "not contains", - "in": "in", - "notIn": "not in", - "empty": "empty", - "notEmpty": "not empty", - "null": "null", - "notNull": "not null" - }, - "more": "More", - "ok": "ok", - "cancel": "cancel", - "sevenDays": "Seven Days", - "oneMonth": "One Month", - "threeMonths": "Three Months", - "sixMonths": "Six Months" - }, - "settings": { - "visible": "Display Columns", - "sortting": "Sortting", - "title": "Column Settings", - "canchoose": "Can choose", - "choosed": "Choosed", - "asc": "ASC", - "desc": "DESC", - "cancelSort": "Cancel sortting", - "ok": "OK", - "cancel": "Cancel", - "reset": "Reset", - "conciseMode": "Concise", - "advancedMode": "Advanced", - "formatSetting": "Column format", - "properties": "Column properties", - "groupping": "Groupping", - "allColumns": "All", - "visibleColumns": "Visible", - "hiddenColumns": "Hidden", - "searchPlaceholder": "Please enter a column name", - "checkall": "Show or hide all", - "headeralign": "Header alignment", - "dataalign": "Data alignment", - "alignLeft": "Left", - "alignCenter": "Center", - "alignRight": "Right", - "summarytype": "Summary type", - "summarytext": "Summary text", - "summaryNone": "None", - "summarySum": "Sum", - "summaryMax": "Max", - "summaryMin": "Min", - "summarCount": "Count", - "summaryAverage": "Average", - "grouppingField": "Groupping field", - "moreGrouppingFieldWarningMessage": "Up to 3 fields are set for grouping", - "grouppingSummary": "Group total", - "addGrouppingFieldTip": "Add groupping field", - "removeGrouppingFieldTip": "Remove groupping field", - "grouppingSummaryType": "Group total type", - "grouppingSummaryText": "Group total text", - "restoreDefaultSettingsText": "Are you sure you want to restore the default settings", - "simple": { - "title": "Show Columns", - "tip": "The selected fields can be displayed in the list. Drag to adjust the display order in the list.", - "count": "show {0} columns" - } - }, - "selectionData": { - "clearAll": "Clear all", - "tooltip": "Click here show list.", - "currentLenth": "{0} items selected." - }, - "groupRow": { - "tips": "Drag columns here to group data.", - "removeColumn": "Remove the group column.", - "clearTip": "Clear all grouped fields.", - "clear": "Empty" - }, - "summary": { - "title": "Current Page Summary" - }, - "loadingMessage": "Loading", - "commandColumn": { - "title": "Operation", - "edit": "Edit", - "remove": "Remove", - "cancel": "Cancel", - "accept": "Accept" - } - }, - "condition": { - "add": "Add condition", - "create": "Create condition group", - "reset": "Reset", - "and": "And", - "or": "Or" - }, - "operators": { - "equal": "Equal", - "notEqual": "Not equal", - "greater": "Greater than", - "greaterOrEqual": "Greater than or equal", - "less": "Less than", - "lessOrEqual": "Less than or equal", - "contains": "Contains", - "notContains": "Does not contain", - "like": "Contains", - "notLike": "Does not contain", - "in": "In", - "notIn": "Not in", - "empty": "Is empty", - "notEmpty": "Is not empty", - "null": "Null", - "notNull": "Not null", - "startWith": "Starts with", - "endWith": "Ends with", - "and": "And", - "or": "Or" - }, - "comboList": { - "remoteError": "The request method type is incorrect", - "placeholder": "Please select" - }, - "avatar": { - "imgtitle": "Amend", - "typeError": "Type error", - "sizeError": "Can not be larger than", - "uploadError": "Upload Fail!", - "loadError": "Load error.", - "loading": "Loading" - } -} \ No newline at end of file diff --git a/packages/ui-vue/locales/ui/zh-CHS.json b/packages/ui-vue/locales/ui/zh-CHS.json deleted file mode 100644 index 406cdd0ef60..00000000000 --- a/packages/ui-vue/locales/ui/zh-CHS.json +++ /dev/null @@ -1,493 +0,0 @@ -{ - "transfer": { - "selectedStart": "已选:", - "selectedEnd": "项数据" - }, - "timePicker": { - "placeholder": "请选择时间", - "time": { - "hour": "时", - "minute": "分", - "seconds": "秒" - } - }, - "tabs": { - "more": "更多", - "leftButton": "向左", - "rightButton": "向左", - "noData": "没有相关数据" - }, - "section": { - "expandLabel": "展开", - "collapseLabel": "收起" - }, - "responseToolbar": { - "more": "更多" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "方案名称", - "setAsDefault": "设为默认", - "confirm": "确定", - "cancel": "取消", - "caption": "新增方案", - "personal": "用户个人方案", - "system": "系统公共方案", - "nameNotify": "请填写方案名称", - "authNotify": "您暂无权限修改公共类型方案。", - "success": "查询方案保存成功。", - "maxLength": "方案名称最多100个字符,超出请修改" - }, - "manageDialog": { - "caption": "方案管理", - "default": "默认", - "system": "系统公共", - "saveAs": "另存为", - "save": "保存", - "manage": "管理", - "isDefault": "默认方案", - "code": "名称", - "type": "属性", - "private": "用户个人方案", - "public": "系统公共方案", - "org": "组织公共方案", - "remove": "删除" - }, - "configDialog": { - "caption": "筛选条件配置" - }, - "container": { - "filter": "筛选", - "default": "默认筛选方案", - "clear": "清空", - "require": "请填写{fields}再进行筛选" - } - }, - "pagination": { - "message": "共 {1} 条", - "totalInfo": { - "firstText": "共", - "lastText": "条" - }, - "pageList": { - "firstText": "每页", - "lastText": "条" - }, - "previous": "上一页", - "next": "下一页", - "goto": { - "prefix": "跳转至", - "suffix": "页" - }, - "show": "显示" - }, - "numberSpinner": { - "placeholder": "请输入数字", - "range": { - "begin": "请输入开始数字", - "end": "请输入结束数字" - } - }, - "messageBox": { - "yes": "是", - "no": "否", - "ok": "确定", - "close": "关闭", - "cancel": "取消", - "title": "系统提示", - "errorTitle": "错误提示", - "prompt": { - "fontSize": { - "name": "字体大小", - "small": "小", - "middle": "中", - "big": "大", - "large": "特大", - "huge": "超大" - }, - "tips": { - "surplus": "还可以输入 {0} 个字符", - "length": "已输入 {0} 个字符" - } - }, - "exception": { - "expand": "展开", - "collapse": "收起", - "happend": "发生时间", - "detail": "详细信息", - "copy": "复制详细信息", - "copySuccess": "复制成功", - "copyFailed": "复制失败", - "roger": "知道了" - } - }, - "lookup": { - "placeholder": "请选择", - "favorites": "收藏夹", - "selected": "已选数据", - "okText": "确定", - "cancelText": "取消", - "allColumns": "所有列", - "datalist": "数据列表", - "mustWriteSomething": "请输入关键字后查询。", - "mustChoosAdatarow": "请选择一条记录!", - "tipText": "您要找的是不是这些?", - "cascade": { - "enable": "同步选择", - "disable": "仅选择自身", - "up": "包含上级", - "down": "包含下级" - }, - "includechildren": "包含下级", - "favoriteInfo": { - "addFav": "已添加到收藏夹。", - "cancelFav": "已从收藏夹中移除。", - "addFavTitle": "收藏", - "cancelFavTitle": "取消收藏" - }, - "getAllChilds": "获取所有子级数据", - "contextMenu": { - "checkChildNodes": "勾选下级数据", - "uncheckChildNodes": "取消勾选下级数据", - "expandall": "全部展开", - "collapseall": "全部收起", - "expandByLayer": "按层级展开", - "expand1": "展开 1 级", - "expand2": "展开 2 级", - "expand3": "展开 3 级", - "expand4": "展开 4 级", - "expand5": "展开 5 级", - "expand6": "展开 6 级", - "expand7": "展开 7 级", - "expand8": "展开 8 级", - "expand9": "展开 9 级" - }, - "quick": { - "notfind": "未找到搜索内容", - "more": "显示更多" - }, - "configError": "帮助显示列未配置,请检查是否已正确配置帮助数据源! ", - "selectedInfo": { - "total": "已选 {0} 条", - "clear": "取消已选", - "remove": "移除 ({0})", - "confirm": "您确认要取消所有选中记录吗?" - }, - "clearAllConditions": "清除所有查询条件", - "anyFields": "全部" - }, - "loading": { - "message": "正在加载,请稍候..." - }, - "listView": { - "emptyMessage": "暂无数据" - }, - "filterConditionEditor": { - "cancelButton": "取消", - "okButton": "确定", - "addWhere": "添加子句", - "clear": "清空", - "moveTop": "置顶", - "moveUp": "上移", - "moveDown": "下移", - "moveBottom": "置底", - "leftBrackets": "左括号", - "field": "字段", - "operator": "操作符", - "value": "值", - "valueType": "值类型", - "expressType": { - "value": "值", - "express": "表达式", - "frontExpress": "表单表达式" - }, - "rightBrackets": "右括号", - "relation": "关系", - "relationValue": { - "and": "并且", - "or": "或者" - }, - "designTab": "设计器", - "jsonTab": "源代码", - "sqlTab": "Sql预览", - "title": "条件编辑器", - "message": "确认要清空当前所有数据吗?", - "validate": { - "bracket": "左右括号不匹配,请检查", - "relation": "条件关系不完整,请检查", - "field": "条件字段未设置,请检查" - } - }, - "eventParameter": { - "title": "参数编辑器", - "ok": "确定", - "cancel": "取消", - "workFlowClass": { - "title": "请选择流程分类" - }, - "generalEditor": { - "field": "字段", - "tabVar": "变量", - "form": "表单组件" - }, - "jsonEditor": { - "dialogTitle": "可配置参数编辑器", - "keyColumnTitle": "参数", - "valueColumnTitle": "参数值", - "addButtonText": "添加配置参数", - "keyColumnPlaceholder": "请输入参数", - "error": "JsonEditor的参数预期是数组,但收到无效的JSON" - }, - "comboTree": { - "placeholder": "请选择" - } - }, - "drawer": { - "cancel": "取消", - "confirm": "确定" - }, - "datepicker": { - "dayLabels": { - "Sun": "日", - "Mon": "一", - "Tue": "二", - "Wed": "三", - "Thu": "四", - "Fri": "五", - "Sat": "六" - }, - "monthLabels": { - "1": "一月", - "2": "二月", - "3": "三月", - "4": "四月", - "5": "五月", - "6": "六月", - "7": "七月", - "8": "八月", - "9": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月" - }, - "dateFormat": "yyyy-MM-dd", - "returnFormat": "yyyy-MM-dd", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "年", - "timeBtnText": "选择时间", - "dateBtnText": "选择日期", - "commitBtnText": "确定", - "weekText": "周", - "placeholder": "请选择日期", - "range": { - "begin": "请选择开始日期", - "end": "请选择结束日期" - }, - "message": { - "101": "结束时间不得早于开始时间!", - "102": "仅允许选择 ${0} 个日期" - }, - "current": { - "today": "今天", - "week": "本周", - "month": "本月", - "year": "今年" - }, - "multiDatesLocale": { - "backtotoday": "回到今天", - "clearSelections": "清空", - "delete": "删除", - "selected": "已选,天" - }, - "quickSelectors": { - "today": "今天", - "yesterday": "昨天", - "tomorrow": "明天", - "thisMonday": "本周一", - "nextMonday": "下周一", - "firstDayOfMonth": "本月初", - "lastDayOfMonth": "本月末", - "firstDayOfLastMonth": "上月初", - "lastDayOfLastMonth": "上月末", - "firstDayOfYear": "今年初", - "lastDayOfYear": "今年末", - "firstDayOfQuarter": "本季度初", - "lastDayOfQuarter": "本季度末", - "thisWeek": "本周", - "lastWeek": "上周", - "nextWeek": "下周", - "past7Days": "过去7天", - "past30Days": "过去30天", - "thisMonth": "本月", - "lastMonth": "上月", - "thisQuarter": "本季度", - "lastQuarter": "上季度", - "thisYear": "今年", - "lastYear": "去年", - "recent3Months": "最近3个月", - "recent6Months": "最近6个月" - } - }, - "datagrid": { - "lineNumberTitle": "序号", - "emptyMessage": "暂无数据", - "pagination": { - "previousLabel": "上一页", - "nextLabel": "下一页", - "message": "共 {1} 条", - "pagelist": { - "firstText": "显示", - "lastText": "条" - } - }, - "filter": { - "title": "筛选", - "reset": "重置", - "clear": "清空", - "clearAll": "清空所有条件", - "setting": "高级设置", - "nofilter": "[ 无 ]", - "checkAll": "全选", - "and": "并且", - "or": "或者", - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null" - }, - "more": "查看更多", - "ok": "确定", - "cancel": "取消", - "sevenDays": "七天", - "oneMonth": "一个月", - "threeMonths": "三个月", - "sixMonths": "半年" - }, - "settings": { - "visible": "显示列", - "sortting": "列排序", - "title": "列配置", - "canchoose": "可选列", - "choosed": "已选列", - "asc": "升序", - "desc": "降序", - "cancelSort": "取消排序", - "ok": "确定", - "cancel": "取消", - "reset": "恢复默认", - "conciseMode": "简洁模式", - "advancedMode": "高级模式", - "formatSetting": "列格式", - "properties": "列属性", - "groupping": "分组", - "allColumns": "所有列", - "visibleColumns": "可见列", - "hiddenColumns": "隐藏列", - "searchPlaceholder": "请输入列名称", - "checkall": "全部显示/隐藏", - "headeralign": "表头对齐", - "dataalign": "数据对齐", - "alignLeft": "左对齐", - "alignCenter": "居中对齐", - "alignRight": "右对齐", - "summarytype": "汇总合计类型", - "summarytext": "汇总合计文本", - "summaryNone": "无", - "summarySum": "求和", - "summaryMax": "最大值", - "summaryMin": "最小值", - "summarCount": "计数", - "summaryAverage": "平均值", - "grouppingField": "分组字段", - "moreGrouppingFieldWarningMessage": "最多设置3个字段进行分组", - "grouppingSummary": "分组合计", - "addGrouppingFieldTip": "添加分组字段", - "removeGrouppingFieldTip": "移除分组字段", - "grouppingSummaryType": "分组合计类型", - "grouppingSummaryText": "分组合计文本", - "restoreDefaultSettingsText": "确认要恢复默认设置吗?", - "simple": { - "title": "显示列", - "tip": "选中的字段可展示到列表中,拖拽可调整在列表中的展示顺序。", - "count": "已显示 {0} 列" - } - }, - "selectionData": { - "clearAll": "清空", - "tooltip": "点击显示已选记录列表", - "currentLenth": "已选择:{0} 条" - }, - "groupRow": { - "tips": "拖动列到这儿可进行数据分组", - "removeColumn": "移除分组列", - "clearTip": "清除所有分组字段", - "clear": "清空" - }, - "summary": { - "title": "当页合计" - }, - "loadingMessage": "正在加载", - "commandColumn": { - "title": "操作", - "edit": "编辑", - "remove": "删除", - "cancel": "取消", - "accept": "确定" - } - }, - "condition": { - "add": "添加条件", - "create": "生成条件组", - "reset": "重置", - "and": "与", - "or": "或" - }, - "operators": { - "equal": "等于", - "notEqual": "不等于", - "greater": "大于", - "greaterOrEqual": "大于等于", - "less": "小于", - "lessOrEqual": "小于等于", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "属于", - "notIn": "不属于", - "empty": "为空", - "notEmpty": "不为空", - "null": "null", - "notNull": "不为null", - "startWith": "开始是", - "endWith": "结束是", - "and": "与", - "or": "或" - }, - "comboList": { - "remoteError": "请求方法类型不正确", - "placeholder": "请选择" - }, - "avatar": { - "imgtitle": "点击修改", - "typeError": "上传图片类型不正确", - "sizeError": "上传图片不能大于", - "uploadError": "图片上传失败,请重试!", - "loadError": "加载错误", - "loading": "加载中" - } -} \ No newline at end of file diff --git a/packages/ui-vue/locales/ui/zh-CHT.json b/packages/ui-vue/locales/ui/zh-CHT.json deleted file mode 100644 index 57a182774a3..00000000000 --- a/packages/ui-vue/locales/ui/zh-CHT.json +++ /dev/null @@ -1,489 +0,0 @@ -{ - "transfer": { - "selectedStart": "已選:", - "selectedEnd": "項數據" - }, - "timePicker": { - "placeholder": "請選擇時間", - "time": { - "hour": "時", - "minute": "分", - "seconds": "秒" - } - }, - "tabs": { - "more": "更多", - "leftButton": "向左", - "rightButton": "向左", - "noData": "沒有相關數據" - }, - "section": { - "expandLabel": "展開", - "collapseLabel": "收起" - }, - "responseToolbar": { - "more": "更多" - }, - "querySolution": { - "saveAsDialog": { - "queryPlanName": "方案名稱", - "setAsDefault": "設為預設", - "confirm": "確定", - "cancel": "取消", - "caption": "新增方案", - "personal": "使用者個人方案", - "system": "系統公共方案", - "nameNotify": "請填寫方案名稱", - "authNotify": "您暫無權限修改公共類型方案。", - "success": "查詢方案儲存成功。", - "maxLength": "方案名稱最多100個字元,超出請修改" - }, - "manageDialog": { - "caption": "方案管理", - "default": "預設", - "system": "系統公共", - "saveAs": "另存為", - "save": "保存", - "manage": "管理", - "isDefault": "預設方案", - "code": "名稱", - "type": "屬性", - "private": "用戶個人方案", - "public": "系統公共方案", - "org": "組織公共方案", - "remove": "刪除" - }, - "configDialog": { - "caption": "篩選條件配置" - }, - "container": { - "filter": "篩選", - "default": "默認篩選方案", - "clear": "清空", - "require": "請填寫{fields}再進行篩選" - } - }, - "pagination": { - "message": "共 {1} 條 ", - "totalInfo": { - "firstText": "共", - "lastText": "條" - }, - "pageList": { - "firstText": "每頁", - "lastText": "條" - }, - "previous": "上一頁", - "next": "下一頁", - "goto": { - "prefix": "跳轉至", - "suffix": "頁" - }, - "show": "顯示" - }, - "numberSpinner": { - "placeholder": "請輸入數字", - "range": { - "begin": "請輸入開始數字", - "end": "請輸入結束數字" - } - }, - "messageBox": { - "yes": "是", - "no": "否", - "ok": "確定", - "close": "關閉", - "cancel": "取消", - "title": "係統提示", - "errorTitle": "錯誤提示", - "prompt": { - "fontSize": { - "name": "字體大小", - "small": "小", - "middle": "中", - "big": "大", - "large": "特大", - "huge": "超大" - } - }, - "exception": { - "expand": "展開", - "collapse": "收起", - "happend": "發生時間", - "detail": "詳細信息", - "copy": "複制詳細信息", - "copySuccess": "複制成功", - "copyFailed": "複制失敗", - "roger": "知道了" - } - }, - "lookup": { - "placeholder": "請選擇", - "favorites": "收藏夾", - "selected": "已選數據", - "okText": "確定", - "cancelText": "取消", - "allColumns": "所有列", - "datalist": "數據列錶", - "mustWriteSomething": "請輸入關鍵字後查詢。", - "mustChoosAdatarow": "請選擇一條記錄!", - "tipText": "您要找的是不是這些?", - "cascade": { - "enable": "同步選擇", - "disable": "僅選擇自身", - "up": "包含上級", - "down": "包含下級" - }, - "includechildren": "包含下級", - "favoriteInfo": { - "addFav": "已添加到收藏夾。", - "cancelFav": "已從收藏夾中移除。", - "addFavTitle": "收藏", - "cancelFavTitle": "取消收藏" - }, - "getAllChilds": "獲取所有子級數據", - "contextMenu": { - "checkChildNodes": "勾選下級數據", - "uncheckChildNodes": "取消勾選下級數據", - "expandall": "全部展開", - "collapseall": "全部收起", - "expandByLayer": "按層級展開", - "expand1": "展開 1 級", - "expand2": "展開 2 級", - "expand3": "展開 3 級", - "expand4": "展開 4 級", - "expand5": "展開 5 級", - "expand6": "展開 6 級", - "expand7": "展開 7 級", - "expand8": "展開 8 級", - "expand9": "展開 9 級" - }, - "quick": { - "notfind": "未找到搜索內容", - "more": "顯示更多" - }, - "configError": "幫助顯示列未配置,請檢查是否已正確配置幫助數據源!", - "selectedInfo": { - "total": "已選 {0} 條", - "clear": "取消已選", - "remove": "移除 ({0})", - "confirm": "您確認要取消所有選中記錄嗎?" - }, - "clearAllConditions": "清除所有查詢條件", - "anyFields": "全部" - }, - "loading": { - "message": "正在加載,請稍候..." - }, - "listView": { - "emptyMessage": "暫無數據" - }, - "filterConditionEditor": { - "cancelButton": "取消", - "okButton": "確定", - "addWhere": "添加子句", - "clear": "清空", - "moveTop": "置頂", - "moveUp": "上移", - "moveDown": "下移", - "moveBottom": "置底", - "leftBrackets": "左括號", - "field": "字段", - "operator": "操作符", - "value": "值", - "valueType": "值類型", - "expressType": { - "value": "值", - "express": "錶達式", - "frontExpress": "表單表達式" - }, - "rightBrackets": "右括號", - "relation": "關係", - "relationValue": { - "and": "並且", - "or": "或者" - }, - "designTab": "設計器", - "jsonTab": "源代碼", - "sqlTab": "Sql預覽", - "title": "條件編輯器", - "message": "確認要清空當前所有數據嗎?", - "validate": { - "bracket": "左右括號不匹配,請檢查", - "relation": "條件關系不完整,請檢查", - "field": "條件字段未設置,請檢查" - } - }, - "eventParameter": { - "title": "參數編輯器", - "ok": "確定", - "cancel": "取消", - "workFlowClass": { - "title": "請選擇流程分類" - }, - "generalEditor": { - "field": "欄位", - "tabVar": "變數", - "form": "表單元件" - }, - "jsonEditor": { - "dialogTitle": "可配置參數編輯器", - "keyColumnTitle": "參數", - "valueColumnTitle": "參數值", - "addButtonText": "添加配置參數", - "keyColumnPlaceholder": "請輸入參數", - "error": "JsonEditor的參數預期是數位,但收到無效的JSON" - }, - "comboTree": { - "placeholder": "請選擇" - } - }, - "drawer": { - "cancel": "取消", - "confirm": "確定" - }, - "datepicker": { - "dayLabels": { - "Sun": "日", - "Mon": "一", - "Tue": "二", - "Wed": "三", - "Thu": "四", - "Fri": "五", - "Sat": "六" - }, - "monthLabels": { - "1": "一月", - "2": "二月", - "3": "三月", - "4": "四月", - "5": "五月", - "6": "六月", - "7": "七月", - "8": "八月", - "9": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月" - }, - "dateFormat": "yyyy-MM-dd", - "returnFormat": "yyyy-MM-dd", - "firstDayOfWeek": "mo", - "sunHighlight": false, - "yearTxt": "年", - "timeBtnText": "選擇時間", - "dateBtnText": "選擇日期", - "commitBtnText": "確認", - "weekText": "周", - "placeholder": "請選擇日期", - "range": { - "begin": "請選擇開始日期", - "end": "請選擇結束日期" - }, - "message": { - "101": "結束時間不得早于開始時間!", - "102": "僅允許選擇 ${0} 個日期" - }, - "current": { - "today": "今天", - "month": "本月", - "week": "本周", - "year": "今年" - }, - "multiDatesLocale": { - "backtotoday": "回到今天", - "clearSelections": "清空", - "delete": "刪除", - "selected": "已選,天" - }, - "quickSelectors": { - "today": "今天", - "yesterday": "昨天", - "tomorrow": "明天", - "thisMonday": "本周壹", - "nextMonday": "下周壹", - "firstDayOfMonth": "本月初", - "lastDayOfMonth": "本月末", - "firstDayOfLastMonth": "上月初", - "lastDayOfLastMonth": "上月末", - "firstDayOfYear": "今年初", - "lastDayOfYear": "今年末", - "firstDayOfQuarter": "本季度初", - "lastDayOfQuarter": "本季度末", - "thisWeek": "本周", - "lastWeek": "上周", - "nextWeek": "下周", - "past7Days": "過去7天", - "past30Days": "過去30天", - "thisMonth": "本月", - "lastMonth": "上月", - "thisQuarter": "本季度", - "lastQuarter": "上季度", - "thisYear": "今年", - "lastYear": "去年", - "recent3Months": "最近3個月", - "recent6Months": "最近6個月" - } - }, - "datagrid": { - "lineNumberTitle": "序號", - "emptyMessage": "暫無數據", - "pagination": { - "previousLabel": "上一頁", - "nextLabel": "下一頁", - "message": "共 {1} 條", - "pagelist": { - "firstText": "顯示", - "lastText": "條" - } - }, - "filter": { - "title": "過濾條件", - "reset": "重置", - "clear": "清空條件", - "clearAll": "清空所有條件", - "setting": "高級設置", - "nofilter": "[ 無 ]", - "checkAll": "全選", - "and": "並且", - "or": "或者", - "operators": { - "equal": "等於", - "notEqual": "不等於", - "greater": "大於", - "greaterOrEqual": "大於等於", - "less": "小於", - "lessOrEqual": "小於等於", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "屬於", - "notIn": "不屬於", - "empty": "為空", - "notEmpty": "不為空", - "null": "null", - "notNull": "不為null" - }, - "more": "查看更多", - "ok": "確定", - "cancel": "取消", - "sevenDays": "七天", - "oneMonth": "一個月", - "threeMonths": "三個月", - "sixMonths": "半年" - }, - "settings": { - "visible": "顯示列", - "sortting": "列排序", - "title": "列配置", - "canchoose": "可選列", - "choosed": "已選列", - "asc": "升序", - "desc": "降序", - "cancelSort": "取消排序", - "ok": "確定", - "cancel": "取消", - "reset": "恢複默認", - "conciseMode": "簡潔模式", - "advancedMode": "高級模式", - "formatSetting": "列格式", - "properties": "列屬性", - "groupping": "分組", - "allColumns": "所有列", - "visibleColumns": "可見列", - "hiddenColumns": "隱藏列", - "searchPlaceholder": "請輸入列名稱", - "checkall": "全部顯示/隱藏", - "headeralign": "表頭對齊", - "dataalign": "數據對齊", - "alignLeft": "左對齊", - "alignCenter": "居中對齊", - "alignRight": "右對齊", - "summarytype": "匯總合計類型", - "summarytext": "匯總合計文本", - "summaryNone": "無", - "summarySum": "求和", - "summaryMax": "最大值", - "summaryMin": "最小值", - "summarCount": "計數", - "summaryAverage": "平均值", - "grouppingField": "分組字段", - "moreGrouppingFieldWarningMessage": "最多設置3個字段進行分組", - "grouppingSummary": "分組合計", - "addGrouppingFieldTip": "添加分組字段", - "removeGrouppingFieldTip": "移除分組字段", - "grouppingSummaryType": "分組合計類型e", - "grouppingSummaryText": "分組合計文本", - "restoreDefaultSettingsText": "確認要恢複默認設置嗎", - "simple": { - "title": "顯示列", - "tip": "選中的字段可展示到列表中,拖拽可調整在列表中的展示順序。", - "count": "已顯示 {0} 列" - } - }, - "selectionData": { - "clearAll": "清空", - "tooltip": "點擊顯示已選記錄列錶", - "currentLenth": "已選擇:{0} 條" - }, - "groupRow": { - "tips": "拖動列到這兒可進行數據分組", - "removeColumn": "移除分組列", - "clearTip": "清除所有分組字段", - "clear": "清空" - }, - "summary": { - "title": "當頁合計" - }, - "loadingMessage": "正在載入", - "commandColumn": { - "title": "操作", - "edit": "編輯", - "remove": "刪除", - "cancel": "取消", - "accept": "確定" - } - }, - "condition": { - "add": "新增條件", - "create": "建立條件群組", - "reset": "重設", - "and": "且", - "or": "或" - }, - "operators": { - "equal": "等於", - "notEqual": "不等於", - "greater": "大於", - "greaterOrEqual": "大於等於", - "less": "小於", - "lessOrEqual": "小於等於", - "contains": "包含", - "notContains": "不包含", - "like": "包含", - "notLike": "不包含", - "in": "屬於", - "notIn": "不屬於", - "empty": "為空", - "notEmpty": "不為空", - "null": "null", - "notNull": "不為null", - "startWith": "開始於", - "endWith": "結束於", - "and": "且", - "or": "或" - }, - "comboList": { - "remoteError": "請求方法類型不正確", - "placeholder": "請選擇" - }, - "avatar": { - "imgtitle": "點擊修改", - "typeError": "上傳圖片類型不正確", - "sizeError": "上傳圖片不能大於", - "uploadError": "圖片上傳失敗,請重試!", - "loadError": "加載錯誤", - "loading": "加載中" - } -} \ No newline at end of file diff --git a/packages/ui-vue/scripts/commands/build.js b/packages/ui-vue/scripts/commands/build.js index 35d0aa682f5..47b7db1e138 100644 --- a/packages/ui-vue/scripts/commands/build.js +++ b/packages/ui-vue/scripts/commands/build.js @@ -269,7 +269,7 @@ const buildLibs = async () => { return isDir && !ignore && (fs.readdirSync(componentDir).includes('index.ts') || fs.readdirSync(componentDir).includes('style.ts')); }); - copyLocales('./locales', './package/locales'); + copyLocales('./public/assets/i18n', './package/locales'); components.forEach((componentName) => { buildSeperately(componentName); copyLocales(`./components/${componentName}/src/locales`, `./package/locales/${componentName}`); diff --git a/packages/ui-vue/tsconfig.json b/packages/ui-vue/tsconfig.json index 26c0f7bd1ff..c852ac8106e 100644 --- a/packages/ui-vue/tsconfig.json +++ b/packages/ui-vue/tsconfig.json @@ -20,8 +20,7 @@ "types": ["vitest/globals", "@types/jest"], "baseUrl": "./", "paths": { - "@farris/ui-vue/components/*": ["./components/*"], - "@farris/ui-vue/locales/*": ["./locales/*"] + "@farris/ui-vue/components/*": ["./components/*"] } }, "include": ["components/**/*", "src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "designer/**/*"], -- Gitee From d2adc756babdd6f81154f29c39d49176f3c8dc2c Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 28 Aug 2025 15:52:58 +0800 Subject: [PATCH 096/109] build: optimize data grid design sort and row option --- .../property-config/use-row-option.ts | 2 ++ .../designer/property-config/use-sort.ts | 1 + .../src/converter/grid-sort.converter.ts | 6 +++-- .../src/converter/row-option.converter.ts | 26 +++++++++++++++++++ .../src/property-config-resolver.ts | 4 ++- .../use-property-config-resolver.ts | 4 ++- 6 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 packages/ui-vue/components/dynamic-resolver/src/converter/row-option.converter.ts diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts b/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts index e0d8acc4907..ae46e0cbed7 100644 --- a/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts +++ b/packages/ui-vue/components/data-view/designer/property-config/use-row-option.ts @@ -8,6 +8,7 @@ export function useRowOption() { title: '行样式', type: 'string', description: '自定义行样式', + $converter: '/converter/row-option.converter', editor: { type: "code-editor", language: "html", @@ -17,6 +18,7 @@ export function useRowOption() { title: '单元格样式', type: 'string', description: '自定义单元格样式', + $converter: '/converter/row-option.converter', editor: { type: "code-editor", language: "html", diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts b/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts index 49efe19ed20..5fddd5a6c27 100644 --- a/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts +++ b/packages/ui-vue/components/data-view/designer/property-config/use-sort.ts @@ -20,6 +20,7 @@ export function useSort() { title: '启用多列排序', type: 'boolean', description: '启用多列排序', + $converter: '/converter/grid-sort.converter' } } }; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts index e1b66b2e548..82ca000ff0b 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/grid-sort.converter.ts @@ -3,8 +3,7 @@ import { PropertyConverter, SchemaService } from "../types"; export default { convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { if (!schema.sort) { - schema.sort = { - }; + schema.sort = {}; } schema.sort[propertyKey] = propertyValue; }, @@ -12,5 +11,8 @@ export default { if(propertyKey === 'mode') { return schema.sort?.mode || 'client'; } + if(propertyKey === 'multiSort') { + return !!schema.sort?.multiSort; + } } } as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/row-option.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/row-option.converter.ts new file mode 100644 index 00000000000..d8b503efb3a --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/row-option.converter.ts @@ -0,0 +1,26 @@ +import { ComponentSchema } from "../../../designer-canvas/src/types"; +import { PropertyConverter, SchemaService } from "../types"; + +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + // eslint-disable-next-line no-self-assign + if (schema.rowOption) { + schema.rowOption[propertyKey] = propertyValue; + } else { + schema.rowOption = { + [propertyKey]: propertyValue + }; + } + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if (schema.rowOption) { + if (propertyKey === 'customRowStyle') { + return schema.rowOption.customRowStyle; + } + if(propertyKey === 'customCellStyle') { + return schema.rowOption.customCellStyle; + } + } + return ''; + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts index 5f50055b18c..4f3d0b0faf8 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts @@ -24,6 +24,7 @@ import formGroupLabelConverter from "./converter/form-group-label.converter"; import changeFormatterEnumConverter from './converter/change-formatter-enum.converter'; import gridSortConverter from './converter/grid-sort.converter'; import gridFilterConverter from './converter/grid-filter.converter'; +import gridRowOption from './converter/row-option.converter'; const propertyConfigSchemaMap = {} as Record; const propertyConverterMap = new Map([ @@ -45,7 +46,8 @@ const propertyConverterMap = new Map([ ['/converter/grid-selection.converter', gridSelectionConverter], ['/converter/change-formatter-enum.converter', changeFormatterEnumConverter], ['/converter/grid-sort.converter', gridSortConverter], - ['/converter/grid-filter.converter', gridFilterConverter] + ['/converter/grid-filter.converter', gridFilterConverter], + ['/converter/row-option.converter', gridRowOption] ]); const propertyEffectMap = {} as Record; const propertyEditorMap = new Map([ diff --git a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts index 845c44aa47a..b4ebb9a21db 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts @@ -24,6 +24,7 @@ import sizeConverter from "../../converter/size.converter"; import changeFormatterEnumConverter from '../../converter/change-formatter-enum.converter'; import gridSortConverter from '../../converter/grid-sort.converter'; import gridFilterConverter from '../../converter/grid-filter.converter'; +import gridRowOption from '../../converter/row-option.converter'; export function usePropertyConfigResolver(propertyConfigSchemaMap: Record, propertyEffectMap: Record, resolveSchemaWithDefaultValue: (schemaValue: Record) => Record) { @@ -47,7 +48,8 @@ export function usePropertyConfigResolver(propertyConfigSchemaMap: Record([ ['string', { type: 'input-group', enableClear: false }], -- Gitee From 5e6e8e5e4174c1365f95ba6a9227b1992256d4ea Mon Sep 17 00:00:00 2001 From: hyygzds Date: Thu, 28 Aug 2025 20:23:26 +0800 Subject: [PATCH 097/109] fix: data grid supports custom style --- .../appearance/use-cell-position.ts | 8 +++ .../data-view/composition/use-row.ts | 8 +-- .../designer/property-config/use-event.ts | 53 +++++++++---------- .../components/data/data-area.component.tsx | 6 ++- .../src/designer/list-view.design.props.ts | 2 +- .../list-view/src/list-view.component.tsx | 3 +- .../tree-grid/src/tree-grid.component.tsx | 22 +++++++- packages/ui-vue/demos/tree-grid/basic.vue | 2 +- 8 files changed, 66 insertions(+), 38 deletions(-) diff --git a/packages/ui-vue/components/data-view/composition/appearance/use-cell-position.ts b/packages/ui-vue/components/data-view/composition/appearance/use-cell-position.ts index c2a34b7a335..41aec8f16f6 100644 --- a/packages/ui-vue/components/data-view/composition/appearance/use-cell-position.ts +++ b/packages/ui-vue/components/data-view/composition/appearance/use-cell-position.ts @@ -81,6 +81,10 @@ export function useCellPosition(props: DataViewOptions, context: Ref; + if (props.rowOption?.customCellStyle) { + const customClassObject = props.rowOption.customCellStyle(cell) || {}; + return Object.assign({}, styleObject, customClassObject.style || {}); + } return styleObject; } @@ -121,6 +125,10 @@ export function useCellPosition(props: DataViewOptions, context: Ref; + if (props.rowOption?.customRowStyle) { + const customClassObject = props.rowOption.customRowStyle(dataItem.raw) || {}; + return Object.assign({}, styleObject, customClassObject.style || {}); + } return styleObject; } diff --git a/packages/ui-vue/components/data-view/composition/use-row.ts b/packages/ui-vue/components/data-view/composition/use-row.ts index 8020188138f..9bb20ba900d 100644 --- a/packages/ui-vue/components/data-view/composition/use-row.ts +++ b/packages/ui-vue/components/data-view/composition/use-row.ts @@ -59,7 +59,7 @@ export function useRow( } as Record; if (props.rowOption?.customRowStyle) { const customClassObject = props.rowOption.customRowStyle(dataItem.raw) || {}; - return Object.assign({}, classObject, customClassObject); + return Object.assign({}, classObject, customClassObject.class || {}); } return classObject; } @@ -70,7 +70,7 @@ export function useRow( } as Record; if (props.rowOption?.customCellStyle) { const customClassObject = props.rowOption.customCellStyle(cell) || {}; - return Object.assign({}, cellClassObject, customClassObject); + return Object.assign({}, cellClassObject, customClassObject.class || {}); } return cellClassObject; } @@ -81,7 +81,7 @@ export function useRow( } as Record; if (props.rowOption?.customCellStyle) { const customClassObject = props.rowOption.customCellStyle(cell) || {}; - return Object.assign({}, cellClassObject, customClassObject); + return Object.assign({}, cellClassObject, customClassObject.class || {}); } return cellClassObject; } @@ -178,7 +178,7 @@ export function useRow( } as Record; if (props.rowOption?.customRowStyle) { const customClassObject = props.rowOption.customRowStyle(dataItem.raw) || {}; - return Object.assign({}, classObject, customClassObject); + return Object.assign({}, classObject, customClassObject.class || {}); } return classObject; } diff --git a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts index 91ced37077e..721f111e929 100644 --- a/packages/ui-vue/components/data-view/designer/property-config/use-event.ts +++ b/packages/ui-vue/components/data-view/designer/property-config/use-event.ts @@ -2,16 +2,16 @@ export function useDataGridEvent() { function initEvent(propertyData: any) { const events = [ { - "label": "onClickRow", - "name": "行点击事件" + label: 'onClickRow', + name: '行点击事件' }, { - "label": "onSelectionChange", - "name": "行切换事件" + label: 'onSelectionChange', + name: '行切换事件' }, { - "label": "onDoubleClickRow", - "name": "行双击事件" + label: 'onDoubleClickRow', + name: '行双击事件' }, { label: 'onFilterChanged', @@ -20,9 +20,26 @@ export function useDataGridEvent() { { label: 'onSortChanged', name: '排序事件' + }, + { + label: 'onSelectItem', + name: '选中行事件' + }, + { + label: 'onUnSelectItem', + name: '取消选中行事件' + }, + { + label: 'onSelectAll', + name: '全选事件' + }, + { + label: 'onUnSelectAll', + name: '取消全选事件' } + ]; - if (propertyData.pagination?.enable !== false) { + if (propertyData.pagination?.enable !== false && propertyData.type !== 'tree-grid') { // 如果没有设置,默认是按照true处理的 events.push({ "label": "onPageIndexChanged", @@ -44,28 +61,6 @@ export function useDataGridEvent() { "name": "操作列删除事件" }); } - if (propertyData.selection?.multiSelect) { - // 启用多选,暴露多选事件 - events.push({ - "label": "onSelectItem", - "name": "选中行事件" - }, - { - "label": "onUnSelectItem", - "name": "取消选中行事件" - },); - } - if (propertyData.selection?.multiSelect && propertyData.selection?.showSelectAll) { - // 启用全选事件,暴露全选和取消全选事件 - events.push({ - "label": "onSelectAll", - "name": "全选事件" - }, - { - "label": "onUnSelectAll", - "name": "取消全选事件" - }); - } return events; } diff --git a/packages/ui-vue/components/list-view/src/components/data/data-area.component.tsx b/packages/ui-vue/components/list-view/src/components/data/data-area.component.tsx index 76347357e94..806e40b3901 100644 --- a/packages/ui-vue/components/list-view/src/components/data/data-area.component.tsx +++ b/packages/ui-vue/components/list-view/src/components/data/data-area.component.tsx @@ -88,7 +88,11 @@ export default function ( function renderEmptyPlaceholder() { return (
-

{props.emptyTemplate?.() || context.slots.empty ? context.slots.empty!() : emptyMessage.value}

+

{ + props.emptyTemplate ? props.emptyTemplate() : + context.slots.empty ? context.slots.empty() : + emptyMessage.value + }

); } diff --git a/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts b/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts index 8c03feda5fb..d9f8db6116b 100644 --- a/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts +++ b/packages/ui-vue/components/list-view/src/designer/list-view.design.props.ts @@ -22,6 +22,6 @@ import { schemaMapper } from '../schema/schema-mapper'; import { schemaResolver } from '../schema/schema-resolver'; import listViewSchema from '../schema/list-view.schema.json'; -export const listViewDesignProps = excludeProperties(listViewProps, 'headerTemplate', 'contentTemplate', 'emptyTemplate', 'footerTemplate'); +export const listViewDesignProps = excludeProperties(listViewProps, 'headerTemplate'); export type ListViewDesignProps = ExtractPropTypes; export const propsResolver = createPropsResolver(listViewDesignProps, listViewSchema, schemaMapper, schemaResolver); diff --git a/packages/ui-vue/components/list-view/src/list-view.component.tsx b/packages/ui-vue/components/list-view/src/list-view.component.tsx index 9dc3b662a60..339166d7dc1 100644 --- a/packages/ui-vue/components/list-view/src/list-view.component.tsx +++ b/packages/ui-vue/components/list-view/src/list-view.component.tsx @@ -205,7 +205,8 @@ export default defineComponent({ {renderListArea()}
{shouldShowFooter.value && }
); diff --git a/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx b/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx index 6cb9e47f0c3..81b86d67e8f 100644 --- a/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx +++ b/packages/ui-vue/components/tree-grid/src/tree-grid.component.tsx @@ -29,6 +29,7 @@ import { UpdatedRowOptions, DataViewType, UpdateDataOption, + useSettingColumn, } from '@farris/ui-vue/components/data-view'; import getDataArea from './components/data/data-area.component'; import './tree-grid.css'; @@ -71,7 +72,12 @@ export default defineComponent({ const useCommandColumnComposition = useCommandColumn(props as DataViewOptions); const { applyCommands } = useCommandColumnComposition; applyCommands(columns); - + const { applyColumnSetting, removeColumnSetting } = useSettingColumn( + props as DataViewOptions + ); + if(props.showSetting) { + applyColumnSetting(columns); + } const useColumnComposition = useColumn(props as DataViewOptions, context as SetupContext); const useSortComposition = useSort(props as DataViewOptions); const { applyColumnSorter, columnContext, updateColumnRenderContext } = useColumnComposition; @@ -484,6 +490,20 @@ export default defineComponent({ function getCollapseField() { return collapseField.value; } + + watch( + () => props.showSetting, + (newValue: boolean, oldValue: boolean) => { + if (newValue !== oldValue) { + if(newValue) { + applyColumnSetting(columns); + } else { + removeColumnSetting(columns); + } + updateColumns(columns.value); + } + } + ); context.expose({ activeRowById, addNewDataItem, diff --git a/packages/ui-vue/demos/tree-grid/basic.vue b/packages/ui-vue/demos/tree-grid/basic.vue index 45597a09976..8e661467ca0 100644 --- a/packages/ui-vue/demos/tree-grid/basic.vue +++ b/packages/ui-vue/demos/tree-grid/basic.vue @@ -11,7 +11,7 @@ const columns: DataColumn[] = [