ng-alain 12.3.0 → 13.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/application/files/i18n/el-GR.json +1 -1
- package/application/files/i18n/en-US.json +1 -1
- package/application/files/i18n/es-ES.json +1 -1
- package/application/files/i18n/fr-FR.json +1 -1
- package/application/files/i18n/hr-HR.json +1 -1
- package/application/files/i18n/it-IT.json +1 -1
- package/application/files/i18n/ko-KR.json +1 -1
- package/application/files/i18n/pl-PL.json +1 -1
- package/application/files/i18n/sl-SI.json +1 -1
- package/application/files/i18n/tr-TR.json +1 -1
- package/application/files/i18n/zh-CN.json +10 -6
- package/application/files/i18n/zh-TW.json +1 -1
- package/application/files/root/proxy.conf.js +17 -0
- package/application/files/src/app/app.component.ts +21 -5
- package/application/files/src/app/core/i18n/i18n.service.spec.ts +6 -0
- package/application/files/src/app/core/i18n/i18n.service.ts +3 -5
- package/application/files/src/app/core/net/default.interceptor.ts +4 -3
- package/application/files/src/app/core/startup/startup.service.ts +5 -3
- package/application/files/src/app/layout/basic/basic.component.ts +1 -1
- package/application/files/src/app/layout/basic/widgets/clear-storage.component.ts +1 -1
- package/application/files/src/app/layout/basic/widgets/fullscreen.component.ts +1 -1
- package/application/files/src/app/layout/basic/widgets/i18n.component.ts +3 -0
- package/application/files/src/app/routes/exception/exception-routing.module.ts +4 -6
- package/application/files/src/app/routes/exception/exception.component.ts +16 -0
- package/application/files/src/app/routes/exception/exception.module.ts +2 -6
- package/application/files/src/assets/tmp/i18n/el-GR.json +1 -1
- package/application/files/src/assets/tmp/i18n/en-US.json +1 -1
- package/application/files/src/assets/tmp/i18n/es-ES.json +1 -1
- package/application/files/src/assets/tmp/i18n/fr-FR.json +1 -1
- package/application/files/src/assets/tmp/i18n/hr-HR.json +1 -1
- package/application/files/src/assets/tmp/i18n/it-IT.json +1 -1
- package/application/files/src/assets/tmp/i18n/ko-KR.json +1 -1
- package/application/files/src/assets/tmp/i18n/pl-PL.json +1 -1
- package/application/files/src/assets/tmp/i18n/sl-SI.json +1 -1
- package/application/files/src/assets/tmp/i18n/tr-TR.json +1 -1
- package/application/files/src/assets/tmp/i18n/zh-CN.json +10 -6
- package/application/files/src/assets/tmp/i18n/zh-TW.json +1 -1
- package/application/index.js +45 -45
- package/application/index.js.map +1 -1
- package/application/index.spec.ts +2 -1
- package/application/index.ts +10 -10
- package/application/schema.json +1 -1
- package/collection.json +7 -3
- package/curd/index.js +2 -2
- package/curd/index.js.map +1 -1
- package/curd/schema.json +39 -27
- package/curd/schema.ts +5 -1
- package/docs/generate.en-US.md +35 -0
- package/docs/generate.zh-CN.md +35 -0
- package/docs/plugin.en-US.md +0 -13
- package/docs/plugin.zh-CN.md +0 -13
- package/docs/sta.en-US.md +55 -0
- package/docs/sta.zh-CN.md +55 -0
- package/edit/index.js +1 -1
- package/edit/index.js.map +1 -1
- package/edit/schema.json +7 -7
- package/edit/schema.ts +5 -1
- package/empty/index.js +1 -1
- package/empty/index.js.map +1 -1
- package/empty/index.spec.ts +25 -14
- package/empty/schema.json +7 -7
- package/empty/schema.ts +5 -1
- package/list/index.js +1 -1
- package/list/index.js.map +1 -1
- package/list/schema.json +7 -7
- package/list/schema.ts +5 -1
- package/migration.json +5 -10
- package/module/index.js +18 -20
- package/module/index.js.map +1 -1
- package/module/index.ts +4 -5
- package/module/schema.json +1 -1
- package/ng-add/index.js +24 -26
- package/ng-add/index.js.map +1 -1
- package/ng-add/index.spec.ts +13 -3
- package/ng-add/index.ts +19 -21
- package/ng-add/schema.json +1 -1
- package/ng-update/data/attribute-selectors.js +1 -1
- package/ng-update/data/attribute-selectors.ts +1 -1
- package/ng-update/data/class-names.js +1 -1
- package/ng-update/data/class-names.ts +1 -1
- package/ng-update/data/constructor-checks.js +1 -1
- package/ng-update/data/constructor-checks.ts +1 -1
- package/ng-update/data/css-selectors.js +1 -1
- package/ng-update/data/css-selectors.ts +1 -1
- package/ng-update/data/element-selectors.js +1 -1
- package/ng-update/data/element-selectors.ts +1 -1
- package/ng-update/data/input-names.js +1 -1
- package/ng-update/data/input-names.ts +1 -1
- package/ng-update/data/method-call-checks.js +1 -1
- package/ng-update/data/method-call-checks.ts +1 -1
- package/ng-update/data/output-names.js +1 -1
- package/ng-update/data/output-names.ts +1 -1
- package/ng-update/data/property-names.js +1 -1
- package/ng-update/data/property-names.ts +1 -1
- package/ng-update/index.js +8 -13
- package/ng-update/index.js.map +1 -1
- package/ng-update/index.ts +5 -10
- package/ng-update/upgrade-data.js +3 -1
- package/ng-update/upgrade-data.js.map +1 -1
- package/ng-update/upgrade-data.ts +3 -2
- package/ng-update/upgrade-rules/checks/_src-to-nz-image-rule.js +1 -1
- package/ng-update/upgrade-rules/checks/_src-to-nz-image-rule.js.map +1 -1
- package/ng-update/upgrade-rules/checks/_src-to-nz-image-rule.ts +1 -1
- package/ng-update/upgrade-rules/v12/index.js +32 -32
- package/ng-update/upgrade-rules/v12/index.js.map +1 -1
- package/ng-update/upgrade-rules/v12/index.spec.ts +2 -2
- package/ng-update/upgrade-rules/v12/index.ts +1 -5
- package/ng-update/upgrade-rules/v12/schema.json +1 -1
- package/ng-update/upgrade-rules/v13/index.js +44 -0
- package/ng-update/upgrade-rules/v13/index.js.map +1 -0
- package/ng-update/upgrade-rules/v13/index.spec.ts +26 -0
- package/ng-update/upgrade-rules/v13/index.ts +40 -0
- package/package.json +4 -1
- package/plugin/files/rtl/layout/basic/widgets/rtl.component.ts +1 -1
- package/plugin/index.js +10 -14
- package/plugin/index.js.map +1 -1
- package/plugin/index.ts +0 -4
- package/plugin/plugin.code-style.js +2 -2
- package/plugin/plugin.code-style.js.map +1 -1
- package/plugin/plugin.default-language.js +3 -3
- package/plugin/plugin.default-language.js.map +1 -1
- package/plugin/plugin.default-language.ts +1 -1
- package/plugin/plugin.docker.js +6 -6
- package/plugin/plugin.docker.js.map +1 -1
- package/plugin/plugin.icon.js +7 -7
- package/plugin/plugin.icon.js.map +1 -1
- package/plugin/plugin.icon.ts +3 -3
- package/plugin/plugin.network-env.js +8 -8
- package/plugin/plugin.network-env.js.map +1 -1
- package/plugin/plugin.network-env.spec.ts +2 -2
- package/plugin/plugin.network-env.ts +8 -8
- package/plugin/plugin.rtl.js +11 -11
- package/plugin/plugin.rtl.js.map +1 -1
- package/plugin/plugin.sts.js +1 -1
- package/plugin/plugin.sts.js.map +1 -1
- package/plugin/schema.json +1 -1
- package/schema.json +29 -0
- package/sta/index.js +208 -0
- package/sta/index.js.map +1 -0
- package/sta/index.spec.ts +57 -0
- package/sta/index.ts +242 -0
- package/sta/schema.js +3 -0
- package/sta/schema.js.map +1 -0
- package/sta/schema.json +52 -0
- package/sta/schema.ts +39 -0
- package/sta/templates/base.service.eta +46 -0
- package/sta/templates/dto-type.eta +12 -0
- package/sta/templates/dto.eta +17 -0
- package/sta/templates/procedure-call.eta +68 -0
- package/sta/templates/route-docs.eta +30 -0
- package/sta/templates/service.eta +44 -0
- package/sta/types.js +3 -0
- package/sta/types.js.map +1 -0
- package/sta/types.ts +28 -0
- package/tpl/index.js +2 -2
- package/tpl/index.js.map +1 -1
- package/tpl/index.ts +1 -1
- package/tpl/schema.json +8 -8
- package/tpl/schema.ts +5 -1
- package/utils/alain.js +30 -26
- package/utils/alain.js.map +1 -1
- package/utils/alain.spec.ts +25 -3
- package/utils/alain.ts +23 -10
- package/utils/file.js +2 -2
- package/utils/file.js.map +1 -1
- package/utils/html.js +1 -1
- package/utils/html.js.map +1 -1
- package/utils/html.ts +2 -2
- package/utils/json.js +1 -1
- package/utils/json.js.map +1 -1
- package/utils/json.ts +1 -1
- package/utils/lib-versions.js +2 -2
- package/utils/lib-versions.ts +2 -2
- package/utils/node.js +8 -0
- package/utils/node.js.map +1 -0
- package/utils/node.ts +3 -0
- package/utils/package.js +4 -4
- package/utils/package.js.map +1 -1
- package/utils/package.ts +2 -2
- package/utils/testing.js +7 -4
- package/utils/testing.js.map +1 -1
- package/utils/testing.ts +8 -1
- package/utils/versions.js +20 -20
- package/utils/versions.js.map +1 -1
- package/utils/versions.ts +16 -16
- package/utils/workspace.js +16 -6
- package/utils/workspace.js.map +1 -1
- package/utils/workspace.ts +20 -2
- package/view/index.js +1 -1
- package/view/index.js.map +1 -1
- package/view/schema.json +2 -7
- package/application/files/root/proxy.conf.json +0 -2
- package/application/files/src/app/routes/exception/403.component.ts +0 -7
- package/application/files/src/app/routes/exception/404.component.ts +0 -7
- package/application/files/src/app/routes/exception/500.component.ts +0 -7
- package/ng-update/upgrade-rules/v11/files-tpl/main.js +0 -31
- package/ng-update/upgrade-rules/v11/files-tpl/main.js.map +0 -1
- package/ng-update/upgrade-rules/v11/files-tpl/main.ts +0 -28
- package/ng-update/upgrade-rules/v11/hmr.js +0 -103
- package/ng-update/upgrade-rules/v11/hmr.js.map +0 -1
- package/ng-update/upgrade-rules/v11/hmr.ts +0 -109
- package/ng-update/upgrade-rules/v11/index.js +0 -72
- package/ng-update/upgrade-rules/v11/index.js.map +0 -1
- package/ng-update/upgrade-rules/v11/index.spec.ts +0 -51
- package/ng-update/upgrade-rules/v11/index.ts +0 -80
- package/ng-update/upgrade-rules/v11/layout.js +0 -39
- package/ng-update/upgrade-rules/v11/layout.js.map +0 -1
- package/ng-update/upgrade-rules/v11/layout.ts +0 -47
- package/ng-update/upgrade-rules/v117/index.js +0 -82
- package/ng-update/upgrade-rules/v117/index.js.map +0 -1
- package/ng-update/upgrade-rules/v117/index.spec.ts +0 -58
- package/ng-update/upgrade-rules/v117/index.ts +0 -71
- package/plugin/files/ie/tsconfig-es5.app.js +0 -9
- package/plugin/files/ie/tsconfig-es5.app.js.map +0 -1
- package/plugin/files/ie/tsconfig-es5.spec.js +0 -9
- package/plugin/files/ie/tsconfig-es5.spec.js.map +0 -1
- package/plugin/plugin.ie.js +0 -128
- package/plugin/plugin.ie.js.map +0 -1
- package/plugin/plugin.ie.spec.ts +0 -35
- package/plugin/plugin.ie.ts +0 -144
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Όλο τον χρόνο",
|
|
86
86
|
"app.analysis.all-month": "Όλο τον μήνα",
|
|
87
87
|
"app.analysis.all-week": "Όλη την εβδομάδα",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Όλη μέρα",
|
|
89
89
|
"app.analysis.search-users": "Αναζήτηση χρηστών",
|
|
90
90
|
"app.analysis.per-capita-search": "Αναζήτηση ανά κεφάλαιο",
|
|
91
91
|
"app.analysis.online-top-search": "(Ζωντανά) Κορυφαία αναζήτηση",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "All Year",
|
|
86
86
|
"app.analysis.all-month": "All Month",
|
|
87
87
|
"app.analysis.all-week": "All Week",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "All day",
|
|
89
89
|
"app.analysis.search-users": "Search Users",
|
|
90
90
|
"app.analysis.per-capita-search": "Per Capita Search",
|
|
91
91
|
"app.analysis.online-top-search": "Online Top Search",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Todo el Año",
|
|
86
86
|
"app.analysis.all-month": "Todo el Mes",
|
|
87
87
|
"app.analysis.all-week": "Toda la Semana",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Todos los días",
|
|
89
89
|
"app.analysis.search-users": "Buscar Usuarios",
|
|
90
90
|
"app.analysis.per-capita-search": "Búsqueda per cápita",
|
|
91
91
|
"app.analysis.online-top-search": "Online Top Search",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Toute l'année",
|
|
86
86
|
"app.analysis.all-month": "Tout le mois",
|
|
87
87
|
"app.analysis.all-week": "Toute la semaine",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Toute la journée",
|
|
89
89
|
"app.analysis.search-users": "Rechercher des utilisateurs",
|
|
90
90
|
"app.analysis.per-capita-search": "Recherche par capital",
|
|
91
91
|
"app.analysis.online-top-search": "Top des recherche en ligne",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Cijela godina,",
|
|
86
86
|
"app.analysis.all-month": "Cijeli mjesec",
|
|
87
87
|
"app.analysis.all-week": "Cijeli tjedan",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Cijeli dan",
|
|
89
89
|
"app.analysis.search-users": "Pretraživanje korisnika",
|
|
90
90
|
"app.analysis.per-capita-search": "Pretraživanje po osobi",
|
|
91
91
|
"app.analysis.online-top-search": "Internetska top pretraga",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Intero Anno",
|
|
86
86
|
"app.analysis.all-month": "Intero Messe",
|
|
87
87
|
"app.analysis.all-week": "Intero Settimana",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Intero giorno",
|
|
89
89
|
"app.analysis.search-users": "Cerca utenti",
|
|
90
90
|
"app.analysis.per-capita-search": "Ricerca pro capite",
|
|
91
91
|
"app.analysis.online-top-search": "Migliore ricerca online",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "올해",
|
|
86
86
|
"app.analysis.all-month": "이번달",
|
|
87
87
|
"app.analysis.all-week": "이번주",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "오늘",
|
|
89
89
|
"app.analysis.search-users": "검색 사용자",
|
|
90
90
|
"app.analysis.per-capita-search": "1인당 검색",
|
|
91
91
|
"app.analysis.online-top-search": "온라인 인기 검색",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Cały rok",
|
|
86
86
|
"app.analysis.all-month": "Cały miesiąc",
|
|
87
87
|
"app.analysis.all-week": "Cały tydzień",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Cały dzień",
|
|
89
89
|
"app.analysis.search-users": "Wyszukających użytkowników",
|
|
90
90
|
"app.analysis.per-capita-search": "Wyszukiwań per użytkownik",
|
|
91
91
|
"app.analysis.online-top-search": "Najpopularniejsze wyszukiwania online",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Celotno leto",
|
|
86
86
|
"app.analysis.all-month": "Cel mesec",
|
|
87
87
|
"app.analysis.all-week": "Cel teden",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Cel dan",
|
|
89
89
|
"app.analysis.search-users": "Išči uporabnike",
|
|
90
90
|
"app.analysis.per-capita-search": "Iskanje na prebivalca",
|
|
91
91
|
"app.analysis.online-top-search": "Spletno iskanje",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Tüm Yıl",
|
|
86
86
|
"app.analysis.all-month": "Tüm Ay",
|
|
87
87
|
"app.analysis.all-week": "Tüm Hafta",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Tüm Gün",
|
|
89
89
|
"app.analysis.search-users": "Kullanıcıları ara",
|
|
90
90
|
"app.analysis.per-capita-search": "Kişi bazlı arama",
|
|
91
91
|
"app.analysis.online-top-search": "En İyi Çevrimiçi arama",
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
+
"menu": {
|
|
3
|
+
"dashboard": {
|
|
4
|
+
"": "仪表盘",
|
|
5
|
+
"v1": "默认页",
|
|
6
|
+
"analysis": "分析页",
|
|
7
|
+
"monitor": "监控页",
|
|
8
|
+
"workplace": "工作台"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
2
11
|
"menu.search.placeholder": "搜索:员工、文件、照片等",
|
|
3
12
|
"menu.fullscreen": "全屏",
|
|
4
13
|
"menu.fullscreen.exit": "退出全屏",
|
|
5
14
|
"menu.clear.local.storage": "清理本地缓存",
|
|
6
15
|
"menu.lang": "语言",
|
|
7
16
|
"menu.main": "主导航",
|
|
8
|
-
"menu.dashboard": "仪表盘",
|
|
9
|
-
"menu.dashboard.v1": "默认页",
|
|
10
|
-
"menu.dashboard.analysis": "分析页",
|
|
11
|
-
"menu.dashboard.monitor": "监控页",
|
|
12
|
-
"menu.dashboard.workplace": "工作台",
|
|
13
17
|
"menu.shortcut": "快捷菜单",
|
|
14
18
|
"menu.widgets": "小部件",
|
|
15
19
|
"menu.alain": "Alain",
|
|
@@ -85,7 +89,7 @@
|
|
|
85
89
|
"app.analysis.all-year": "全年",
|
|
86
90
|
"app.analysis.all-month": "本月",
|
|
87
91
|
"app.analysis.all-week": "本周",
|
|
88
|
-
"app.analysis.all-
|
|
92
|
+
"app.analysis.all-today": "今日",
|
|
89
93
|
"app.analysis.search-users": "搜索用户数",
|
|
90
94
|
"app.analysis.per-capita-search": "人均搜索次数",
|
|
91
95
|
"app.analysis.online-top-search": "线上热门搜索",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "全年",
|
|
86
86
|
"app.analysis.all-month": "本月",
|
|
87
87
|
"app.analysis.all-week": "本周",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "今日",
|
|
89
89
|
"app.analysis.search-users": "搜索用戶數",
|
|
90
90
|
"app.analysis.per-capita-search": "人均搜索次數",
|
|
91
91
|
"app.analysis.online-top-search": "線上熱門搜索",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* For more configuration, please refer to https://angular.io/guide/build#proxying-to-a-backend-server
|
|
3
|
+
*
|
|
4
|
+
* 更多配置描述请参考 https://angular.cn/guide/build#proxying-to-a-backend-server
|
|
5
|
+
*
|
|
6
|
+
* Note: The proxy is only valid for real requests, Mock does not actually generate requests, so the priority of Mock will be higher than the proxy
|
|
7
|
+
*/
|
|
8
|
+
module.exports = {
|
|
9
|
+
/**
|
|
10
|
+
* The following means that all requests are directed to the backend `https://localhost:9000/`
|
|
11
|
+
*/
|
|
12
|
+
// '/': {
|
|
13
|
+
// target: 'https://localhost:9000/',
|
|
14
|
+
// secure: false, // Ignore invalid SSL certificates
|
|
15
|
+
// changeOrigin: true
|
|
16
|
+
// }
|
|
17
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Component, ElementRef, OnInit, Renderer2 } from '@angular/core';
|
|
2
|
-
import { NavigationEnd, Router } from '@angular/router';
|
|
2
|
+
import { NavigationEnd, NavigationError, RouteConfigLoadStart, Router } from '@angular/router';
|
|
3
3
|
import { TitleService, VERSION as VERSION_ALAIN } from '@delon/theme';
|
|
4
|
+
import { environment } from '@env/environment';
|
|
4
5
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
|
5
6
|
import { VERSION as VERSION_ZORRO } from 'ng-zorro-antd/version';
|
|
6
|
-
import { filter } from 'rxjs/operators';
|
|
7
7
|
|
|
8
8
|
@Component({
|
|
9
9
|
selector: 'app-root',
|
|
@@ -22,9 +22,25 @@ export class AppComponent implements OnInit {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
ngOnInit(): void {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
let configLoad = false;
|
|
26
|
+
this.router.events.subscribe(ev => {
|
|
27
|
+
if (ev instanceof RouteConfigLoadStart) {
|
|
28
|
+
configLoad = true;
|
|
29
|
+
}
|
|
30
|
+
if (configLoad && ev instanceof NavigationError) {
|
|
31
|
+
this.modalSrv.confirm({
|
|
32
|
+
nzTitle: `提醒`,
|
|
33
|
+
nzContent: environment.production ? `应用可能已发布新版本,请点击刷新才能生效。` : `无法加载路由:${ev.url}`,
|
|
34
|
+
nzCancelDisabled: false,
|
|
35
|
+
nzOkText: '刷新',
|
|
36
|
+
nzCancelText: '忽略',
|
|
37
|
+
nzOnOk: () => location.reload()
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (ev instanceof NavigationEnd) {
|
|
41
|
+
this.titleSrv.setTitle();
|
|
42
|
+
this.modalSrv.closeAll();
|
|
43
|
+
}
|
|
28
44
|
});
|
|
29
45
|
}
|
|
30
46
|
}
|
|
@@ -68,6 +68,12 @@ describe('Service: I18n', () => {
|
|
|
68
68
|
expect(srv.defaultLang).toBe('zh-TW');
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
+
it('should be use default language when the browser language is not in the list', () => {
|
|
72
|
+
spyOnProperty(navigator, 'languages').and.returnValue(['es-419']);
|
|
73
|
+
genModule();
|
|
74
|
+
expect(srv.defaultLang).toBe('zh-CN');
|
|
75
|
+
});
|
|
76
|
+
|
|
71
77
|
it('should be trigger notify when changed language', () => {
|
|
72
78
|
genModule();
|
|
73
79
|
srv.use('en-US', {});
|
|
@@ -76,9 +76,7 @@ export class I18NService extends AlainI18nBaseService {
|
|
|
76
76
|
super(cogSrv);
|
|
77
77
|
|
|
78
78
|
const defaultLang = this.getDefaultLang();
|
|
79
|
-
|
|
80
|
-
this._defaultLang = defaultLang;
|
|
81
|
-
}
|
|
79
|
+
this._defaultLang = this._langs.findIndex(w => w.code === defaultLang) === -1 ? DEFAULT : defaultLang;
|
|
82
80
|
}
|
|
83
81
|
|
|
84
82
|
private getDefaultLang(): string {
|
|
@@ -97,10 +95,10 @@ export class I18NService extends AlainI18nBaseService {
|
|
|
97
95
|
return this.http.get(`assets/tmp/i18n/${lang}.json`);
|
|
98
96
|
}
|
|
99
97
|
|
|
100
|
-
use(lang: string, data: Record<string,
|
|
98
|
+
use(lang: string, data: Record<string, unknown>): void {
|
|
101
99
|
if (this._currentLang === lang) return;
|
|
102
100
|
|
|
103
|
-
this._data = data;
|
|
101
|
+
this._data = this.flatData(data, []);
|
|
104
102
|
|
|
105
103
|
const item = LANGS[lang];
|
|
106
104
|
registerLocaleData(item.ng);
|
|
@@ -168,7 +168,7 @@ export class DefaultInterceptor implements HttpInterceptor {
|
|
|
168
168
|
|
|
169
169
|
private toLogin(): void {
|
|
170
170
|
this.notification.error(`未登录或登录已过期,请重新登录。`, ``);
|
|
171
|
-
this.goTo(
|
|
171
|
+
this.goTo(this.tokenSrv.login_url!);
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
private handleData(ev: HttpResponseBase, req: HttpRequest<any>, next: HttpHandler): Observable<any> {
|
|
@@ -209,7 +209,7 @@ export class DefaultInterceptor implements HttpInterceptor {
|
|
|
209
209
|
case 403:
|
|
210
210
|
case 404:
|
|
211
211
|
case 500:
|
|
212
|
-
this.goTo(`/exception/${ev.status}`);
|
|
212
|
+
// this.goTo(`/exception/${ev.status}?url=${req.urlWithParams}`);
|
|
213
213
|
break;
|
|
214
214
|
default:
|
|
215
215
|
if (ev instanceof HttpErrorResponse) {
|
|
@@ -241,7 +241,8 @@ export class DefaultInterceptor implements HttpInterceptor {
|
|
|
241
241
|
// 统一加上服务端前缀
|
|
242
242
|
let url = req.url;
|
|
243
243
|
if (!url.startsWith('https://') && !url.startsWith('http://')) {
|
|
244
|
-
|
|
244
|
+
const { baseUrl } = environment.api;
|
|
245
|
+
url = baseUrl + (baseUrl.endsWith('/') && url.startsWith('/') ? url.substring(1) : url);
|
|
245
246
|
}
|
|
246
247
|
|
|
247
248
|
const newReq = req.clone({ url, setHeaders: this.getAdditionalHeaders(req.headers) });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable,
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { HttpClient } from '@angular/common/http';
|
|
4
4
|
import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
|
|
@@ -28,7 +28,7 @@ export class StartupService {
|
|
|
28
28
|
private titleService: TitleService,
|
|
29
29
|
@Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,
|
|
30
30
|
private httpClient: HttpClient,
|
|
31
|
-
private
|
|
31
|
+
private router: Router
|
|
32
32
|
) {
|
|
33
33
|
iconSrv.addIcon(...ICONS_AUTO, ...ICONS);
|
|
34
34
|
}
|
|
@@ -39,6 +39,7 @@ export class StartupService {
|
|
|
39
39
|
return zip(this.i18n.loadLangData(defaultLang), this.httpClient.get('assets/tmp/app-data.json')).pipe(
|
|
40
40
|
catchError((res: NzSafeAny) => {
|
|
41
41
|
console.warn(`StartupService.load: Network request failed`, res);
|
|
42
|
+
setTimeout(() => this.router.navigateByUrl(`/exception/500`));
|
|
42
43
|
return [];
|
|
43
44
|
}),
|
|
44
45
|
map(([langData, appData]: [Record<string, string>, NzSafeAny]) => {
|
|
@@ -64,6 +65,7 @@ export class StartupService {
|
|
|
64
65
|
return this.httpClient.get('assets/tmp/app-data.json').pipe(
|
|
65
66
|
catchError((res: NzSafeAny) => {
|
|
66
67
|
console.warn(`StartupService.load: Network request failed`, res);
|
|
68
|
+
setTimeout(() => this.router.navigateByUrl(`/exception/500`));
|
|
67
69
|
return of({});
|
|
68
70
|
}),
|
|
69
71
|
map((res: NzSafeAny) => {
|
|
@@ -97,7 +99,7 @@ export class StartupService {
|
|
|
97
99
|
private viaMock(): Observable<void> {
|
|
98
100
|
// const tokenData = this.tokenService.get();
|
|
99
101
|
// if (!tokenData.token) {
|
|
100
|
-
// this.
|
|
102
|
+
// this.router.navigateByUrl(this.tokenService.login_url!);
|
|
101
103
|
// return;
|
|
102
104
|
// }
|
|
103
105
|
// mock
|
|
@@ -6,7 +6,7 @@ import { environment } from '@env/environment';
|
|
|
6
6
|
@Component({
|
|
7
7
|
selector: 'layout-basic',
|
|
8
8
|
template: `
|
|
9
|
-
<layout-default [options]="options" [asideUser]="asideUserTpl" [content]="contentTpl">
|
|
9
|
+
<layout-default [options]="options" [asideUser]="asideUserTpl" [content]="contentTpl" [customError]="null">
|
|
10
10
|
<layout-default-header-item direction="left">
|
|
11
11
|
<a layout-default-header-item-trigger href="//github.com/ng-alain/ng-alain" target="_blank">
|
|
12
12
|
<i nz-icon nzType="github"></i>
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { RouterModule, Routes } from '@angular/router';
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import { Exception404Component } from './404.component';
|
|
6
|
-
import { Exception500Component } from './500.component';
|
|
4
|
+
import { ExceptionComponent } from './exception.component';
|
|
7
5
|
import { ExceptionTriggerComponent } from './trigger.component';
|
|
8
6
|
|
|
9
7
|
const routes: Routes = [
|
|
10
|
-
{ path: '403', component:
|
|
11
|
-
{ path: '404', component:
|
|
12
|
-
{ path: '500', component:
|
|
8
|
+
{ path: '403', component: ExceptionComponent, data: { type: 403 } },
|
|
9
|
+
{ path: '404', component: ExceptionComponent, data: { type: 404 } },
|
|
10
|
+
{ path: '500', component: ExceptionComponent, data: { type: 500 } },
|
|
13
11
|
{ path: 'trigger', component: ExceptionTriggerComponent }
|
|
14
12
|
];
|
|
15
13
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute } from '@angular/router';
|
|
3
|
+
import { ExceptionType } from '@delon/abc/exception';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'app-exception',
|
|
7
|
+
template: ` <exception [type]="type" style="min-height: 500px; height: 80%;"> </exception> `,
|
|
8
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
9
|
+
})
|
|
10
|
+
export class ExceptionComponent {
|
|
11
|
+
get type(): ExceptionType {
|
|
12
|
+
return this.route.snapshot.data.type;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
constructor(private route: ActivatedRoute) {}
|
|
16
|
+
}
|
|
@@ -4,16 +4,12 @@ import { ExceptionModule as DelonExceptionModule } from '@delon/abc/exception';
|
|
|
4
4
|
import { NzButtonModule } from 'ng-zorro-antd/button';
|
|
5
5
|
import { NzCardModule } from 'ng-zorro-antd/card';
|
|
6
6
|
|
|
7
|
-
import { Exception403Component } from './403.component';
|
|
8
|
-
import { Exception404Component } from './404.component';
|
|
9
|
-
import { Exception500Component } from './500.component';
|
|
10
7
|
import { ExceptionRoutingModule } from './exception-routing.module';
|
|
8
|
+
import { ExceptionComponent } from './exception.component';
|
|
11
9
|
import { ExceptionTriggerComponent } from './trigger.component';
|
|
12
10
|
|
|
13
|
-
const COMPONENTS = [Exception403Component, Exception404Component, Exception500Component, ExceptionTriggerComponent];
|
|
14
|
-
|
|
15
11
|
@NgModule({
|
|
16
12
|
imports: [CommonModule, DelonExceptionModule, NzButtonModule, NzCardModule, ExceptionRoutingModule],
|
|
17
|
-
declarations: [
|
|
13
|
+
declarations: [ExceptionComponent, ExceptionTriggerComponent]
|
|
18
14
|
})
|
|
19
15
|
export class ExceptionModule {}
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Όλο τον χρόνο",
|
|
86
86
|
"app.analysis.all-month": "Όλο τον μήνα",
|
|
87
87
|
"app.analysis.all-week": "Όλη την εβδομάδα",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Όλη μέρα",
|
|
89
89
|
"app.analysis.search-users": "Αναζήτηση χρηστών",
|
|
90
90
|
"app.analysis.per-capita-search": "Αναζήτηση ανά κεφάλαιο",
|
|
91
91
|
"app.analysis.online-top-search": "(Ζωντανά) Κορυφαία αναζήτηση",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "All Year",
|
|
86
86
|
"app.analysis.all-month": "All Month",
|
|
87
87
|
"app.analysis.all-week": "All Week",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "All day",
|
|
89
89
|
"app.analysis.search-users": "Search Users",
|
|
90
90
|
"app.analysis.per-capita-search": "Per Capita Search",
|
|
91
91
|
"app.analysis.online-top-search": "Online Top Search",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Todo el Año",
|
|
86
86
|
"app.analysis.all-month": "Todo el Mes",
|
|
87
87
|
"app.analysis.all-week": "Toda la Semana",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Todos los días",
|
|
89
89
|
"app.analysis.search-users": "Buscar Usuarios",
|
|
90
90
|
"app.analysis.per-capita-search": "Búsqueda per cápita",
|
|
91
91
|
"app.analysis.online-top-search": "Online Top Search",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Toute l'année",
|
|
86
86
|
"app.analysis.all-month": "Tout le mois",
|
|
87
87
|
"app.analysis.all-week": "Toute la semaine",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Toute la journée",
|
|
89
89
|
"app.analysis.search-users": "Rechercher des utilisateurs",
|
|
90
90
|
"app.analysis.per-capita-search": "Recherche par capital",
|
|
91
91
|
"app.analysis.online-top-search": "Top des recherche en ligne",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Cijela godina,",
|
|
86
86
|
"app.analysis.all-month": "Cijeli mjesec",
|
|
87
87
|
"app.analysis.all-week": "Cijeli tjedan",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Cijeli dan",
|
|
89
89
|
"app.analysis.search-users": "Pretraživanje korisnika",
|
|
90
90
|
"app.analysis.per-capita-search": "Pretraživanje po osobi",
|
|
91
91
|
"app.analysis.online-top-search": "Internetska top pretraga",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Intero Anno",
|
|
86
86
|
"app.analysis.all-month": "Intero Messe",
|
|
87
87
|
"app.analysis.all-week": "Intero Settimana",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Intero giorno",
|
|
89
89
|
"app.analysis.search-users": "Cerca utenti",
|
|
90
90
|
"app.analysis.per-capita-search": "Ricerca pro capite",
|
|
91
91
|
"app.analysis.online-top-search": "Migliore ricerca online",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "올해",
|
|
86
86
|
"app.analysis.all-month": "이번달",
|
|
87
87
|
"app.analysis.all-week": "이번주",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "오늘",
|
|
89
89
|
"app.analysis.search-users": "검색 사용자",
|
|
90
90
|
"app.analysis.per-capita-search": "1인당 검색",
|
|
91
91
|
"app.analysis.online-top-search": "온라인 인기 검색",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Cały rok",
|
|
86
86
|
"app.analysis.all-month": "Cały miesiąc",
|
|
87
87
|
"app.analysis.all-week": "Cały tydzień",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Cały dzień",
|
|
89
89
|
"app.analysis.search-users": "Wyszukających użytkowników",
|
|
90
90
|
"app.analysis.per-capita-search": "Wyszukiwań per użytkownik",
|
|
91
91
|
"app.analysis.online-top-search": "Najpopularniejsze wyszukiwania online",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Celotno leto",
|
|
86
86
|
"app.analysis.all-month": "Cel mesec",
|
|
87
87
|
"app.analysis.all-week": "Cel teden",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Cel dan",
|
|
89
89
|
"app.analysis.search-users": "Išči uporabnike",
|
|
90
90
|
"app.analysis.per-capita-search": "Iskanje na prebivalca",
|
|
91
91
|
"app.analysis.online-top-search": "Spletno iskanje",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "Tüm Yıl",
|
|
86
86
|
"app.analysis.all-month": "Tüm Ay",
|
|
87
87
|
"app.analysis.all-week": "Tüm Hafta",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "Tüm Gün",
|
|
89
89
|
"app.analysis.search-users": "Kullanıcıları ara",
|
|
90
90
|
"app.analysis.per-capita-search": "Kişi bazlı arama",
|
|
91
91
|
"app.analysis.online-top-search": "En İyi Çevrimiçi arama",
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
+
"menu": {
|
|
3
|
+
"dashboard": {
|
|
4
|
+
"": "仪表盘",
|
|
5
|
+
"v1": "默认页",
|
|
6
|
+
"analysis": "分析页",
|
|
7
|
+
"monitor": "监控页",
|
|
8
|
+
"workplace": "工作台"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
2
11
|
"menu.search.placeholder": "搜索:员工、文件、照片等",
|
|
3
12
|
"menu.fullscreen": "全屏",
|
|
4
13
|
"menu.fullscreen.exit": "退出全屏",
|
|
5
14
|
"menu.clear.local.storage": "清理本地缓存",
|
|
6
15
|
"menu.lang": "语言",
|
|
7
16
|
"menu.main": "主导航",
|
|
8
|
-
"menu.dashboard": "仪表盘",
|
|
9
|
-
"menu.dashboard.v1": "默认页",
|
|
10
|
-
"menu.dashboard.analysis": "分析页",
|
|
11
|
-
"menu.dashboard.monitor": "监控页",
|
|
12
|
-
"menu.dashboard.workplace": "工作台",
|
|
13
17
|
"menu.shortcut": "快捷菜单",
|
|
14
18
|
"menu.widgets": "小部件",
|
|
15
19
|
"menu.alain": "Alain",
|
|
@@ -85,7 +89,7 @@
|
|
|
85
89
|
"app.analysis.all-year": "全年",
|
|
86
90
|
"app.analysis.all-month": "本月",
|
|
87
91
|
"app.analysis.all-week": "本周",
|
|
88
|
-
"app.analysis.all-
|
|
92
|
+
"app.analysis.all-today": "今日",
|
|
89
93
|
"app.analysis.search-users": "搜索用户数",
|
|
90
94
|
"app.analysis.per-capita-search": "人均搜索次数",
|
|
91
95
|
"app.analysis.online-top-search": "线上热门搜索",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"app.analysis.all-year": "全年",
|
|
86
86
|
"app.analysis.all-month": "本月",
|
|
87
87
|
"app.analysis.all-week": "本周",
|
|
88
|
-
"app.analysis.all-
|
|
88
|
+
"app.analysis.all-today": "今日",
|
|
89
89
|
"app.analysis.search-users": "搜索用戶數",
|
|
90
90
|
"app.analysis.per-capita-search": "人均搜索次數",
|
|
91
91
|
"app.analysis.online-top-search": "線上熱門搜索",
|