@delon/theme 15.2.1 → 16.0.0-beta.0
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/compact.css +5 -14
- package/compact.min.css +1 -1
- package/dark.css +5 -14
- package/dark.min.css +1 -1
- package/default.css +5 -14
- package/default.min.css +1 -1
- package/esm2022/layout-default/layout-header-item-trigger.directive.mjs +17 -0
- package/esm2022/layout-default/layout-header-item.component.mjs +34 -0
- package/esm2022/layout-default/layout-header.component.mjs +127 -0
- package/esm2022/layout-default/layout-nav.component.mjs +295 -0
- package/esm2022/layout-default/layout-top-menu-item.mjs +40 -0
- package/esm2022/layout-default/layout.component.mjs +163 -0
- package/esm2022/layout-default/layout.module.mjs +72 -0
- package/esm2022/layout-default/layout.service.mjs +66 -0
- package/esm2022/setting-drawer/setting-drawer-item.component.mjs +36 -0
- package/esm2022/setting-drawer/setting-drawer.component.mjs +195 -0
- package/esm2022/setting-drawer/setting-drawer.module.mjs +67 -0
- package/esm2022/src/locale/locale.module.mjs +18 -0
- package/esm2022/src/locale/locale.service.mjs +46 -0
- package/esm2022/src/pipes/date/date.pipe.mjs +25 -0
- package/esm2022/src/pipes/keys/keys.pipe.mjs +22 -0
- package/esm2022/src/pipes/safe/html.pipe.mjs +19 -0
- package/esm2022/src/pipes/safe/url.pipe.mjs +19 -0
- package/esm2022/src/pipes/yn/yn.pipe.mjs +39 -0
- package/esm2022/src/services/drawer/drawer.helper.mjs +92 -0
- package/esm2022/src/services/http/http.client.mjs +154 -0
- package/esm2022/src/services/http/http.decorator.mjs +216 -0
- package/esm2022/src/services/i18n/i18n-url.guard.mjs +37 -0
- package/esm2022/src/services/i18n/i18n.mjs +98 -0
- package/esm2022/src/services/i18n/i18n.pipe.mjs +22 -0
- package/esm2022/src/services/menu/menu.service.mjs +302 -0
- package/esm2022/src/services/modal/modal.helper.mjs +107 -0
- package/esm2022/src/services/responsive/responsive.mjs +47 -0
- package/esm2022/src/services/rtl/rtl.service.mjs +102 -0
- package/esm2022/src/services/settings/settings.service.mjs +101 -0
- package/esm2022/src/services/title/title.service.mjs +147 -0
- package/esm2022/src/theme.module.mjs +77 -0
- package/{esm2020 → esm2022}/src/version.mjs +1 -1
- package/esm2022/theme-btn/theme-btn.component.mjs +110 -0
- package/esm2022/theme-btn/theme-btn.module.mjs +33 -0
- package/{fesm2020 → fesm2022}/layout-default.mjs +55 -55
- package/{fesm2015 → fesm2022}/layout-default.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/setting-drawer.mjs +32 -32
- package/{fesm2015 → fesm2022}/setting-drawer.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/theme-btn.mjs +12 -12
- package/fesm2022/theme-btn.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/theme.mjs +75 -75
- package/{fesm2020 → fesm2022}/theme.mjs.map +1 -1
- package/layout-default/layout-header-item.component.d.ts +1 -1
- package/layout-default/layout-header.component.d.ts +1 -1
- package/layout-default/layout-nav.component.d.ts +1 -1
- package/layout-default/layout-top-menu-item.d.ts +1 -1
- package/layout-default/layout.component.d.ts +1 -1
- package/package.json +20 -34
- package/setting-drawer/setting-drawer-item.component.d.ts +1 -1
- package/setting-drawer/setting-drawer.component.d.ts +1 -1
- package/system/utils/_other.less +1 -4
- package/system/widgets/_abs.less +1 -4
- package/theme-btn/theme-btn.component.d.ts +1 -1
- package/esm2020/layout-default/layout-header-item-trigger.directive.mjs +0 -16
- package/esm2020/layout-default/layout-header-item.component.mjs +0 -33
- package/esm2020/layout-default/layout-header.component.mjs +0 -126
- package/esm2020/layout-default/layout-nav.component.mjs +0 -294
- package/esm2020/layout-default/layout-top-menu-item.mjs +0 -39
- package/esm2020/layout-default/layout.component.mjs +0 -162
- package/esm2020/layout-default/layout.module.mjs +0 -71
- package/esm2020/layout-default/layout.service.mjs +0 -65
- package/esm2020/setting-drawer/setting-drawer-item.component.mjs +0 -35
- package/esm2020/setting-drawer/setting-drawer.component.mjs +0 -194
- package/esm2020/setting-drawer/setting-drawer.module.mjs +0 -66
- package/esm2020/src/locale/locale.module.mjs +0 -17
- package/esm2020/src/locale/locale.service.mjs +0 -45
- package/esm2020/src/pipes/date/date.pipe.mjs +0 -24
- package/esm2020/src/pipes/keys/keys.pipe.mjs +0 -21
- package/esm2020/src/pipes/safe/html.pipe.mjs +0 -18
- package/esm2020/src/pipes/safe/url.pipe.mjs +0 -18
- package/esm2020/src/pipes/yn/yn.pipe.mjs +0 -38
- package/esm2020/src/services/drawer/drawer.helper.mjs +0 -91
- package/esm2020/src/services/http/http.client.mjs +0 -153
- package/esm2020/src/services/http/http.decorator.mjs +0 -215
- package/esm2020/src/services/i18n/i18n-url.guard.mjs +0 -36
- package/esm2020/src/services/i18n/i18n.mjs +0 -96
- package/esm2020/src/services/i18n/i18n.pipe.mjs +0 -21
- package/esm2020/src/services/menu/menu.service.mjs +0 -301
- package/esm2020/src/services/modal/modal.helper.mjs +0 -106
- package/esm2020/src/services/responsive/responsive.mjs +0 -46
- package/esm2020/src/services/rtl/rtl.service.mjs +0 -101
- package/esm2020/src/services/settings/settings.service.mjs +0 -100
- package/esm2020/src/services/title/title.service.mjs +0 -146
- package/esm2020/src/theme.module.mjs +0 -76
- package/esm2020/theme-btn/theme-btn.component.mjs +0 -109
- package/esm2020/theme-btn/theme-btn.module.mjs +0 -32
- package/fesm2015/layout-default.mjs +0 -773
- package/fesm2015/setting-drawer.mjs +0 -487
- package/fesm2015/theme-btn.mjs +0 -147
- package/fesm2015/theme-btn.mjs.map +0 -1
- package/fesm2015/theme.mjs +0 -2696
- package/fesm2015/theme.mjs.map +0 -1
- package/fesm2020/layout-blank.mjs +0 -7
- package/fesm2020/layout-blank.mjs.map +0 -1
- package/fesm2020/layout-default.mjs.map +0 -1
- package/fesm2020/setting-drawer.mjs.map +0 -1
- package/fesm2020/theme-btn.mjs.map +0 -1
- /package/{esm2020 → esm2022}/layout-blank/layout-blank.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-blank/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-default/layout-default.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-default/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-default/types.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/setting-drawer/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/setting-drawer/setting-drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/setting-drawer/setting-drawer.types.mjs +0 -0
- /package/{esm2020 → esm2022}/src/config.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/el-GR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/en-US.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/es-ES.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/fr-FR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/hr-HR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/it-IT.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/ja-JP.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/ko-KR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/pl-PL.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/sl-SI.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/tr-TR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/zh-CN.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/zh-TW.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/locale.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/locale.types.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/router/optional-preloader.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/http/http.token.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/http/index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/i18n/index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/menu/interface.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/preloader/preloader.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/settings/types.mjs +0 -0
- /package/{esm2020 → esm2022}/theme-btn/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/theme-btn/theme-btn.mjs +0 -0
- /package/{esm2020 → esm2022}/theme.mjs +0 -0
- /package/{fesm2015 → fesm2022}/layout-blank.mjs +0 -0
- /package/{fesm2015 → fesm2022}/layout-blank.mjs.map +0 -0
package/fesm2015/theme.mjs
DELETED
|
@@ -1,2696 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, Injectable, Optional, Inject, Pipe, SkipSelf, NgModule, Injector, Version } from '@angular/core';
|
|
3
|
-
import { filter, BehaviorSubject, share, Subject, map, takeUntil, of, delay, isObservable, switchMap, Observable, tap, finalize, throwError, catchError } from 'rxjs';
|
|
4
|
-
import * as i1 from '@delon/util/config';
|
|
5
|
-
import { AlainConfigService } from '@delon/util/config';
|
|
6
|
-
import * as i1$1 from '@delon/acl';
|
|
7
|
-
import { ACLService } from '@delon/acl';
|
|
8
|
-
import * as i1$2 from '@angular/cdk/platform';
|
|
9
|
-
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
10
|
-
import * as i1$3 from '@angular/cdk/bidi';
|
|
11
|
-
import * as i3 from 'ng-zorro-antd/core/config';
|
|
12
|
-
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
|
|
13
|
-
import * as i1$4 from '@angular/platform-browser';
|
|
14
|
-
import { deepMerge } from '@delon/util/other';
|
|
15
|
-
import * as i1$5 from 'ng-zorro-antd/modal';
|
|
16
|
-
import * as i1$6 from 'ng-zorro-antd/drawer';
|
|
17
|
-
import * as i1$7 from '@angular/common/http';
|
|
18
|
-
import { HttpParams, HttpContextToken } from '@angular/common/http';
|
|
19
|
-
import { formatDistanceToNow, format } from 'date-fns';
|
|
20
|
-
import { toDate } from '@delon/util/date-time';
|
|
21
|
-
import * as i1$8 from 'ng-zorro-antd/i18n';
|
|
22
|
-
import { NzI18nModule } from 'ng-zorro-antd/i18n';
|
|
23
|
-
import { OverlayModule } from '@angular/cdk/overlay';
|
|
24
|
-
import { BellOutline, DeleteOutline, PlusOutline, InboxOutline } from '@ant-design/icons-angular/icons';
|
|
25
|
-
import * as i1$9 from 'ng-zorro-antd/icon';
|
|
26
|
-
|
|
27
|
-
function preloaderFinished() {
|
|
28
|
-
const body = document.querySelector('body');
|
|
29
|
-
const preloader = document.querySelector('.preloader');
|
|
30
|
-
body.style.overflow = 'hidden';
|
|
31
|
-
function remove() {
|
|
32
|
-
// preloader value null when running --hmr
|
|
33
|
-
if (!preloader)
|
|
34
|
-
return;
|
|
35
|
-
preloader.addEventListener('transitionend', () => {
|
|
36
|
-
preloader.className = 'preloader-hidden';
|
|
37
|
-
});
|
|
38
|
-
preloader.className += ' preloader-hidden-add preloader-hidden-add-active';
|
|
39
|
-
}
|
|
40
|
-
window.appBootstrap = () => {
|
|
41
|
-
setTimeout(() => {
|
|
42
|
-
remove();
|
|
43
|
-
body.style.overflow = '';
|
|
44
|
-
}, 100);
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const ALAIN_I18N_TOKEN = new InjectionToken('alainI18nToken', {
|
|
49
|
-
providedIn: 'root',
|
|
50
|
-
factory: () => new AlainI18NServiceFake(inject(AlainConfigService))
|
|
51
|
-
});
|
|
52
|
-
class AlainI18nBaseService {
|
|
53
|
-
get change() {
|
|
54
|
-
return this._change$.asObservable().pipe(filter(w => w != null));
|
|
55
|
-
}
|
|
56
|
-
get defaultLang() {
|
|
57
|
-
return this._defaultLang;
|
|
58
|
-
}
|
|
59
|
-
get currentLang() {
|
|
60
|
-
return this._currentLang;
|
|
61
|
-
}
|
|
62
|
-
get data() {
|
|
63
|
-
return this._data;
|
|
64
|
-
}
|
|
65
|
-
constructor(cogSrv) {
|
|
66
|
-
this._change$ = new BehaviorSubject(null);
|
|
67
|
-
this._currentLang = '';
|
|
68
|
-
this._defaultLang = '';
|
|
69
|
-
this._data = {};
|
|
70
|
-
this.cog = cogSrv.merge('themeI18n', {
|
|
71
|
-
interpolation: ['{{', '}}']
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Flattened data source
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* {
|
|
79
|
-
* "name": "Name",
|
|
80
|
-
* "sys": {
|
|
81
|
-
* "": "System",
|
|
82
|
-
* "title": "Title"
|
|
83
|
-
* }
|
|
84
|
-
* }
|
|
85
|
-
* =>
|
|
86
|
-
* {
|
|
87
|
-
* "name": "Name",
|
|
88
|
-
* "sys": "System",
|
|
89
|
-
* "sys.title": "Title"
|
|
90
|
-
* }
|
|
91
|
-
*/
|
|
92
|
-
flatData(data, parentKey) {
|
|
93
|
-
const res = {};
|
|
94
|
-
for (const key of Object.keys(data)) {
|
|
95
|
-
const value = data[key];
|
|
96
|
-
if (typeof value === 'object') {
|
|
97
|
-
const child = this.flatData(value, parentKey.concat(key));
|
|
98
|
-
Object.keys(child).forEach(childKey => (res[childKey] = child[childKey]));
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
res[(key ? parentKey.concat(key) : parentKey).join('.')] = `${value}`;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return res;
|
|
105
|
-
}
|
|
106
|
-
fanyi(path, params) {
|
|
107
|
-
let content = this._data[path] || '';
|
|
108
|
-
if (!content)
|
|
109
|
-
return path;
|
|
110
|
-
if (params) {
|
|
111
|
-
const interpolation = this.cog.interpolation;
|
|
112
|
-
Object.keys(params).forEach(key => (content = content.replace(new RegExp(`${interpolation[0]}\s?${key}\s?${interpolation[1]}`, 'g'), `${params[key]}`)));
|
|
113
|
-
}
|
|
114
|
-
return content;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
AlainI18nBaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18nBaseService, deps: [{ token: i1.AlainConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
118
|
-
AlainI18nBaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18nBaseService });
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18nBaseService, decorators: [{
|
|
120
|
-
type: Injectable
|
|
121
|
-
}], ctorParameters: function () { return [{ type: i1.AlainConfigService }]; } });
|
|
122
|
-
class AlainI18NServiceFake extends AlainI18nBaseService {
|
|
123
|
-
use(lang, data) {
|
|
124
|
-
this._data = this.flatData(data !== null && data !== void 0 ? data : {}, []);
|
|
125
|
-
this._currentLang = lang;
|
|
126
|
-
this._change$.next(lang);
|
|
127
|
-
}
|
|
128
|
-
getLangs() {
|
|
129
|
-
return [];
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
AlainI18NServiceFake.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18NServiceFake, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
133
|
-
AlainI18NServiceFake.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18NServiceFake, providedIn: 'root' });
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18NServiceFake, decorators: [{
|
|
135
|
-
type: Injectable,
|
|
136
|
-
args: [{ providedIn: 'root' }]
|
|
137
|
-
}] });
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* 菜单服务,[在线文档](https://ng-alain.com/theme/menu)
|
|
141
|
-
*/
|
|
142
|
-
class MenuService {
|
|
143
|
-
constructor(i18nSrv, aclService) {
|
|
144
|
-
this.i18nSrv = i18nSrv;
|
|
145
|
-
this.aclService = aclService;
|
|
146
|
-
this._change$ = new BehaviorSubject([]);
|
|
147
|
-
this.data = [];
|
|
148
|
-
/**
|
|
149
|
-
* 是否完全受控菜单打开状态,默认:`false`
|
|
150
|
-
*/
|
|
151
|
-
this.openStrictly = false;
|
|
152
|
-
this.i18n$ = this.i18nSrv.change.subscribe(() => this.resume());
|
|
153
|
-
}
|
|
154
|
-
get change() {
|
|
155
|
-
return this._change$.pipe(share());
|
|
156
|
-
}
|
|
157
|
-
get menus() {
|
|
158
|
-
return this.data;
|
|
159
|
-
}
|
|
160
|
-
visit(data, callback) {
|
|
161
|
-
const inFn = (list, parentMenu, depth) => {
|
|
162
|
-
for (const item of list) {
|
|
163
|
-
callback(item, parentMenu, depth);
|
|
164
|
-
if (item.children && item.children.length > 0) {
|
|
165
|
-
inFn(item.children, item, depth + 1);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
item.children = [];
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
inFn(data, null, 0);
|
|
173
|
-
}
|
|
174
|
-
add(items) {
|
|
175
|
-
this.data = items;
|
|
176
|
-
this.resume();
|
|
177
|
-
}
|
|
178
|
-
fixItem(item) {
|
|
179
|
-
item._aclResult = true;
|
|
180
|
-
if (!item.link)
|
|
181
|
-
item.link = '';
|
|
182
|
-
if (!item.externalLink)
|
|
183
|
-
item.externalLink = '';
|
|
184
|
-
// badge
|
|
185
|
-
if (item.badge) {
|
|
186
|
-
if (item.badgeDot !== true) {
|
|
187
|
-
item.badgeDot = false;
|
|
188
|
-
}
|
|
189
|
-
if (!item.badgeStatus) {
|
|
190
|
-
item.badgeStatus = 'error';
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (!Array.isArray(item.children)) {
|
|
194
|
-
item.children = [];
|
|
195
|
-
}
|
|
196
|
-
// icon
|
|
197
|
-
if (typeof item.icon === 'string') {
|
|
198
|
-
let type = 'class';
|
|
199
|
-
let value = item.icon;
|
|
200
|
-
// compatible `anticon anticon-user`
|
|
201
|
-
if (~item.icon.indexOf(`anticon-`)) {
|
|
202
|
-
type = 'icon';
|
|
203
|
-
value = value.split('-').slice(1).join('-');
|
|
204
|
-
}
|
|
205
|
-
else if (/^https?:\/\//.test(item.icon)) {
|
|
206
|
-
type = 'img';
|
|
207
|
-
}
|
|
208
|
-
item.icon = { type, value };
|
|
209
|
-
}
|
|
210
|
-
if (item.icon != null) {
|
|
211
|
-
item.icon = Object.assign({ theme: 'outline', spin: false }, item.icon);
|
|
212
|
-
}
|
|
213
|
-
item.text = item.i18n && this.i18nSrv ? this.i18nSrv.fanyi(item.i18n) : item.text;
|
|
214
|
-
// group
|
|
215
|
-
item.group = item.group !== false;
|
|
216
|
-
// hidden
|
|
217
|
-
item._hidden = typeof item.hide === 'undefined' ? false : item.hide;
|
|
218
|
-
// disabled
|
|
219
|
-
item.disabled = typeof item.disabled === 'undefined' ? false : item.disabled;
|
|
220
|
-
// acl
|
|
221
|
-
item._aclResult = item.acl && this.aclService ? this.aclService.can(item.acl) : true;
|
|
222
|
-
item.open = item.open != null ? item.open : false;
|
|
223
|
-
}
|
|
224
|
-
resume(callback) {
|
|
225
|
-
let i = 1;
|
|
226
|
-
const shortcuts = [];
|
|
227
|
-
this.visit(this.data, (item, parent, depth) => {
|
|
228
|
-
item._id = i++;
|
|
229
|
-
item._parent = parent;
|
|
230
|
-
item._depth = depth;
|
|
231
|
-
this.fixItem(item);
|
|
232
|
-
// shortcut
|
|
233
|
-
if (parent && item.shortcut === true && parent.shortcutRoot !== true) {
|
|
234
|
-
shortcuts.push(item);
|
|
235
|
-
}
|
|
236
|
-
if (callback)
|
|
237
|
-
callback(item, parent, depth);
|
|
238
|
-
});
|
|
239
|
-
this.loadShortcut(shortcuts);
|
|
240
|
-
this._change$.next(this.data);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* 加载快捷菜单,加载位置规则如下:
|
|
244
|
-
* 1、统一在下标0的节点下(即【主导航】节点下方)
|
|
245
|
-
* 1、若 children 存在 【shortcutRoot: true】则最优先【推荐】这种方式
|
|
246
|
-
* 2、否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口
|
|
247
|
-
* 3、否则放在0节点位置
|
|
248
|
-
*/
|
|
249
|
-
loadShortcut(shortcuts) {
|
|
250
|
-
if (shortcuts.length === 0 || this.data.length === 0) {
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
const ls = this.data[0].children;
|
|
254
|
-
let pos = ls.findIndex(w => w.shortcutRoot === true);
|
|
255
|
-
if (pos === -1) {
|
|
256
|
-
pos = ls.findIndex(w => w.link.includes('dashboard'));
|
|
257
|
-
pos = (pos !== -1 ? pos : -1) + 1;
|
|
258
|
-
const shortcutMenu = {
|
|
259
|
-
text: '快捷菜单',
|
|
260
|
-
i18n: 'shortcut',
|
|
261
|
-
icon: 'icon-rocket',
|
|
262
|
-
children: []
|
|
263
|
-
};
|
|
264
|
-
this.data[0].children.splice(pos, 0, shortcutMenu);
|
|
265
|
-
}
|
|
266
|
-
let _data = this.data[0].children[pos];
|
|
267
|
-
if (_data.i18n && this.i18nSrv)
|
|
268
|
-
_data.text = this.i18nSrv.fanyi(_data.i18n);
|
|
269
|
-
_data = Object.assign(_data, {
|
|
270
|
-
shortcutRoot: true,
|
|
271
|
-
_id: -1,
|
|
272
|
-
_parent: null,
|
|
273
|
-
_depth: 1
|
|
274
|
-
});
|
|
275
|
-
_data.children = shortcuts.map(i => {
|
|
276
|
-
i._depth = 2;
|
|
277
|
-
i._parent = _data;
|
|
278
|
-
return i;
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* 清空菜单
|
|
283
|
-
*/
|
|
284
|
-
clear() {
|
|
285
|
-
this.data = [];
|
|
286
|
-
this._change$.next(this.data);
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Use `url` or `key` to find menus
|
|
290
|
-
*
|
|
291
|
-
* 利用 `url` 或 `key` 查找菜单
|
|
292
|
-
*/
|
|
293
|
-
find(options) {
|
|
294
|
-
var _a;
|
|
295
|
-
const opt = Object.assign({ recursive: false, ignoreHide: false }, options);
|
|
296
|
-
if (opt.key != null) {
|
|
297
|
-
return this.getItem(opt.key);
|
|
298
|
-
}
|
|
299
|
-
let url = opt.url;
|
|
300
|
-
let item = null;
|
|
301
|
-
while (!item && url) {
|
|
302
|
-
this.visit((_a = opt.data) !== null && _a !== void 0 ? _a : this.data, i => {
|
|
303
|
-
if (opt.ignoreHide && i.hide) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
if (opt.cb) {
|
|
307
|
-
const res = opt.cb(i);
|
|
308
|
-
if (!item && typeof res === 'boolean' && res) {
|
|
309
|
-
item = i;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
if (i.link != null && i.link === url) {
|
|
313
|
-
item = i;
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
|
-
if (!opt.recursive)
|
|
317
|
-
break;
|
|
318
|
-
if (/[?;]/g.test(url)) {
|
|
319
|
-
url = url.split(/[?;]/g)[0];
|
|
320
|
-
}
|
|
321
|
-
else {
|
|
322
|
-
url = url.split('/').slice(0, -1).join('/');
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
return item;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* 根据url获取菜单列表
|
|
329
|
-
* - 若 `recursive: true` 则会自动向上递归查找
|
|
330
|
-
* - 菜单数据源包含 `/ware`,则 `/ware/1` 也视为 `/ware` 项
|
|
331
|
-
*/
|
|
332
|
-
getPathByUrl(url, recursive = false) {
|
|
333
|
-
const ret = [];
|
|
334
|
-
let item = this.find({ url, recursive });
|
|
335
|
-
if (!item)
|
|
336
|
-
return ret;
|
|
337
|
-
do {
|
|
338
|
-
ret.splice(0, 0, item);
|
|
339
|
-
item = item._parent;
|
|
340
|
-
} while (item);
|
|
341
|
-
return ret;
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Get menu based on `key`
|
|
345
|
-
*/
|
|
346
|
-
getItem(key) {
|
|
347
|
-
let res = null;
|
|
348
|
-
this.visit(this.data, item => {
|
|
349
|
-
if (res == null && item.key === key) {
|
|
350
|
-
res = item;
|
|
351
|
-
}
|
|
352
|
-
});
|
|
353
|
-
return res;
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Set menu based on `key`
|
|
357
|
-
*/
|
|
358
|
-
setItem(key, value, options) {
|
|
359
|
-
const item = typeof key === 'string' ? this.getItem(key) : key;
|
|
360
|
-
if (item == null)
|
|
361
|
-
return;
|
|
362
|
-
Object.keys(value).forEach(k => {
|
|
363
|
-
item[k] = value[k];
|
|
364
|
-
});
|
|
365
|
-
this.fixItem(item);
|
|
366
|
-
if ((options === null || options === void 0 ? void 0 : options.emit) !== false)
|
|
367
|
-
this._change$.next(this.data);
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Open menu based on `key` or menu object
|
|
371
|
-
*/
|
|
372
|
-
open(keyOrItem, options) {
|
|
373
|
-
let item = typeof keyOrItem === 'string' ? this.find({ key: keyOrItem }) : keyOrItem;
|
|
374
|
-
if (item == null)
|
|
375
|
-
return;
|
|
376
|
-
this.visit(this.menus, (i) => {
|
|
377
|
-
i._selected = false;
|
|
378
|
-
if (!this.openStrictly)
|
|
379
|
-
i.open = false;
|
|
380
|
-
});
|
|
381
|
-
do {
|
|
382
|
-
item._selected = true;
|
|
383
|
-
item.open = true;
|
|
384
|
-
item = item._parent;
|
|
385
|
-
} while (item);
|
|
386
|
-
if ((options === null || options === void 0 ? void 0 : options.emit) !== false)
|
|
387
|
-
this._change$.next(this.data);
|
|
388
|
-
}
|
|
389
|
-
openAll(status) {
|
|
390
|
-
this.toggleOpen(null, { allStatus: status });
|
|
391
|
-
}
|
|
392
|
-
toggleOpen(keyOrItem, options) {
|
|
393
|
-
let item = typeof keyOrItem === 'string' ? this.find({ key: keyOrItem }) : keyOrItem;
|
|
394
|
-
if (item == null) {
|
|
395
|
-
this.visit(this.menus, (i) => {
|
|
396
|
-
i._selected = false;
|
|
397
|
-
i.open = (options === null || options === void 0 ? void 0 : options.allStatus) === true;
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
else {
|
|
401
|
-
if (!this.openStrictly) {
|
|
402
|
-
this.visit(this.menus, (i) => {
|
|
403
|
-
if (i !== item)
|
|
404
|
-
i.open = false;
|
|
405
|
-
});
|
|
406
|
-
let pItem = item._parent;
|
|
407
|
-
while (pItem) {
|
|
408
|
-
pItem.open = true;
|
|
409
|
-
pItem = pItem._parent;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
item.open = !item.open;
|
|
413
|
-
}
|
|
414
|
-
if ((options === null || options === void 0 ? void 0 : options.emit) !== false)
|
|
415
|
-
this._change$.next(this.data);
|
|
416
|
-
}
|
|
417
|
-
ngOnDestroy() {
|
|
418
|
-
this._change$.unsubscribe();
|
|
419
|
-
this.i18n$.unsubscribe();
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuService, deps: [{ token: ALAIN_I18N_TOKEN, optional: true }, { token: i1$1.ACLService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
423
|
-
MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuService, providedIn: 'root' });
|
|
424
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuService, decorators: [{
|
|
425
|
-
type: Injectable,
|
|
426
|
-
args: [{ providedIn: 'root' }]
|
|
427
|
-
}], ctorParameters: function () {
|
|
428
|
-
return [{ type: undefined, decorators: [{
|
|
429
|
-
type: Optional
|
|
430
|
-
}, {
|
|
431
|
-
type: Inject,
|
|
432
|
-
args: [ALAIN_I18N_TOKEN]
|
|
433
|
-
}] }, { type: i1$1.ACLService, decorators: [{
|
|
434
|
-
type: Optional
|
|
435
|
-
}] }];
|
|
436
|
-
} });
|
|
437
|
-
|
|
438
|
-
const ALAIN_SETTING_KEYS = new InjectionToken('ALAIN_SETTING_KEYS');
|
|
439
|
-
class SettingsService {
|
|
440
|
-
constructor(platform, KEYS) {
|
|
441
|
-
this.platform = platform;
|
|
442
|
-
this.KEYS = KEYS;
|
|
443
|
-
this.notify$ = new Subject();
|
|
444
|
-
this._app = null;
|
|
445
|
-
this._user = null;
|
|
446
|
-
this._layout = null;
|
|
447
|
-
}
|
|
448
|
-
getData(key) {
|
|
449
|
-
if (!this.platform.isBrowser) {
|
|
450
|
-
return null;
|
|
451
|
-
}
|
|
452
|
-
return JSON.parse(localStorage.getItem(key) || 'null') || null;
|
|
453
|
-
}
|
|
454
|
-
setData(key, value) {
|
|
455
|
-
if (!this.platform.isBrowser) {
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
localStorage.setItem(key, JSON.stringify(value));
|
|
459
|
-
}
|
|
460
|
-
get layout() {
|
|
461
|
-
if (!this._layout) {
|
|
462
|
-
this._layout = Object.assign({ fixed: true, collapsed: false, boxed: false, lang: null }, this.getData(this.KEYS.layout));
|
|
463
|
-
this.setData(this.KEYS.layout, this._layout);
|
|
464
|
-
}
|
|
465
|
-
return this._layout;
|
|
466
|
-
}
|
|
467
|
-
get app() {
|
|
468
|
-
if (!this._app) {
|
|
469
|
-
this._app = Object.assign({ year: new Date().getFullYear() }, this.getData(this.KEYS.app));
|
|
470
|
-
this.setData(this.KEYS.app, this._app);
|
|
471
|
-
}
|
|
472
|
-
return this._app;
|
|
473
|
-
}
|
|
474
|
-
get user() {
|
|
475
|
-
if (!this._user) {
|
|
476
|
-
this._user = Object.assign({}, this.getData(this.KEYS.user));
|
|
477
|
-
this.setData(this.KEYS.user, this._user);
|
|
478
|
-
}
|
|
479
|
-
return this._user;
|
|
480
|
-
}
|
|
481
|
-
get notify() {
|
|
482
|
-
return this.notify$.asObservable();
|
|
483
|
-
}
|
|
484
|
-
setLayout(name, value) {
|
|
485
|
-
if (typeof name === 'string') {
|
|
486
|
-
this.layout[name] = value;
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
this._layout = name;
|
|
490
|
-
}
|
|
491
|
-
this.setData(this.KEYS.layout, this._layout);
|
|
492
|
-
this.notify$.next({ type: 'layout', name, value });
|
|
493
|
-
return true;
|
|
494
|
-
}
|
|
495
|
-
getLayout() {
|
|
496
|
-
return this._layout;
|
|
497
|
-
}
|
|
498
|
-
setApp(value) {
|
|
499
|
-
this._app = value;
|
|
500
|
-
this.setData(this.KEYS.app, value);
|
|
501
|
-
this.notify$.next({ type: 'app', value });
|
|
502
|
-
}
|
|
503
|
-
getApp() {
|
|
504
|
-
return this._app;
|
|
505
|
-
}
|
|
506
|
-
setUser(value) {
|
|
507
|
-
this._user = value;
|
|
508
|
-
this.setData(this.KEYS.user, value);
|
|
509
|
-
this.notify$.next({ type: 'user', value });
|
|
510
|
-
}
|
|
511
|
-
getUser() {
|
|
512
|
-
return this._user;
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
SettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SettingsService, deps: [{ token: i1$2.Platform }, { token: ALAIN_SETTING_KEYS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
516
|
-
SettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SettingsService, providedIn: 'root' });
|
|
517
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SettingsService, decorators: [{
|
|
518
|
-
type: Injectable,
|
|
519
|
-
args: [{ providedIn: 'root' }]
|
|
520
|
-
}], ctorParameters: function () {
|
|
521
|
-
return [{ type: i1$2.Platform }, { type: undefined, decorators: [{
|
|
522
|
-
type: Inject,
|
|
523
|
-
args: [ALAIN_SETTING_KEYS]
|
|
524
|
-
}] }];
|
|
525
|
-
} });
|
|
526
|
-
|
|
527
|
-
const REP_MAX = 6;
|
|
528
|
-
class ResponsiveService {
|
|
529
|
-
constructor(cogSrv) {
|
|
530
|
-
this.cog = cogSrv.merge('themeResponsive', {
|
|
531
|
-
rules: {
|
|
532
|
-
1: { xs: 24 },
|
|
533
|
-
2: { xs: 24, sm: 12 },
|
|
534
|
-
3: { xs: 24, sm: 12, md: 8 },
|
|
535
|
-
4: { xs: 24, sm: 12, md: 8, lg: 6 },
|
|
536
|
-
5: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4 },
|
|
537
|
-
6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 2 }
|
|
538
|
-
}
|
|
539
|
-
});
|
|
540
|
-
if (Object.keys(this.cog.rules)
|
|
541
|
-
.map(i => +i)
|
|
542
|
-
.some((i) => i < 1 || i > REP_MAX)) {
|
|
543
|
-
throw new Error(`[theme] the responseive rule index value range must be 1-${REP_MAX}`);
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
genCls(count) {
|
|
547
|
-
const rule = this.cog.rules[count > REP_MAX ? REP_MAX : Math.max(count, 1)];
|
|
548
|
-
const antColClass = 'ant-col';
|
|
549
|
-
const clsMap = [`${antColClass}-xs-${rule.xs}`];
|
|
550
|
-
if (rule.sm)
|
|
551
|
-
clsMap.push(`${antColClass}-sm-${rule.sm}`);
|
|
552
|
-
if (rule.md)
|
|
553
|
-
clsMap.push(`${antColClass}-md-${rule.md}`);
|
|
554
|
-
if (rule.lg)
|
|
555
|
-
clsMap.push(`${antColClass}-lg-${rule.lg}`);
|
|
556
|
-
if (rule.xl)
|
|
557
|
-
clsMap.push(`${antColClass}-xl-${rule.xl}`);
|
|
558
|
-
if (rule.xxl)
|
|
559
|
-
clsMap.push(`${antColClass}-xxl-${rule.xxl}`);
|
|
560
|
-
return clsMap;
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
ResponsiveService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveService, deps: [{ token: i1.AlainConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
564
|
-
ResponsiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveService, providedIn: 'root' });
|
|
565
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveService, decorators: [{
|
|
566
|
-
type: Injectable,
|
|
567
|
-
args: [{ providedIn: 'root' }]
|
|
568
|
-
}], ctorParameters: function () { return [{ type: i1.AlainConfigService }]; } });
|
|
569
|
-
|
|
570
|
-
const HTML_DIR = 'dir';
|
|
571
|
-
const RTL_DIRECTION = 'direction';
|
|
572
|
-
const RTL_NZ_COMPONENTS = ['modal', 'drawer', 'message', 'notification', 'image'];
|
|
573
|
-
const RTL_DELON_COMPONENTS = ['loading', 'onboarding'];
|
|
574
|
-
const LTR = 'ltr';
|
|
575
|
-
const RTL = 'rtl';
|
|
576
|
-
class RTLService {
|
|
577
|
-
/**
|
|
578
|
-
* Get or Set the current text direction
|
|
579
|
-
*
|
|
580
|
-
* 获取或设置当前文字方向
|
|
581
|
-
*/
|
|
582
|
-
get dir() {
|
|
583
|
-
return this._dir;
|
|
584
|
-
}
|
|
585
|
-
set dir(value) {
|
|
586
|
-
this._dir = value;
|
|
587
|
-
this.updateLibConfig();
|
|
588
|
-
this.updateHtml();
|
|
589
|
-
// Should be wait inited
|
|
590
|
-
Promise.resolve().then(() => {
|
|
591
|
-
this.d.value = value;
|
|
592
|
-
this.d.change.emit(value);
|
|
593
|
-
this.srv.setLayout(RTL_DIRECTION, value);
|
|
594
|
-
});
|
|
595
|
-
}
|
|
596
|
-
/**
|
|
597
|
-
* Get the next text direction
|
|
598
|
-
*
|
|
599
|
-
* 获取下一次文字方向
|
|
600
|
-
*/
|
|
601
|
-
get nextDir() {
|
|
602
|
-
return this.dir === LTR ? RTL : LTR;
|
|
603
|
-
}
|
|
604
|
-
/**
|
|
605
|
-
* Subscription change notification
|
|
606
|
-
*
|
|
607
|
-
* 订阅变更通知
|
|
608
|
-
*/
|
|
609
|
-
get change() {
|
|
610
|
-
return this.srv.notify.pipe(filter(w => w.name === RTL_DIRECTION), map(v => v.value));
|
|
611
|
-
}
|
|
612
|
-
constructor(d, srv, nz, delon, platform, doc) {
|
|
613
|
-
this.d = d;
|
|
614
|
-
this.srv = srv;
|
|
615
|
-
this.nz = nz;
|
|
616
|
-
this.delon = delon;
|
|
617
|
-
this.platform = platform;
|
|
618
|
-
this.doc = doc;
|
|
619
|
-
this._dir = LTR;
|
|
620
|
-
this.dir = srv.layout.direction === RTL ? RTL : LTR;
|
|
621
|
-
}
|
|
622
|
-
/**
|
|
623
|
-
* Toggle text direction
|
|
624
|
-
*
|
|
625
|
-
* 切换文字方向
|
|
626
|
-
*/
|
|
627
|
-
toggle() {
|
|
628
|
-
this.dir = this.nextDir;
|
|
629
|
-
}
|
|
630
|
-
updateHtml() {
|
|
631
|
-
if (!this.platform.isBrowser) {
|
|
632
|
-
return;
|
|
633
|
-
}
|
|
634
|
-
const htmlEl = this.doc.querySelector('html');
|
|
635
|
-
if (htmlEl) {
|
|
636
|
-
const dir = this.dir;
|
|
637
|
-
htmlEl.style.direction = dir;
|
|
638
|
-
htmlEl.classList.remove(RTL, LTR);
|
|
639
|
-
htmlEl.classList.add(dir);
|
|
640
|
-
htmlEl.setAttribute(HTML_DIR, dir);
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
updateLibConfig() {
|
|
644
|
-
RTL_NZ_COMPONENTS.forEach(name => {
|
|
645
|
-
this.nz.set(name, { nzDirection: this.dir });
|
|
646
|
-
});
|
|
647
|
-
RTL_DELON_COMPONENTS.forEach(name => {
|
|
648
|
-
this.delon.set(name, { direction: this.dir });
|
|
649
|
-
});
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
RTLService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RTLService, deps: [{ token: i1$3.Directionality }, { token: SettingsService }, { token: i3.NzConfigService }, { token: i1.AlainConfigService }, { token: i1$2.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
653
|
-
RTLService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RTLService, providedIn: 'root' });
|
|
654
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RTLService, decorators: [{
|
|
655
|
-
type: Injectable,
|
|
656
|
-
args: [{ providedIn: 'root' }]
|
|
657
|
-
}], ctorParameters: function () {
|
|
658
|
-
return [{ type: i1$3.Directionality }, { type: SettingsService }, { type: i3.NzConfigService }, { type: i1.AlainConfigService }, { type: i1$2.Platform }, { type: undefined, decorators: [{
|
|
659
|
-
type: Inject,
|
|
660
|
-
args: [DOCUMENT]
|
|
661
|
-
}] }];
|
|
662
|
-
} });
|
|
663
|
-
|
|
664
|
-
class TitleService {
|
|
665
|
-
constructor(injector, title, menuSrv, i18nSrv, doc) {
|
|
666
|
-
this.injector = injector;
|
|
667
|
-
this.title = title;
|
|
668
|
-
this.menuSrv = menuSrv;
|
|
669
|
-
this.i18nSrv = i18nSrv;
|
|
670
|
-
this.doc = doc;
|
|
671
|
-
this._prefix = '';
|
|
672
|
-
this._suffix = '';
|
|
673
|
-
this._separator = ' - ';
|
|
674
|
-
this._reverse = false;
|
|
675
|
-
this.destroy$ = new Subject();
|
|
676
|
-
this.DELAY_TIME = 25;
|
|
677
|
-
/**
|
|
678
|
-
* Set default title name
|
|
679
|
-
*
|
|
680
|
-
* 设置默认标题名
|
|
681
|
-
*/
|
|
682
|
-
this.default = `Not Page Name`;
|
|
683
|
-
this.i18nSrv.change.pipe(takeUntil(this.destroy$)).subscribe(() => this.setTitle());
|
|
684
|
-
}
|
|
685
|
-
/**
|
|
686
|
-
* Set separator
|
|
687
|
-
*
|
|
688
|
-
* 设置分隔符
|
|
689
|
-
*/
|
|
690
|
-
set separator(value) {
|
|
691
|
-
this._separator = value;
|
|
692
|
-
}
|
|
693
|
-
/**
|
|
694
|
-
* Set prefix
|
|
695
|
-
*
|
|
696
|
-
* 设置前缀
|
|
697
|
-
*/
|
|
698
|
-
set prefix(value) {
|
|
699
|
-
this._prefix = value;
|
|
700
|
-
}
|
|
701
|
-
/**
|
|
702
|
-
* Set suffix
|
|
703
|
-
*
|
|
704
|
-
* 设置后缀
|
|
705
|
-
*/
|
|
706
|
-
set suffix(value) {
|
|
707
|
-
this._suffix = value;
|
|
708
|
-
}
|
|
709
|
-
/**
|
|
710
|
-
* Set whether to reverse
|
|
711
|
-
*
|
|
712
|
-
* 设置是否反转
|
|
713
|
-
*/
|
|
714
|
-
set reverse(value) {
|
|
715
|
-
this._reverse = value;
|
|
716
|
-
}
|
|
717
|
-
getByElement() {
|
|
718
|
-
return of('').pipe(delay(this.DELAY_TIME), map(() => {
|
|
719
|
-
const el = ((this.selector != null ? this.doc.querySelector(this.selector) : null) ||
|
|
720
|
-
this.doc.querySelector('.alain-default__content-title h1') ||
|
|
721
|
-
this.doc.querySelector('.page-header__title'));
|
|
722
|
-
if (el) {
|
|
723
|
-
let text = '';
|
|
724
|
-
el.childNodes.forEach(val => {
|
|
725
|
-
if (!text && val.nodeType === 3) {
|
|
726
|
-
text = val.textContent.trim();
|
|
727
|
-
}
|
|
728
|
-
});
|
|
729
|
-
return text || el.firstChild.textContent.trim();
|
|
730
|
-
}
|
|
731
|
-
return '';
|
|
732
|
-
}));
|
|
733
|
-
}
|
|
734
|
-
getByRoute() {
|
|
735
|
-
let next = this.injector.get(ActivatedRoute);
|
|
736
|
-
while (next.firstChild)
|
|
737
|
-
next = next.firstChild;
|
|
738
|
-
const data = (next.snapshot && next.snapshot.data) || {};
|
|
739
|
-
if (data.titleI18n && this.i18nSrv)
|
|
740
|
-
data.title = this.i18nSrv.fanyi(data.titleI18n);
|
|
741
|
-
return isObservable(data.title) ? data.title : of(data.title);
|
|
742
|
-
}
|
|
743
|
-
getByMenu() {
|
|
744
|
-
const menus = this.menuSrv.getPathByUrl(this.injector.get(Router).url);
|
|
745
|
-
if (!menus || menus.length <= 0)
|
|
746
|
-
return of('');
|
|
747
|
-
const item = menus[menus.length - 1];
|
|
748
|
-
let title;
|
|
749
|
-
if (item.i18n && this.i18nSrv)
|
|
750
|
-
title = this.i18nSrv.fanyi(item.i18n);
|
|
751
|
-
return of(title || item.text);
|
|
752
|
-
}
|
|
753
|
-
/**
|
|
754
|
-
* Set the document title
|
|
755
|
-
*/
|
|
756
|
-
setTitle(title) {
|
|
757
|
-
var _a;
|
|
758
|
-
(_a = this.tit$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
759
|
-
this.tit$ = of(title)
|
|
760
|
-
.pipe(switchMap(tit => (tit ? of(tit) : this.getByRoute())), switchMap(tit => (tit ? of(tit) : this.getByMenu())), switchMap(tit => (tit ? of(tit) : this.getByElement())), map(tit => tit || this.default), map(title => (!Array.isArray(title) ? [title] : title)), takeUntil(this.destroy$))
|
|
761
|
-
.subscribe(titles => {
|
|
762
|
-
let newTitles = [];
|
|
763
|
-
if (this._prefix) {
|
|
764
|
-
newTitles.push(this._prefix);
|
|
765
|
-
}
|
|
766
|
-
newTitles.push(...titles);
|
|
767
|
-
if (this._suffix) {
|
|
768
|
-
newTitles.push(this._suffix);
|
|
769
|
-
}
|
|
770
|
-
if (this._reverse) {
|
|
771
|
-
newTitles = newTitles.reverse();
|
|
772
|
-
}
|
|
773
|
-
this.title.setTitle(newTitles.join(this._separator));
|
|
774
|
-
});
|
|
775
|
-
}
|
|
776
|
-
/**
|
|
777
|
-
* Set i18n key of the document title
|
|
778
|
-
*/
|
|
779
|
-
setTitleByI18n(key, params) {
|
|
780
|
-
this.setTitle(this.i18nSrv.fanyi(key, params));
|
|
781
|
-
}
|
|
782
|
-
ngOnDestroy() {
|
|
783
|
-
var _a;
|
|
784
|
-
(_a = this.tit$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
785
|
-
this.destroy$.next();
|
|
786
|
-
this.destroy$.complete();
|
|
787
|
-
}
|
|
788
|
-
}
|
|
789
|
-
TitleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TitleService, deps: [{ token: i0.Injector }, { token: i1$4.Title }, { token: MenuService }, { token: ALAIN_I18N_TOKEN, optional: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
790
|
-
TitleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TitleService, providedIn: 'root' });
|
|
791
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TitleService, decorators: [{
|
|
792
|
-
type: Injectable,
|
|
793
|
-
args: [{ providedIn: 'root' }]
|
|
794
|
-
}], ctorParameters: function () {
|
|
795
|
-
return [{ type: i0.Injector }, { type: i1$4.Title }, { type: MenuService }, { type: undefined, decorators: [{
|
|
796
|
-
type: Optional
|
|
797
|
-
}, {
|
|
798
|
-
type: Inject,
|
|
799
|
-
args: [ALAIN_I18N_TOKEN]
|
|
800
|
-
}] }, { type: undefined, decorators: [{
|
|
801
|
-
type: Inject,
|
|
802
|
-
args: [DOCUMENT]
|
|
803
|
-
}] }];
|
|
804
|
-
} });
|
|
805
|
-
|
|
806
|
-
class I18nPipe {
|
|
807
|
-
constructor(i18n) {
|
|
808
|
-
this.i18n = i18n;
|
|
809
|
-
}
|
|
810
|
-
transform(key, params) {
|
|
811
|
-
return this.i18n.fanyi(key, params);
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
I18nPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nPipe, deps: [{ token: ALAIN_I18N_TOKEN }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
815
|
-
I18nPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: I18nPipe, name: "i18n" });
|
|
816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nPipe, decorators: [{
|
|
817
|
-
type: Pipe,
|
|
818
|
-
args: [{ name: 'i18n' }]
|
|
819
|
-
}], ctorParameters: function () {
|
|
820
|
-
return [{ type: undefined, decorators: [{
|
|
821
|
-
type: Inject,
|
|
822
|
-
args: [ALAIN_I18N_TOKEN]
|
|
823
|
-
}] }];
|
|
824
|
-
} });
|
|
825
|
-
|
|
826
|
-
class AlainI18NGuard {
|
|
827
|
-
constructor(i18nSrv, cogSrv) {
|
|
828
|
-
this.i18nSrv = i18nSrv;
|
|
829
|
-
this.cogSrv = cogSrv;
|
|
830
|
-
}
|
|
831
|
-
resolve(route) {
|
|
832
|
-
var _a, _b;
|
|
833
|
-
const lang = route.params && route.params[(_b = (_a = this.cogSrv.get('themeI18n')) === null || _a === void 0 ? void 0 : _a.paramNameOfUrlGuard) !== null && _b !== void 0 ? _b : 'i18n'];
|
|
834
|
-
if (lang != null) {
|
|
835
|
-
this.i18nSrv.use(lang);
|
|
836
|
-
}
|
|
837
|
-
return of(true);
|
|
838
|
-
}
|
|
839
|
-
canActivateChild(childRoute, _) {
|
|
840
|
-
return this.resolve(childRoute);
|
|
841
|
-
}
|
|
842
|
-
canActivate(route, _) {
|
|
843
|
-
return this.resolve(route);
|
|
844
|
-
}
|
|
845
|
-
}
|
|
846
|
-
AlainI18NGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18NGuard, deps: [{ token: ALAIN_I18N_TOKEN, optional: true }, { token: i1.AlainConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
847
|
-
AlainI18NGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18NGuard, providedIn: 'root' });
|
|
848
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainI18NGuard, decorators: [{
|
|
849
|
-
type: Injectable,
|
|
850
|
-
args: [{ providedIn: 'root' }]
|
|
851
|
-
}], ctorParameters: function () {
|
|
852
|
-
return [{ type: undefined, decorators: [{
|
|
853
|
-
type: Optional
|
|
854
|
-
}, {
|
|
855
|
-
type: Inject,
|
|
856
|
-
args: [ALAIN_I18N_TOKEN]
|
|
857
|
-
}] }, { type: i1.AlainConfigService }];
|
|
858
|
-
} });
|
|
859
|
-
|
|
860
|
-
const DELON_LOCALE = new InjectionToken('delon-locale');
|
|
861
|
-
|
|
862
|
-
var zhCN = {
|
|
863
|
-
abbr: 'zh-CN',
|
|
864
|
-
exception: {
|
|
865
|
-
403: '抱歉,你无权访问该页面',
|
|
866
|
-
404: '抱歉,你访问的页面不存在',
|
|
867
|
-
500: '抱歉,服务器出错了',
|
|
868
|
-
backToHome: '返回首页'
|
|
869
|
-
},
|
|
870
|
-
noticeIcon: {
|
|
871
|
-
emptyText: '暂无数据',
|
|
872
|
-
clearText: '清空'
|
|
873
|
-
},
|
|
874
|
-
reuseTab: {
|
|
875
|
-
close: '关闭标签',
|
|
876
|
-
closeOther: '关闭其它标签',
|
|
877
|
-
closeRight: '关闭右侧标签',
|
|
878
|
-
refresh: '刷新'
|
|
879
|
-
},
|
|
880
|
-
tagSelect: {
|
|
881
|
-
expand: '展开',
|
|
882
|
-
collapse: '收起'
|
|
883
|
-
},
|
|
884
|
-
miniProgress: {
|
|
885
|
-
target: '目标值:'
|
|
886
|
-
},
|
|
887
|
-
st: {
|
|
888
|
-
total: '共 {{total}} 条',
|
|
889
|
-
filterConfirm: '确定',
|
|
890
|
-
filterReset: '重置'
|
|
891
|
-
},
|
|
892
|
-
sf: {
|
|
893
|
-
submit: '提交',
|
|
894
|
-
reset: '重置',
|
|
895
|
-
search: '搜索',
|
|
896
|
-
edit: '保存',
|
|
897
|
-
addText: '添加',
|
|
898
|
-
removeText: '移除',
|
|
899
|
-
checkAllText: '全选',
|
|
900
|
-
error: {
|
|
901
|
-
'false schema': `布尔模式出错`,
|
|
902
|
-
$ref: `无法找到引用{ref}`,
|
|
903
|
-
additionalItems: `不允许超过{limit}个元素`,
|
|
904
|
-
additionalProperties: `不允许有额外的属性`,
|
|
905
|
-
anyOf: `数据应为 anyOf 所指定的其中一个`,
|
|
906
|
-
dependencies: `应当拥有属性{property}的依赖属性{deps}`,
|
|
907
|
-
enum: `应当是预设定的枚举值之一`,
|
|
908
|
-
format: `格式不正确`,
|
|
909
|
-
type: `类型应当是 {type}`,
|
|
910
|
-
required: `必填项`,
|
|
911
|
-
maxLength: `至多 {limit} 个字符`,
|
|
912
|
-
minLength: `至少 {limit} 个字符以上`,
|
|
913
|
-
minimum: `必须 {comparison}{limit}`,
|
|
914
|
-
formatMinimum: `必须 {comparison}{limit}`,
|
|
915
|
-
maximum: `必须 {comparison}{limit}`,
|
|
916
|
-
formatMaximum: `必须 {comparison}{limit}`,
|
|
917
|
-
maxItems: `不应多于 {limit} 个项`,
|
|
918
|
-
minItems: `不应少于 {limit} 个项`,
|
|
919
|
-
maxProperties: `不应多于 {limit} 个属性`,
|
|
920
|
-
minProperties: `不应少于 {limit} 个属性`,
|
|
921
|
-
multipleOf: `应当是 {multipleOf} 的整数倍`,
|
|
922
|
-
not: `不应当匹配 "not" schema`,
|
|
923
|
-
oneOf: `只能匹配一个 "oneOf" 中的 schema`,
|
|
924
|
-
pattern: `数据格式不正确`,
|
|
925
|
-
uniqueItems: `不应当含有重复项 (第 {j} 项与第 {i} 项是重复的)`,
|
|
926
|
-
custom: `格式不正确`,
|
|
927
|
-
propertyNames: `属性名 "{propertyName}" 无效`,
|
|
928
|
-
patternRequired: `应当有属性匹配模式 {missingPattern}`,
|
|
929
|
-
switch: `由于 {caseIndex} 失败,未通过 "switch" 校验`,
|
|
930
|
-
const: `应当等于常量`,
|
|
931
|
-
contains: `应当包含一个有效项`,
|
|
932
|
-
formatExclusiveMaximum: `formatExclusiveMaximum 应当是布尔值`,
|
|
933
|
-
formatExclusiveMinimum: `formatExclusiveMinimum 应当是布尔值`,
|
|
934
|
-
if: `应当匹配模式 "{failingKeyword}"`
|
|
935
|
-
}
|
|
936
|
-
},
|
|
937
|
-
onboarding: {
|
|
938
|
-
skip: `跳过`,
|
|
939
|
-
prev: `上一项`,
|
|
940
|
-
next: `下一项`,
|
|
941
|
-
done: `完成`
|
|
942
|
-
}
|
|
943
|
-
};
|
|
944
|
-
|
|
945
|
-
class DelonLocaleService {
|
|
946
|
-
constructor(locale) {
|
|
947
|
-
this._locale = zhCN;
|
|
948
|
-
this.change$ = new BehaviorSubject(this._locale);
|
|
949
|
-
this.setLocale(locale || zhCN);
|
|
950
|
-
}
|
|
951
|
-
get change() {
|
|
952
|
-
return this.change$.asObservable();
|
|
953
|
-
}
|
|
954
|
-
setLocale(locale) {
|
|
955
|
-
if (this._locale && this._locale.abbr === locale.abbr) {
|
|
956
|
-
return;
|
|
957
|
-
}
|
|
958
|
-
this._locale = locale;
|
|
959
|
-
this.change$.next(locale);
|
|
960
|
-
}
|
|
961
|
-
get locale() {
|
|
962
|
-
return this._locale;
|
|
963
|
-
}
|
|
964
|
-
getData(path) {
|
|
965
|
-
return (this._locale[path] || {});
|
|
966
|
-
}
|
|
967
|
-
}
|
|
968
|
-
DelonLocaleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DelonLocaleService, deps: [{ token: DELON_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
969
|
-
DelonLocaleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DelonLocaleService });
|
|
970
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DelonLocaleService, decorators: [{
|
|
971
|
-
type: Injectable
|
|
972
|
-
}], ctorParameters: function () {
|
|
973
|
-
return [{ type: undefined, decorators: [{
|
|
974
|
-
type: Inject,
|
|
975
|
-
args: [DELON_LOCALE]
|
|
976
|
-
}] }];
|
|
977
|
-
} });
|
|
978
|
-
function DELON_LOCALE_SERVICE_PROVIDER_FACTORY(exist, locale) {
|
|
979
|
-
return exist || new DelonLocaleService(locale);
|
|
980
|
-
}
|
|
981
|
-
const DELON_LOCALE_SERVICE_PROVIDER = {
|
|
982
|
-
provide: DelonLocaleService,
|
|
983
|
-
useFactory: DELON_LOCALE_SERVICE_PROVIDER_FACTORY,
|
|
984
|
-
deps: [[new Optional(), new SkipSelf(), DelonLocaleService], DELON_LOCALE]
|
|
985
|
-
};
|
|
986
|
-
|
|
987
|
-
class DelonLocaleModule {
|
|
988
|
-
}
|
|
989
|
-
DelonLocaleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DelonLocaleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
990
|
-
DelonLocaleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DelonLocaleModule });
|
|
991
|
-
DelonLocaleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DelonLocaleModule, providers: [{ provide: DELON_LOCALE, useValue: zhCN }, DELON_LOCALE_SERVICE_PROVIDER] });
|
|
992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DelonLocaleModule, decorators: [{
|
|
993
|
-
type: NgModule,
|
|
994
|
-
args: [{
|
|
995
|
-
providers: [{ provide: DELON_LOCALE, useValue: zhCN }, DELON_LOCALE_SERVICE_PROVIDER]
|
|
996
|
-
}]
|
|
997
|
-
}] });
|
|
998
|
-
|
|
999
|
-
var enUS = {
|
|
1000
|
-
abbr: 'en-US',
|
|
1001
|
-
exception: {
|
|
1002
|
-
403: `Sorry, you don't have access to this page`,
|
|
1003
|
-
404: `Sorry, the page you visited does not exist`,
|
|
1004
|
-
500: `Sorry, the server is reporting an error`,
|
|
1005
|
-
backToHome: 'Back To Home'
|
|
1006
|
-
},
|
|
1007
|
-
noticeIcon: {
|
|
1008
|
-
emptyText: 'No data',
|
|
1009
|
-
clearText: 'Clear'
|
|
1010
|
-
},
|
|
1011
|
-
reuseTab: {
|
|
1012
|
-
close: 'Close tab',
|
|
1013
|
-
closeOther: 'Close other tabs',
|
|
1014
|
-
closeRight: 'Close tabs to right',
|
|
1015
|
-
refresh: 'Refresh'
|
|
1016
|
-
},
|
|
1017
|
-
tagSelect: {
|
|
1018
|
-
expand: 'Expand',
|
|
1019
|
-
collapse: 'Collapse'
|
|
1020
|
-
},
|
|
1021
|
-
miniProgress: {
|
|
1022
|
-
target: 'Target: '
|
|
1023
|
-
},
|
|
1024
|
-
st: {
|
|
1025
|
-
total: '{{range[0]}} - {{range[1]}} of {{total}}',
|
|
1026
|
-
filterConfirm: 'OK',
|
|
1027
|
-
filterReset: 'Reset'
|
|
1028
|
-
},
|
|
1029
|
-
sf: {
|
|
1030
|
-
submit: 'Submit',
|
|
1031
|
-
reset: 'Reset',
|
|
1032
|
-
search: 'Search',
|
|
1033
|
-
edit: 'Save',
|
|
1034
|
-
addText: 'Add',
|
|
1035
|
-
removeText: 'Remove',
|
|
1036
|
-
checkAllText: 'Check all',
|
|
1037
|
-
error: {
|
|
1038
|
-
'false schema': `Boolean schema is false`,
|
|
1039
|
-
$ref: `Can't resolve reference {ref}`,
|
|
1040
|
-
additionalItems: `Should not have more than {limit} item`,
|
|
1041
|
-
additionalProperties: `Should not have additional properties`,
|
|
1042
|
-
anyOf: `Should match some schema in "anyOf"`,
|
|
1043
|
-
dependencies: `should have property {deps} when property {property} is present`,
|
|
1044
|
-
enum: `Should be equal to one of predefined values`,
|
|
1045
|
-
format: `Should match format "{format}"`,
|
|
1046
|
-
type: `Should be {type}`,
|
|
1047
|
-
required: `Required`,
|
|
1048
|
-
maxLength: `Should not be longer than {limit} character`,
|
|
1049
|
-
minLength: `Should not be shorter than {limit} character`,
|
|
1050
|
-
minimum: `Should be {comparison} {limit}`,
|
|
1051
|
-
formatMinimum: `Should be {comparison} {limit}`,
|
|
1052
|
-
maximum: `Should be {comparison} {limit}`,
|
|
1053
|
-
formatMaximum: `Should be {comparison} {limit}`,
|
|
1054
|
-
maxItems: `Should not have more than {limit} item`,
|
|
1055
|
-
minItems: `Should not have less than {limit} item`,
|
|
1056
|
-
maxProperties: `Should not have more than {limit} property`,
|
|
1057
|
-
minProperties: `Should not have less than {limit} property`,
|
|
1058
|
-
multipleOf: `Should be a multiple of {multipleOf}`,
|
|
1059
|
-
not: `Should not be valid according to schema in "not"`,
|
|
1060
|
-
oneOf: `Should match exactly one schema in "oneOf"`,
|
|
1061
|
-
pattern: `Should match pattern "{pattern}"`,
|
|
1062
|
-
uniqueItems: `Should not have duplicate items (items ## {j} and {i} are identical)`,
|
|
1063
|
-
custom: `Should match format`,
|
|
1064
|
-
propertyNames: `Property name "{propertyName}" is invalid`,
|
|
1065
|
-
patternRequired: `Should have property matching pattern "{missingPattern}"`,
|
|
1066
|
-
switch: `Should pass "switch" keyword validation, case {caseIndex} fails`,
|
|
1067
|
-
const: `Should be equal to constant`,
|
|
1068
|
-
contains: `Should contain a valid item`,
|
|
1069
|
-
formatExclusiveMaximum: `formatExclusiveMaximum should be boolean`,
|
|
1070
|
-
formatExclusiveMinimum: `formatExclusiveMinimum should be boolean`,
|
|
1071
|
-
if: `Should match "{failingKeyword}" schema`
|
|
1072
|
-
}
|
|
1073
|
-
},
|
|
1074
|
-
onboarding: {
|
|
1075
|
-
skip: `Skip`,
|
|
1076
|
-
prev: `Prev`,
|
|
1077
|
-
next: `Next`,
|
|
1078
|
-
done: `Done`
|
|
1079
|
-
}
|
|
1080
|
-
};
|
|
1081
|
-
|
|
1082
|
-
var zhTW = {
|
|
1083
|
-
abbr: 'zh-TW',
|
|
1084
|
-
exception: {
|
|
1085
|
-
403: '抱歉,你無權訪問該頁面',
|
|
1086
|
-
404: '抱歉,你訪問的頁面不存在',
|
|
1087
|
-
500: '抱歉,服務器出錯了',
|
|
1088
|
-
backToHome: '返回首頁'
|
|
1089
|
-
},
|
|
1090
|
-
noticeIcon: {
|
|
1091
|
-
emptyText: '暫無數據',
|
|
1092
|
-
clearText: '清空'
|
|
1093
|
-
},
|
|
1094
|
-
reuseTab: {
|
|
1095
|
-
close: '關閉標簽',
|
|
1096
|
-
closeOther: '關閉其它標簽',
|
|
1097
|
-
closeRight: '關閉右側標簽',
|
|
1098
|
-
refresh: '刷新'
|
|
1099
|
-
},
|
|
1100
|
-
tagSelect: {
|
|
1101
|
-
expand: '展開',
|
|
1102
|
-
collapse: '收起'
|
|
1103
|
-
},
|
|
1104
|
-
miniProgress: {
|
|
1105
|
-
target: '目標值:'
|
|
1106
|
-
},
|
|
1107
|
-
st: {
|
|
1108
|
-
total: '共 {{total}} 條',
|
|
1109
|
-
filterConfirm: '確定',
|
|
1110
|
-
filterReset: '重置'
|
|
1111
|
-
},
|
|
1112
|
-
sf: {
|
|
1113
|
-
submit: '提交',
|
|
1114
|
-
reset: '重置',
|
|
1115
|
-
search: '搜索',
|
|
1116
|
-
edit: '保存',
|
|
1117
|
-
addText: '添加',
|
|
1118
|
-
removeText: '移除',
|
|
1119
|
-
checkAllText: '全選',
|
|
1120
|
-
error: {
|
|
1121
|
-
'false schema': `佈爾模式出錯`,
|
|
1122
|
-
$ref: `無法找到引用{ref}`,
|
|
1123
|
-
additionalItems: `不允許超過{ref}`,
|
|
1124
|
-
additionalProperties: `不允許有額外的屬性`,
|
|
1125
|
-
anyOf: `數據應為 anyOf 所指定的其中一個`,
|
|
1126
|
-
dependencies: `應當擁有屬性{property}的依賴屬性{deps}`,
|
|
1127
|
-
enum: `應當是預設定的枚舉值之一`,
|
|
1128
|
-
format: `格式不正確`,
|
|
1129
|
-
type: `類型應當是 {type}`,
|
|
1130
|
-
required: `必填項`,
|
|
1131
|
-
maxLength: `至多 {limit} 個字符`,
|
|
1132
|
-
minLength: `至少 {limit} 個字符以上`,
|
|
1133
|
-
minimum: `必須 {comparison}{limit}`,
|
|
1134
|
-
formatMinimum: `必須 {comparison}{limit}`,
|
|
1135
|
-
maximum: `必須 {comparison}{limit}`,
|
|
1136
|
-
formatMaximum: `必須 {comparison}{limit}`,
|
|
1137
|
-
maxItems: `不應多於 {limit} 個項`,
|
|
1138
|
-
minItems: `不應少於 {limit} 個項`,
|
|
1139
|
-
maxProperties: `不應多於 {limit} 個屬性`,
|
|
1140
|
-
minProperties: `不應少於 {limit} 個屬性`,
|
|
1141
|
-
multipleOf: `應當是 {multipleOf} 的整數倍`,
|
|
1142
|
-
not: `不應當匹配 "not" schema`,
|
|
1143
|
-
oneOf: `隻能匹配一個 "oneOf" 中的 schema`,
|
|
1144
|
-
pattern: `數據格式不正確`,
|
|
1145
|
-
uniqueItems: `不應當含有重複項 (第 {j} 項與第 {i} 項是重複的)`,
|
|
1146
|
-
custom: `格式不正確`,
|
|
1147
|
-
propertyNames: `屬性名 "{propertyName}" 無效`,
|
|
1148
|
-
patternRequired: `應當有屬性匹配模式 {missingPattern}`,
|
|
1149
|
-
switch: `由於 {caseIndex} 失敗,未通過 "switch" 校驗`,
|
|
1150
|
-
const: `應當等於常量`,
|
|
1151
|
-
contains: `應當包含一個有效項`,
|
|
1152
|
-
formatExclusiveMaximum: `formatExclusiveMaximum 應當是佈爾值`,
|
|
1153
|
-
formatExclusiveMinimum: `formatExclusiveMinimum 應當是佈爾值`,
|
|
1154
|
-
if: `應當匹配模式 "{failingKeyword}"`
|
|
1155
|
-
}
|
|
1156
|
-
},
|
|
1157
|
-
onboarding: {
|
|
1158
|
-
skip: `跳過`,
|
|
1159
|
-
prev: `上一項`,
|
|
1160
|
-
next: `下一項`,
|
|
1161
|
-
done: `完成`
|
|
1162
|
-
}
|
|
1163
|
-
};
|
|
1164
|
-
|
|
1165
|
-
var trTR = {
|
|
1166
|
-
abbr: 'tr-TR',
|
|
1167
|
-
exception: {
|
|
1168
|
-
403: `Üzgünüz, bu sayfaya erişiminiz yok`,
|
|
1169
|
-
404: `Maalesef bu sayfa mevcut değil`,
|
|
1170
|
-
500: `Üzgünüz, sunucu hatası`,
|
|
1171
|
-
backToHome: `Ana Sayfa'ya geri dön`
|
|
1172
|
-
},
|
|
1173
|
-
noticeIcon: {
|
|
1174
|
-
emptyText: 'Veri yok',
|
|
1175
|
-
clearText: 'Temiz'
|
|
1176
|
-
},
|
|
1177
|
-
reuseTab: {
|
|
1178
|
-
close: 'Sekmeyi Kapat',
|
|
1179
|
-
closeOther: 'Diğer sekmeleri kapat',
|
|
1180
|
-
closeRight: 'Sağdaki sekmeleri kapat',
|
|
1181
|
-
refresh: 'täzele'
|
|
1182
|
-
},
|
|
1183
|
-
tagSelect: {
|
|
1184
|
-
expand: 'Genişlet',
|
|
1185
|
-
collapse: 'Daralt'
|
|
1186
|
-
},
|
|
1187
|
-
miniProgress: {
|
|
1188
|
-
target: 'Hedef: '
|
|
1189
|
-
},
|
|
1190
|
-
st: {
|
|
1191
|
-
total: '{{range[0]}} ile {{range[1]}} arasında {{total}}',
|
|
1192
|
-
filterConfirm: 'Tamam',
|
|
1193
|
-
filterReset: 'Sıfırla'
|
|
1194
|
-
},
|
|
1195
|
-
sf: {
|
|
1196
|
-
submit: 'Gönder',
|
|
1197
|
-
reset: 'Sıfırla',
|
|
1198
|
-
search: 'Ara',
|
|
1199
|
-
edit: 'Kaydet',
|
|
1200
|
-
addText: 'Ekle',
|
|
1201
|
-
removeText: 'Kaldır',
|
|
1202
|
-
checkAllText: 'Tümünü kontrol et',
|
|
1203
|
-
error: {
|
|
1204
|
-
'false schema': `Boolean schema is false`,
|
|
1205
|
-
$ref: `Can't resolve reference {ref}`,
|
|
1206
|
-
additionalItems: `Should not have more than {limit} item`,
|
|
1207
|
-
additionalProperties: `Should not have additional properties`,
|
|
1208
|
-
anyOf: `Should match some schema in "anyOf"`,
|
|
1209
|
-
dependencies: `should have property {deps} when property {property} is present`,
|
|
1210
|
-
enum: `Should be equal to one of predefined values`,
|
|
1211
|
-
format: `Should match format "{format}"`,
|
|
1212
|
-
type: `Should be {type}`,
|
|
1213
|
-
required: `Required`,
|
|
1214
|
-
maxLength: `Should not be longer than {limit} character`,
|
|
1215
|
-
minLength: `Should not be shorter than {limit} character`,
|
|
1216
|
-
minimum: `Should be {comparison} {limit}`,
|
|
1217
|
-
formatMinimum: `Should be {comparison} {limit}`,
|
|
1218
|
-
maximum: `Should be {comparison} {limit}`,
|
|
1219
|
-
formatMaximum: `Should be {comparison} {limit}`,
|
|
1220
|
-
maxItems: `Should not have more than {limit} item`,
|
|
1221
|
-
minItems: `Should not have less than {limit} item`,
|
|
1222
|
-
maxProperties: `Should not have more than {limit} property`,
|
|
1223
|
-
minProperties: `Should not have less than {limit} property`,
|
|
1224
|
-
multipleOf: `Should be a multiple of {multipleOf}`,
|
|
1225
|
-
not: `Should not be valid according to schema in "not"`,
|
|
1226
|
-
oneOf: `Should match exactly one schema in "oneOf"`,
|
|
1227
|
-
pattern: `Should match pattern "{pattern}"`,
|
|
1228
|
-
uniqueItems: `Should not have duplicate items (items ## {j} and {i} are identical)`,
|
|
1229
|
-
custom: `Should match format`,
|
|
1230
|
-
propertyNames: `Property name "{propertyName}" is invalid`,
|
|
1231
|
-
patternRequired: `Should have property matching pattern "{missingPattern}"`,
|
|
1232
|
-
switch: `Should pass "switch" keyword validation, case {caseIndex} fails`,
|
|
1233
|
-
const: `Should be equal to constant`,
|
|
1234
|
-
contains: `Should contain a valid item`,
|
|
1235
|
-
formatExclusiveMaximum: `formatExclusiveMaximum should be boolean`,
|
|
1236
|
-
formatExclusiveMinimum: `formatExclusiveMinimum should be boolean`,
|
|
1237
|
-
if: `Should match "{failingKeyword}" schema`
|
|
1238
|
-
}
|
|
1239
|
-
},
|
|
1240
|
-
onboarding: {
|
|
1241
|
-
skip: `Atla`,
|
|
1242
|
-
prev: `Önceki`,
|
|
1243
|
-
next: `Sonraki`,
|
|
1244
|
-
done: `Bitti`
|
|
1245
|
-
}
|
|
1246
|
-
};
|
|
1247
|
-
|
|
1248
|
-
var plPL = {
|
|
1249
|
-
abbr: 'pl-PL',
|
|
1250
|
-
exception: {
|
|
1251
|
-
403: `Niestety, nie masz uprawnień do tej strony`,
|
|
1252
|
-
404: `Niestety, ta strona nie istnieje`,
|
|
1253
|
-
500: `Niestety, błąd serwera`,
|
|
1254
|
-
backToHome: 'Powróć do strony głównej'
|
|
1255
|
-
},
|
|
1256
|
-
noticeIcon: {
|
|
1257
|
-
emptyText: 'Brak danych',
|
|
1258
|
-
clearText: 'Wyczyść'
|
|
1259
|
-
},
|
|
1260
|
-
reuseTab: {
|
|
1261
|
-
close: 'Zamknij kartę',
|
|
1262
|
-
closeOther: 'Zamknij inne karty',
|
|
1263
|
-
closeRight: 'Zamknij karty po prawej',
|
|
1264
|
-
refresh: 'Refresh'
|
|
1265
|
-
},
|
|
1266
|
-
tagSelect: {
|
|
1267
|
-
expand: 'Rozszerz',
|
|
1268
|
-
collapse: 'Zmniejsz'
|
|
1269
|
-
},
|
|
1270
|
-
miniProgress: {
|
|
1271
|
-
target: 'Cel: '
|
|
1272
|
-
},
|
|
1273
|
-
st: {
|
|
1274
|
-
total: '{{range[0]}} - {{range[1]}} z {{total}}',
|
|
1275
|
-
filterConfirm: 'OK',
|
|
1276
|
-
filterReset: 'Wyczyść'
|
|
1277
|
-
},
|
|
1278
|
-
sf: {
|
|
1279
|
-
submit: 'Wyślij',
|
|
1280
|
-
reset: 'Resetuj',
|
|
1281
|
-
search: 'Szukaj',
|
|
1282
|
-
edit: 'Zapisz',
|
|
1283
|
-
addText: 'Dodaj',
|
|
1284
|
-
removeText: 'Usuń',
|
|
1285
|
-
checkAllText: 'Zaznacz wszystkie',
|
|
1286
|
-
error: {
|
|
1287
|
-
'false schema': `Boolean schema is false`,
|
|
1288
|
-
$ref: `Can't resolve reference {ref}`,
|
|
1289
|
-
additionalItems: `Should not have more than {limit} item`,
|
|
1290
|
-
additionalProperties: `Should not have additional properties`,
|
|
1291
|
-
anyOf: `Should match some schema in "anyOf"`,
|
|
1292
|
-
dependencies: `should have property {deps} when property {property} is present`,
|
|
1293
|
-
enum: `Should be equal to one of predefined values`,
|
|
1294
|
-
format: `Should match format "{format}"`,
|
|
1295
|
-
type: `Should be {type}`,
|
|
1296
|
-
required: `Required`,
|
|
1297
|
-
maxLength: `Should not be longer than {limit} character`,
|
|
1298
|
-
minLength: `Should not be shorter than {limit} character`,
|
|
1299
|
-
minimum: `Should be {comparison} {limit}`,
|
|
1300
|
-
formatMinimum: `Should be {comparison} {limit}`,
|
|
1301
|
-
maximum: `Should be {comparison} {limit}`,
|
|
1302
|
-
formatMaximum: `Should be {comparison} {limit}`,
|
|
1303
|
-
maxItems: `Should not have more than {limit} item`,
|
|
1304
|
-
minItems: `Should not have less than {limit} item`,
|
|
1305
|
-
maxProperties: `Should not have more than {limit} property`,
|
|
1306
|
-
minProperties: `Should not have less than {limit} property`,
|
|
1307
|
-
multipleOf: `Should be a multiple of {multipleOf}`,
|
|
1308
|
-
not: `Should not be valid according to schema in "not"`,
|
|
1309
|
-
oneOf: `Should match exactly one schema in "oneOf"`,
|
|
1310
|
-
pattern: `Should match pattern "{pattern}"`,
|
|
1311
|
-
uniqueItems: `Should not have duplicate items (items ## {j} and {i} are identical)`,
|
|
1312
|
-
custom: `Should match format`,
|
|
1313
|
-
propertyNames: `Property name "{propertyName}" is invalid`,
|
|
1314
|
-
patternRequired: `Should have property matching pattern "{missingPattern}"`,
|
|
1315
|
-
switch: `Should pass "switch" keyword validation, case {caseIndex} fails`,
|
|
1316
|
-
const: `Should be equal to constant`,
|
|
1317
|
-
contains: `Should contain a valid item`,
|
|
1318
|
-
formatExclusiveMaximum: `formatExclusiveMaximum should be boolean`,
|
|
1319
|
-
formatExclusiveMinimum: `formatExclusiveMinimum should be boolean`,
|
|
1320
|
-
if: `Should match "{failingKeyword}" schema`
|
|
1321
|
-
}
|
|
1322
|
-
},
|
|
1323
|
-
onboarding: {
|
|
1324
|
-
skip: `Pominąć`,
|
|
1325
|
-
prev: `Poprzedni`,
|
|
1326
|
-
next: `Kolejny`,
|
|
1327
|
-
done: `Gotowe`
|
|
1328
|
-
}
|
|
1329
|
-
};
|
|
1330
|
-
|
|
1331
|
-
var elGR = {
|
|
1332
|
-
abbr: 'el-GR',
|
|
1333
|
-
exception: {
|
|
1334
|
-
403: `Λυπούμαστε, δεν έχετε πρόσβαση σε αυτήν τη σελίδα`,
|
|
1335
|
-
404: `Λυπούμαστε, η σελίδα αυτή δεν βρέθηκε`,
|
|
1336
|
-
500: `Λυπούμαστε, σφάλμα διακομιστή`,
|
|
1337
|
-
backToHome: 'Επιστροφή στην αρχική σελίδα'
|
|
1338
|
-
},
|
|
1339
|
-
noticeIcon: {
|
|
1340
|
-
emptyText: 'Δεν υπάρχουν δεδομένα',
|
|
1341
|
-
clearText: 'Καθαρισμός'
|
|
1342
|
-
},
|
|
1343
|
-
reuseTab: {
|
|
1344
|
-
close: 'Κλείσιμο καρτέλας',
|
|
1345
|
-
closeOther: 'Κλείσιμο των άλλων καρτέλων',
|
|
1346
|
-
closeRight: 'Κλείσιμο των καρτελών δεξιά',
|
|
1347
|
-
refresh: 'Ανανέωση'
|
|
1348
|
-
},
|
|
1349
|
-
tagSelect: {
|
|
1350
|
-
expand: 'Επέκταση',
|
|
1351
|
-
collapse: 'Σύμπτυξη'
|
|
1352
|
-
},
|
|
1353
|
-
miniProgress: {
|
|
1354
|
-
target: 'Στόχος: '
|
|
1355
|
-
},
|
|
1356
|
-
st: {
|
|
1357
|
-
total: '{{range[0]}} - {{range[1]}} από {{total}}',
|
|
1358
|
-
filterConfirm: 'ΟΚ',
|
|
1359
|
-
filterReset: 'Επαναφορά'
|
|
1360
|
-
},
|
|
1361
|
-
sf: {
|
|
1362
|
-
submit: 'Υποβολή',
|
|
1363
|
-
reset: 'Επαναφορά',
|
|
1364
|
-
search: 'Αναζήτηση',
|
|
1365
|
-
edit: 'Αποθήκευση',
|
|
1366
|
-
addText: 'Προσθήκη',
|
|
1367
|
-
removeText: 'Αφαίρεση',
|
|
1368
|
-
checkAllText: 'Επιλογή όλων',
|
|
1369
|
-
error: {
|
|
1370
|
-
'false schema': `Η δυαδική δομή είναι ψευδής`,
|
|
1371
|
-
$ref: `Δεν είναι δυνατή η επίλυση της αναφοράς {ref}`,
|
|
1372
|
-
additionalItems: `Δεν πρέπει να έχει περισσότερα από {limit} στοιχεία`,
|
|
1373
|
-
additionalProperties: `Δεν πρέπει να έχει επιπλέον χαρακτηριστικά`,
|
|
1374
|
-
anyOf: `Πρέπει να ταιριάζει με κάποια απο τις δομές στο "anyOf"`,
|
|
1375
|
-
dependencies: `τα χαρακτηριστικά {deps} είναι απαραίτητα, όταν υπάρχει το χαρακτηριστικό {property}`,
|
|
1376
|
-
enum: `Πρέπει να είναι ίσο με μία από τις προκαθορισμένες τιμές`,
|
|
1377
|
-
format: `Πρέπει να έχει την μορφή "{format}"`,
|
|
1378
|
-
type: `Πρέπει να είναι {type}`,
|
|
1379
|
-
required: `Απαιτείται`,
|
|
1380
|
-
maxLength: `Δεν πρέπει να είναι μεγαλύτερο από {limit} χαρακτήρες`,
|
|
1381
|
-
minLength: `Δεν πρέπει να είναι μικρότερο από {limit} χαρακτήρες`,
|
|
1382
|
-
minimum: `Πρέπει να είναι {comparison} {limit}`,
|
|
1383
|
-
formatMinimum: `Πρέπει να είναι {comparison} {limit}`,
|
|
1384
|
-
maximum: `Πρέπει να είναι {comparison} {limit}`,
|
|
1385
|
-
formatMaximum: `Πρέπει να είναι {comparison} {limit}`,
|
|
1386
|
-
maxItems: `Δεν πρέπει να έχει περισσότερα από {limit} στοιχεία`,
|
|
1387
|
-
minItems: `Δεν πρέπει να έχει λιγότερα από {limit} στοιχεία`,
|
|
1388
|
-
maxProperties: `Δεν πρέπει να έχει περισσότερα από {limit} χαρακτηριστικά`,
|
|
1389
|
-
minProperties: `Δεν πρέπει να έχει λιγότερα από {limit} χαρακτηριστικά`,
|
|
1390
|
-
multipleOf: `Πρέπει να είναι πολλαπλάσιο του {multipleOf}`,
|
|
1391
|
-
not: `Δεν πρέπει να είναι εγκύρο, σύμφωνα με την δομή στο "not"`,
|
|
1392
|
-
oneOf: `Πρέπει να ταιριάζει με ακριβώς μια απο τις δομές στο "oneOf"`,
|
|
1393
|
-
pattern: `Πρέπει να ταιριάζει με το πρότυπο "{pattern}"`,
|
|
1394
|
-
uniqueItems: `Τα στοιχεία δεν πρέπει να επαναλαμβάνονται (τα στοιχεία ## {j} και {i} είναι ίδια)`,
|
|
1395
|
-
custom: `Πρέπει να έχει την μορφή`,
|
|
1396
|
-
propertyNames: `Το όνομα του χαρακτηριστικού "{propertyName}" δεν είναι έγκυρο`,
|
|
1397
|
-
patternRequired: `Πρέπει να υπάρχει το χαρακτηριστικό αντιπαραβολής προτύπου "{missingPattern}"`,
|
|
1398
|
-
switch: `Πρέπει να περάσει ο έλεγχος εγκυρότητας της λέξης-κλειδιού με την χρήση της "switch", η περίπτωση {caseIndex} αποτυγχάνει`,
|
|
1399
|
-
const: `Πρέπει να είναι ίσο με σταθερά`,
|
|
1400
|
-
contains: `Πρέπει να περιέχει κάποιο έγκυρο στοιχείο`,
|
|
1401
|
-
formatExclusiveMaximum: `formatExclusiveMaximum πρέπει να είναι boolean`,
|
|
1402
|
-
formatExclusiveMinimum: `formatExclusiveMinimum πρέπει να είναι boolean`,
|
|
1403
|
-
if: `Πρέπει να ταιριάζει στην δομή "{failingKeyword}"`
|
|
1404
|
-
}
|
|
1405
|
-
},
|
|
1406
|
-
onboarding: {
|
|
1407
|
-
skip: `Παράλειψη`,
|
|
1408
|
-
prev: `Προηγούμενο`,
|
|
1409
|
-
next: `Επόμενο`,
|
|
1410
|
-
done: `Ολοκληρώθηκε`
|
|
1411
|
-
}
|
|
1412
|
-
};
|
|
1413
|
-
|
|
1414
|
-
var koKR = {
|
|
1415
|
-
abbr: 'ko-KR',
|
|
1416
|
-
exception: {
|
|
1417
|
-
403: `죄송합니다.이 페이지에 액세스 할 수 없습니다.`,
|
|
1418
|
-
404: `죄송합니다. 해당 페이지가 없습니다.`,
|
|
1419
|
-
500: `죄송합니다, 서버 오류가 있습니다.`,
|
|
1420
|
-
backToHome: '홈으로 돌아갑니다.'
|
|
1421
|
-
},
|
|
1422
|
-
noticeIcon: {
|
|
1423
|
-
emptyText: '데이터 없음',
|
|
1424
|
-
clearText: '지우기'
|
|
1425
|
-
},
|
|
1426
|
-
reuseTab: {
|
|
1427
|
-
close: '탭 닫기',
|
|
1428
|
-
closeOther: '다른 탭 닫기',
|
|
1429
|
-
closeRight: '오른쪽 탭 닫기',
|
|
1430
|
-
refresh: '새롭게 하다'
|
|
1431
|
-
},
|
|
1432
|
-
tagSelect: {
|
|
1433
|
-
expand: '펼치기',
|
|
1434
|
-
collapse: '접기'
|
|
1435
|
-
},
|
|
1436
|
-
miniProgress: {
|
|
1437
|
-
target: '대상: '
|
|
1438
|
-
},
|
|
1439
|
-
st: {
|
|
1440
|
-
total: '전체 {{total}}건',
|
|
1441
|
-
filterConfirm: '확인',
|
|
1442
|
-
filterReset: '초기화'
|
|
1443
|
-
},
|
|
1444
|
-
sf: {
|
|
1445
|
-
submit: '제출',
|
|
1446
|
-
reset: '재설정',
|
|
1447
|
-
search: '검색',
|
|
1448
|
-
edit: '저장',
|
|
1449
|
-
addText: '추가',
|
|
1450
|
-
removeText: '제거',
|
|
1451
|
-
checkAllText: '모두 확인',
|
|
1452
|
-
error: {
|
|
1453
|
-
'false schema': `Boolean schema is false`,
|
|
1454
|
-
$ref: `Can't resolve reference {ref}`,
|
|
1455
|
-
additionalItems: `Should not have more than {limit} item`,
|
|
1456
|
-
additionalProperties: `Should not have additional properties`,
|
|
1457
|
-
anyOf: `Should match some schema in "anyOf"`,
|
|
1458
|
-
dependencies: `should have property {deps} when property {property} is present`,
|
|
1459
|
-
enum: `Should be equal to one of predefined values`,
|
|
1460
|
-
format: `Should match format "{format}"`,
|
|
1461
|
-
type: `Should be {type}`,
|
|
1462
|
-
required: `Required`,
|
|
1463
|
-
maxLength: `Should not be longer than {limit} character`,
|
|
1464
|
-
minLength: `Should not be shorter than {limit} character`,
|
|
1465
|
-
minimum: `Should be {comparison} {limit}`,
|
|
1466
|
-
formatMinimum: `Should be {comparison} {limit}`,
|
|
1467
|
-
maximum: `Should be {comparison} {limit}`,
|
|
1468
|
-
formatMaximum: `Should be {comparison} {limit}`,
|
|
1469
|
-
maxItems: `Should not have more than {limit} item`,
|
|
1470
|
-
minItems: `Should not have less than {limit} item`,
|
|
1471
|
-
maxProperties: `Should not have more than {limit} property`,
|
|
1472
|
-
minProperties: `Should not have less than {limit} property`,
|
|
1473
|
-
multipleOf: `Should be a multiple of {multipleOf}`,
|
|
1474
|
-
not: `Should not be valid according to schema in "not"`,
|
|
1475
|
-
oneOf: `Should match exactly one schema in "oneOf"`,
|
|
1476
|
-
pattern: `Should match pattern "{pattern}"`,
|
|
1477
|
-
uniqueItems: `Should not have duplicate items (items ## {j} and {i} are identical)`,
|
|
1478
|
-
custom: `Should match format`,
|
|
1479
|
-
propertyNames: `Property name "{propertyName}" is invalid`,
|
|
1480
|
-
patternRequired: `Should have property matching pattern "{missingPattern}"`,
|
|
1481
|
-
switch: `Should pass "switch" keyword validation, case {caseIndex} fails`,
|
|
1482
|
-
const: `Should be equal to constant`,
|
|
1483
|
-
contains: `Should contain a valid item`,
|
|
1484
|
-
formatExclusiveMaximum: `formatExclusiveMaximum should be boolean`,
|
|
1485
|
-
formatExclusiveMinimum: `formatExclusiveMinimum should be boolean`,
|
|
1486
|
-
if: `Should match "{failingKeyword}" schema`
|
|
1487
|
-
}
|
|
1488
|
-
},
|
|
1489
|
-
onboarding: {
|
|
1490
|
-
skip: `건너 뛰기`,
|
|
1491
|
-
prev: `이전`,
|
|
1492
|
-
next: `다음`,
|
|
1493
|
-
done: `끝난`
|
|
1494
|
-
}
|
|
1495
|
-
};
|
|
1496
|
-
|
|
1497
|
-
var hrHR = {
|
|
1498
|
-
abbr: 'hr-HR',
|
|
1499
|
-
exception: {
|
|
1500
|
-
403: `Nažalost, nemate pristup ovoj lokaciji`,
|
|
1501
|
-
404: `Nažalost, lokacija ne postoji`,
|
|
1502
|
-
500: `Nažalost, server je javio pogrešku`,
|
|
1503
|
-
backToHome: 'Nazad na početnu stranicu'
|
|
1504
|
-
},
|
|
1505
|
-
noticeIcon: {
|
|
1506
|
-
emptyText: 'Nema podataka',
|
|
1507
|
-
clearText: 'Obriši'
|
|
1508
|
-
},
|
|
1509
|
-
reuseTab: {
|
|
1510
|
-
close: 'Zatvori karticu',
|
|
1511
|
-
closeOther: 'Zatvori druge kartice',
|
|
1512
|
-
closeRight: 'Zatvori kartice desno',
|
|
1513
|
-
refresh: 'Refresh'
|
|
1514
|
-
},
|
|
1515
|
-
tagSelect: {
|
|
1516
|
-
expand: 'Proširi',
|
|
1517
|
-
collapse: 'Skupi'
|
|
1518
|
-
},
|
|
1519
|
-
miniProgress: {
|
|
1520
|
-
target: 'Cilj: '
|
|
1521
|
-
},
|
|
1522
|
-
st: {
|
|
1523
|
-
total: '{{range[0]}} - {{range[1]}} od {{total}}',
|
|
1524
|
-
filterConfirm: 'U redu',
|
|
1525
|
-
filterReset: 'Poništi'
|
|
1526
|
-
},
|
|
1527
|
-
sf: {
|
|
1528
|
-
submit: 'Pošalji',
|
|
1529
|
-
reset: 'Poništi',
|
|
1530
|
-
search: 'Pretraži',
|
|
1531
|
-
edit: 'Spremi',
|
|
1532
|
-
addText: 'Dodaj',
|
|
1533
|
-
removeText: 'Ukloni',
|
|
1534
|
-
checkAllText: 'Označi sve'
|
|
1535
|
-
},
|
|
1536
|
-
onboarding: {
|
|
1537
|
-
skip: `Preskočiti`,
|
|
1538
|
-
prev: `Prethodna`,
|
|
1539
|
-
next: `Sljedeći`,
|
|
1540
|
-
done: `Sastavljeno`
|
|
1541
|
-
}
|
|
1542
|
-
};
|
|
1543
|
-
|
|
1544
|
-
var jaJP = {
|
|
1545
|
-
abbr: 'ja-JP',
|
|
1546
|
-
exception: {
|
|
1547
|
-
403: 'ページへのアクセス権限がありません',
|
|
1548
|
-
404: 'ページが存在しません',
|
|
1549
|
-
500: 'サーバーエラーが発生しました',
|
|
1550
|
-
backToHome: 'ホームに戻る'
|
|
1551
|
-
},
|
|
1552
|
-
noticeIcon: {
|
|
1553
|
-
emptyText: 'データが有りません',
|
|
1554
|
-
clearText: 'クリア'
|
|
1555
|
-
},
|
|
1556
|
-
reuseTab: {
|
|
1557
|
-
close: 'タブを閉じる',
|
|
1558
|
-
closeOther: '他のタブを閉じる',
|
|
1559
|
-
closeRight: '右のタブを閉じる',
|
|
1560
|
-
refresh: 'リフレッシュ'
|
|
1561
|
-
},
|
|
1562
|
-
tagSelect: {
|
|
1563
|
-
expand: '展開する',
|
|
1564
|
-
collapse: '折りたたむ'
|
|
1565
|
-
},
|
|
1566
|
-
miniProgress: {
|
|
1567
|
-
target: '設定値: '
|
|
1568
|
-
},
|
|
1569
|
-
st: {
|
|
1570
|
-
total: '{{range[0]}} - {{range[1]}} / {{total}}',
|
|
1571
|
-
filterConfirm: '確定',
|
|
1572
|
-
filterReset: 'リセット'
|
|
1573
|
-
},
|
|
1574
|
-
sf: {
|
|
1575
|
-
submit: '送信',
|
|
1576
|
-
reset: 'リセット',
|
|
1577
|
-
search: '検索',
|
|
1578
|
-
edit: '保存',
|
|
1579
|
-
addText: '追加',
|
|
1580
|
-
removeText: '削除',
|
|
1581
|
-
checkAllText: '全選択',
|
|
1582
|
-
error: {
|
|
1583
|
-
'false schema': `真偽値スキーマが不正です`,
|
|
1584
|
-
$ref: `参照を解決できません: {ref}`,
|
|
1585
|
-
additionalItems: `{limit}個を超えるアイテムを含めることはできません`,
|
|
1586
|
-
additionalProperties: `追加のプロパティを使用しないでください`,
|
|
1587
|
-
anyOf: `"anyOf"のスキーマと一致する必要があります`,
|
|
1588
|
-
dependencies: `プロパティ {property} を指定した場合、次の依存関係を満たす必要があります: {deps}`,
|
|
1589
|
-
enum: `定義された値のいずれかに等しくなければなりません`,
|
|
1590
|
-
format: `入力形式に一致しません: "{format}"`,
|
|
1591
|
-
type: `型が不正です: {type}`,
|
|
1592
|
-
required: `必須項目です`,
|
|
1593
|
-
maxLength: `最大文字数: {limit}`,
|
|
1594
|
-
minLength: `最少文字数: {limit}`,
|
|
1595
|
-
minimum: `値が不正です: {comparison} {limit}`,
|
|
1596
|
-
formatMinimum: `値が不正です: {comparison} {limit}`,
|
|
1597
|
-
maximum: `値が不正です: {comparison} {limit}`,
|
|
1598
|
-
formatMaximum: `値が不正です: {comparison} {limit}`,
|
|
1599
|
-
maxItems: `最大選択数は {limit} より小さい必要があります`,
|
|
1600
|
-
minItems: `最小選択数は {limit} より大きい必要があります`,
|
|
1601
|
-
maxProperties: `値を{limit}より大きくすることはできません`,
|
|
1602
|
-
minProperties: `値を{limit}より小さくすることはできません`,
|
|
1603
|
-
multipleOf: `値は次の数の倍数である必要があります: {multipleOf}`,
|
|
1604
|
-
not: `値が不正です:`,
|
|
1605
|
-
oneOf: `値が不正です:`,
|
|
1606
|
-
pattern: `次のパターンに一致する必要があります: "{pattern}"`,
|
|
1607
|
-
uniqueItems: `値が重複しています: 選択肢: {j} 、{i}`,
|
|
1608
|
-
custom: `形式と一致する必要があります`,
|
|
1609
|
-
propertyNames: `次のプロパティの値が無効です: "{propertyName}"`,
|
|
1610
|
-
patternRequired: `次のパターンに一致するプロパティが必須です: "{missingPattern}"`,
|
|
1611
|
-
switch: `"switch" キーワードの値が不正です: {caseIndex}`,
|
|
1612
|
-
const: `値が定数に一致しません`,
|
|
1613
|
-
contains: `有効なアイテムを含める必要があります`,
|
|
1614
|
-
formatExclusiveMaximum: `formatExclusiveMaximum は真偽値である必要があります`,
|
|
1615
|
-
formatExclusiveMinimum: `formatExclusiveMaximum は真偽値である必要があります`,
|
|
1616
|
-
if: `パターンと一致する必要があります: "{failingKeyword}" `
|
|
1617
|
-
}
|
|
1618
|
-
},
|
|
1619
|
-
onboarding: {
|
|
1620
|
-
skip: `スキップ`,
|
|
1621
|
-
prev: `前へ`,
|
|
1622
|
-
next: `次`,
|
|
1623
|
-
done: `できた`
|
|
1624
|
-
}
|
|
1625
|
-
};
|
|
1626
|
-
|
|
1627
|
-
var slSI = {
|
|
1628
|
-
abbr: 'sl-SI',
|
|
1629
|
-
exception: {
|
|
1630
|
-
403: `Žal nimate dostopa do te strani`,
|
|
1631
|
-
404: `Žal stran, ki ste jo obiskali, ne obstaja`,
|
|
1632
|
-
500: `Žal strežnik poroča o napaki`,
|
|
1633
|
-
backToHome: 'Nazaj domov'
|
|
1634
|
-
},
|
|
1635
|
-
noticeIcon: {
|
|
1636
|
-
emptyText: 'Ni podatkov',
|
|
1637
|
-
clearText: 'Počisti'
|
|
1638
|
-
},
|
|
1639
|
-
reuseTab: {
|
|
1640
|
-
close: 'Zapri zavihek',
|
|
1641
|
-
closeOther: 'Zaprite druge zavihke',
|
|
1642
|
-
closeRight: 'Zaprite zavihke na desni'
|
|
1643
|
-
},
|
|
1644
|
-
tagSelect: {
|
|
1645
|
-
expand: 'Razširi',
|
|
1646
|
-
collapse: 'Strni'
|
|
1647
|
-
},
|
|
1648
|
-
miniProgress: {
|
|
1649
|
-
target: 'Cilj: '
|
|
1650
|
-
},
|
|
1651
|
-
st: {
|
|
1652
|
-
total: '{{range[0]}} - {{range[1]}} of {{total}}',
|
|
1653
|
-
filterConfirm: 'OK',
|
|
1654
|
-
filterReset: 'Reset'
|
|
1655
|
-
},
|
|
1656
|
-
sf: {
|
|
1657
|
-
submit: 'Pošlji',
|
|
1658
|
-
reset: 'Reset',
|
|
1659
|
-
search: 'Išči',
|
|
1660
|
-
edit: 'Shrani',
|
|
1661
|
-
addText: 'Dodaj',
|
|
1662
|
-
removeText: 'Odstrani',
|
|
1663
|
-
checkAllText: 'Preveri vse',
|
|
1664
|
-
error: {
|
|
1665
|
-
'false schema': `Boolova shema je napačna`,
|
|
1666
|
-
$ref: `Referenc ni mogoče razrešiti {ref}`,
|
|
1667
|
-
additionalItems: `Ne sme imeti več kot {limit} artiklov`,
|
|
1668
|
-
additionalProperties: `Ne bi smel imeti dodatnih lastnosti`,
|
|
1669
|
-
anyOf: `Se mora ujemati s shemo v "anyOf"`,
|
|
1670
|
-
dependencies: `mora imeti lastnosti {deps} ko je artikel {property} prisoten`,
|
|
1671
|
-
enum: `Mora biti enaka eni od vnaprej določenih vrednosti`,
|
|
1672
|
-
format: `Naj ustreza formatu "{format}"`,
|
|
1673
|
-
type: `Naj bo {type}`,
|
|
1674
|
-
required: `Zahtevano`,
|
|
1675
|
-
maxLength: `Ne sme biti daljši od {limit} znakov`,
|
|
1676
|
-
minLength: `Ne sme biti krajši od {limit} znakov`,
|
|
1677
|
-
minimum: `Naj bo {comparison} {limit}`,
|
|
1678
|
-
formatMinimum: `Naj bo {comparison} {limit}`,
|
|
1679
|
-
maximum: `Naj bo {comparison} {limit}`,
|
|
1680
|
-
formatMaximum: `Naj bo {comparison} {limit}`,
|
|
1681
|
-
maxItems: `Ne sme imeti več kot {limit} artiklov`,
|
|
1682
|
-
minItems: `Ne sme imeti manj kot {limit} artiklov`,
|
|
1683
|
-
maxProperties: `Ne sme imeti več kot {limit} lastnosti`,
|
|
1684
|
-
minProperties: `Ne sme imeti manj kot {limit} lastnosti`,
|
|
1685
|
-
multipleOf: `Mora biti večkratnik od {multipleOf}`,
|
|
1686
|
-
not: `Ne sme biti veljaven po shemi v "not"`,
|
|
1687
|
-
oneOf: `Naj ustreza natančno eni shemi v "oneOf"`,
|
|
1688
|
-
pattern: `Naj se ujema z vzorcem "{pattern}"`,
|
|
1689
|
-
uniqueItems: `Ne bi smel imeti dvojnikov (items ## {j} in {i} so identični)`,
|
|
1690
|
-
custom: `Naj ustreza formatu`,
|
|
1691
|
-
propertyNames: `Ime artikla "{propertyName}" je neveljavno`,
|
|
1692
|
-
patternRequired: `Mora imeti vzorec ujemanja lastnosti "{missingPattern}"`,
|
|
1693
|
-
switch: `Mora prestati "switch" validacijo ključne besede, primer {caseIndex} ne uspe`,
|
|
1694
|
-
const: `Naj bo enako konstanti`,
|
|
1695
|
-
contains: `Naj vsebuje veljaven artikel`,
|
|
1696
|
-
formatExclusiveMaximum: `formatExclusiveMaximum naj bo boolean`,
|
|
1697
|
-
formatExclusiveMinimum: `formatExclusiveMinimum naj bo boolean`,
|
|
1698
|
-
if: `Naj se ujema s shemo "{failingKeyword}"`
|
|
1699
|
-
}
|
|
1700
|
-
},
|
|
1701
|
-
onboarding: {
|
|
1702
|
-
skip: `Preskoči`,
|
|
1703
|
-
prev: `Prejšnje`,
|
|
1704
|
-
next: `Naslednji`,
|
|
1705
|
-
done: `Končano`
|
|
1706
|
-
}
|
|
1707
|
-
};
|
|
1708
|
-
|
|
1709
|
-
var frFR = {
|
|
1710
|
-
abbr: 'fr-FR',
|
|
1711
|
-
exception: {
|
|
1712
|
-
403: `Désolé, vous n'avez pas accès à cette page`,
|
|
1713
|
-
404: `Désolé, la page que vous avez visitée n'existe pas`,
|
|
1714
|
-
500: `Désolé, le serveur signale une erreur`,
|
|
1715
|
-
backToHome: "Retour à l'accueil"
|
|
1716
|
-
},
|
|
1717
|
-
noticeIcon: {
|
|
1718
|
-
emptyText: 'Pas de données',
|
|
1719
|
-
clearText: 'Effacer'
|
|
1720
|
-
},
|
|
1721
|
-
reuseTab: {
|
|
1722
|
-
close: "Fermer l'onglet",
|
|
1723
|
-
closeOther: 'Fermer les autres onglets',
|
|
1724
|
-
closeRight: 'Fermer les onglets à droite',
|
|
1725
|
-
refresh: 'Rafraîchir'
|
|
1726
|
-
},
|
|
1727
|
-
tagSelect: {
|
|
1728
|
-
expand: 'Etendre',
|
|
1729
|
-
collapse: 'Effondrer'
|
|
1730
|
-
},
|
|
1731
|
-
miniProgress: {
|
|
1732
|
-
target: 'Cible: '
|
|
1733
|
-
},
|
|
1734
|
-
st: {
|
|
1735
|
-
total: '{{range[0]}} - {{range[1]}} de {{total}}',
|
|
1736
|
-
filterConfirm: 'OK',
|
|
1737
|
-
filterReset: 'Réinitialiser'
|
|
1738
|
-
},
|
|
1739
|
-
sf: {
|
|
1740
|
-
submit: 'Soumettre',
|
|
1741
|
-
reset: 'Réinitialiser',
|
|
1742
|
-
search: 'Rechercher',
|
|
1743
|
-
edit: 'Sauvegarder',
|
|
1744
|
-
addText: 'Ajouter',
|
|
1745
|
-
removeText: 'Supprimer',
|
|
1746
|
-
checkAllText: 'Cochez toutes',
|
|
1747
|
-
error: {
|
|
1748
|
-
'false schema': `Boolean schema is false`,
|
|
1749
|
-
$ref: `Can't resolve reference {ref}`,
|
|
1750
|
-
additionalItems: `Should not have more than {limit} item`,
|
|
1751
|
-
additionalProperties: `Should not have additional properties`,
|
|
1752
|
-
anyOf: `Should match some schema in "anyOf"`,
|
|
1753
|
-
dependencies: `should have property {deps} when property {property} is present`,
|
|
1754
|
-
enum: `Should be equal to one of predefined values`,
|
|
1755
|
-
format: `Should match format "{format}"`,
|
|
1756
|
-
type: `Should be {type}`,
|
|
1757
|
-
required: `Required`,
|
|
1758
|
-
maxLength: `Should not be longer than {limit} character`,
|
|
1759
|
-
minLength: `Should not be shorter than {limit} character`,
|
|
1760
|
-
minimum: `Should be {comparison} {limit}`,
|
|
1761
|
-
formatMinimum: `Should be {comparison} {limit}`,
|
|
1762
|
-
maximum: `Should be {comparison} {limit}`,
|
|
1763
|
-
formatMaximum: `Should be {comparison} {limit}`,
|
|
1764
|
-
maxItems: `Should not have more than {limit} item`,
|
|
1765
|
-
minItems: `Should not have less than {limit} item`,
|
|
1766
|
-
maxProperties: `Should not have more than {limit} property`,
|
|
1767
|
-
minProperties: `Should not have less than {limit} property`,
|
|
1768
|
-
multipleOf: `Should be a multiple of {multipleOf}`,
|
|
1769
|
-
not: `Should not be valid according to schema in "not"`,
|
|
1770
|
-
oneOf: `Should match exactly one schema in "oneOf"`,
|
|
1771
|
-
pattern: `Should match pattern "{pattern}"`,
|
|
1772
|
-
uniqueItems: `Should not have duplicate items (items ## {j} and {i} are identical)`,
|
|
1773
|
-
custom: `Should match format`,
|
|
1774
|
-
propertyNames: `Property name "{propertyName}" is invalid`,
|
|
1775
|
-
patternRequired: `Should have property matching pattern "{missingPattern}"`,
|
|
1776
|
-
switch: `Should pass "switch" keyword validation, case {caseIndex} fails`,
|
|
1777
|
-
const: `Should be equal to constant`,
|
|
1778
|
-
contains: `Should contain a valid item`,
|
|
1779
|
-
formatExclusiveMaximum: `formatExclusiveMaximum should be boolean`,
|
|
1780
|
-
formatExclusiveMinimum: `formatExclusiveMinimum should be boolean`,
|
|
1781
|
-
if: `Should match "{failingKeyword}" schema`
|
|
1782
|
-
}
|
|
1783
|
-
},
|
|
1784
|
-
onboarding: {
|
|
1785
|
-
skip: `Passer`,
|
|
1786
|
-
prev: `Précédent`,
|
|
1787
|
-
next: `Suivant`,
|
|
1788
|
-
done: `Terminé`
|
|
1789
|
-
}
|
|
1790
|
-
};
|
|
1791
|
-
|
|
1792
|
-
var esES = {
|
|
1793
|
-
abbr: 'es-ES',
|
|
1794
|
-
exception: {
|
|
1795
|
-
403: `Lo sentimos, no tiene acceso a esta página`,
|
|
1796
|
-
404: `Lo sentimos, la página que ha visitado no existe`,
|
|
1797
|
-
500: `Lo siento, error interno del servidor `,
|
|
1798
|
-
backToHome: 'Volver a la página de inicio'
|
|
1799
|
-
},
|
|
1800
|
-
noticeIcon: {
|
|
1801
|
-
emptyText: 'No hay datos',
|
|
1802
|
-
clearText: 'Limpiar'
|
|
1803
|
-
},
|
|
1804
|
-
reuseTab: {
|
|
1805
|
-
close: 'Cerrar pestaña',
|
|
1806
|
-
closeOther: 'Cerrar otras pestañas',
|
|
1807
|
-
closeRight: 'Cerrar pestañas a la derecha',
|
|
1808
|
-
refresh: 'Actualizar'
|
|
1809
|
-
},
|
|
1810
|
-
tagSelect: {
|
|
1811
|
-
expand: 'Expandir',
|
|
1812
|
-
collapse: 'Ocultar'
|
|
1813
|
-
},
|
|
1814
|
-
miniProgress: {
|
|
1815
|
-
target: 'Target: '
|
|
1816
|
-
},
|
|
1817
|
-
st: {
|
|
1818
|
-
total: '{{rango[0]}} - {{rango[1]}} de {{total}}',
|
|
1819
|
-
filterConfirm: 'Aceptar',
|
|
1820
|
-
filterReset: 'Reiniciar'
|
|
1821
|
-
},
|
|
1822
|
-
sf: {
|
|
1823
|
-
submit: 'Submit',
|
|
1824
|
-
reset: 'Reiniciar',
|
|
1825
|
-
search: 'Buscar',
|
|
1826
|
-
edit: 'Guardar',
|
|
1827
|
-
addText: 'Añadir',
|
|
1828
|
-
removeText: 'Eliminar',
|
|
1829
|
-
checkAllText: 'Comprobar todo',
|
|
1830
|
-
error: {
|
|
1831
|
-
'false schema': `Boolean schema is false`,
|
|
1832
|
-
$ref: `Can't resolve reference {ref}`,
|
|
1833
|
-
additionalItems: `Should not have more than {limit} item`,
|
|
1834
|
-
additionalProperties: `Should not have additional properties`,
|
|
1835
|
-
anyOf: `Should match some schema in "anyOf"`,
|
|
1836
|
-
dependencies: `should have property {deps} when property {property} is present`,
|
|
1837
|
-
enum: `Should be equal to one of predefined values`,
|
|
1838
|
-
format: `Should match format "{format}"`,
|
|
1839
|
-
type: `Should be {type}`,
|
|
1840
|
-
required: `Required`,
|
|
1841
|
-
maxLength: `Should not be longer than {limit} character`,
|
|
1842
|
-
minLength: `Should not be shorter than {limit} character`,
|
|
1843
|
-
minimum: `Should be {comparison} {limit}`,
|
|
1844
|
-
formatMinimum: `Should be {comparison} {limit}`,
|
|
1845
|
-
maximum: `Should be {comparison} {limit}`,
|
|
1846
|
-
formatMaximum: `Should be {comparison} {limit}`,
|
|
1847
|
-
maxItems: `Should not have more than {limit} item`,
|
|
1848
|
-
minItems: `Should not have less than {limit} item`,
|
|
1849
|
-
maxProperties: `Should not have more than {limit} property`,
|
|
1850
|
-
minProperties: `Should not have less than {limit} property`,
|
|
1851
|
-
multipleOf: `Should be a multiple of {multipleOf}`,
|
|
1852
|
-
not: `Should not be valid according to schema in "not"`,
|
|
1853
|
-
oneOf: `Should match exactly one schema in "oneOf"`,
|
|
1854
|
-
pattern: `Should match pattern "{pattern}"`,
|
|
1855
|
-
uniqueItems: `Should not have duplicate items (items ## {j} and {i} are identical)`,
|
|
1856
|
-
custom: `Should match format`,
|
|
1857
|
-
propertyNames: `Property name "{propertyName}" is invalid`,
|
|
1858
|
-
patternRequired: `Should have property matching pattern "{missingPattern}"`,
|
|
1859
|
-
switch: `Should pass "switch" keyword validation, case {caseIndex} fails`,
|
|
1860
|
-
const: `Should be equal to constant`,
|
|
1861
|
-
contains: `Should contain a valid item`,
|
|
1862
|
-
formatExclusiveMaximum: `formatExclusiveMaximum should be boolean`,
|
|
1863
|
-
formatExclusiveMinimum: `formatExclusiveMinimum should be boolean`,
|
|
1864
|
-
if: `Should match "{failingKeyword}" schema`
|
|
1865
|
-
}
|
|
1866
|
-
},
|
|
1867
|
-
onboarding: {
|
|
1868
|
-
skip: `Omitir`,
|
|
1869
|
-
prev: `Previo`,
|
|
1870
|
-
next: `Siguiente`,
|
|
1871
|
-
done: `Terminado`
|
|
1872
|
-
}
|
|
1873
|
-
};
|
|
1874
|
-
|
|
1875
|
-
var itIT = {
|
|
1876
|
-
abbr: 'it-IT',
|
|
1877
|
-
exception: {
|
|
1878
|
-
403: `Spiacenti, non hai accesso a questa pagina`,
|
|
1879
|
-
404: `Spiacenti, la pagina che hai visitato non esiste`,
|
|
1880
|
-
500: `Spiacenti, il server sta riscontrando un errore`,
|
|
1881
|
-
backToHome: 'Torna alla Home'
|
|
1882
|
-
},
|
|
1883
|
-
noticeIcon: {
|
|
1884
|
-
emptyText: 'Nessun dato',
|
|
1885
|
-
clearText: 'Cancella memoria locale'
|
|
1886
|
-
},
|
|
1887
|
-
reuseTab: {
|
|
1888
|
-
close: 'Chiudi la scheda',
|
|
1889
|
-
closeOther: 'Chiudi le altre schede',
|
|
1890
|
-
closeRight: 'Chiudi le schede a destra',
|
|
1891
|
-
refresh: 'Aggiorna'
|
|
1892
|
-
},
|
|
1893
|
-
tagSelect: {
|
|
1894
|
-
expand: 'Espandi',
|
|
1895
|
-
collapse: 'Comprimi'
|
|
1896
|
-
},
|
|
1897
|
-
miniProgress: {
|
|
1898
|
-
target: 'Obiettivo: '
|
|
1899
|
-
},
|
|
1900
|
-
st: {
|
|
1901
|
-
total: '{{range[0]}} - {{range[1]}} di {{total}}',
|
|
1902
|
-
filterConfirm: 'OK',
|
|
1903
|
-
filterReset: 'Reimposta'
|
|
1904
|
-
},
|
|
1905
|
-
sf: {
|
|
1906
|
-
submit: 'Invia',
|
|
1907
|
-
reset: 'Reimposta',
|
|
1908
|
-
search: 'Cerca',
|
|
1909
|
-
edit: 'Salva',
|
|
1910
|
-
addText: 'Aggiungi',
|
|
1911
|
-
removeText: 'Rimuovi',
|
|
1912
|
-
checkAllText: 'Seleziona tutto',
|
|
1913
|
-
error: {
|
|
1914
|
-
'false schema': `Lo schema booleano è falso`,
|
|
1915
|
-
$ref: `Impossibile risolvere il riferimento {ref}`,
|
|
1916
|
-
additionalItems: `Non deve avere più di {limit} elementi`,
|
|
1917
|
-
additionalProperties: `Non deve avere proprietà aggiuntive`,
|
|
1918
|
-
anyOf: `Deve corrispondere a uno schema in "anyOf"`,
|
|
1919
|
-
dependencies: `Deve avere una proprietà {deps} quando è presente la proprietà {property}`,
|
|
1920
|
-
enum: `Deve essere uguale a uno dei valori predefiniti`,
|
|
1921
|
-
format: `Deve corrispondere al formato "{format}"`,
|
|
1922
|
-
type: `Deve essere {type}`,
|
|
1923
|
-
required: `Obbligatorio`,
|
|
1924
|
-
maxLength: `Non deve essere superiore a {limit} caratteri`,
|
|
1925
|
-
minLength: `Non deve essere superiore a {limit} caratteri`,
|
|
1926
|
-
minimum: `Deve essere {comparison} {limit}`,
|
|
1927
|
-
formatMinimum: `Deve essere {comparison} {limit}`,
|
|
1928
|
-
maximum: `Deve essere {comparison} {limit}`,
|
|
1929
|
-
formatMaximum: `Deve essere {comparison} {limit}`,
|
|
1930
|
-
maxItems: `Non deve avere più di {limit} elementi`,
|
|
1931
|
-
minItems: `Non deve avere meno di {limit} elementi`,
|
|
1932
|
-
maxProperties: `Non deve avere più di {limit} proprietà`,
|
|
1933
|
-
minProperties: `Non deve avere meno di {limit} proprietà`,
|
|
1934
|
-
multipleOf: `Deve essere un multiplo di {multipleOf}`,
|
|
1935
|
-
not: `Non deve essere valido secondo lo schema in "not"`,
|
|
1936
|
-
oneOf: `Deve corrispondere esattamente a uno schema in "oneOf"`,
|
|
1937
|
-
pattern: `Deve corrispondere al modello "{pattern}"`,
|
|
1938
|
-
uniqueItems: `Non deve avere elementi duplicati (gli elementi ## {j} e {i} sono identici)`,
|
|
1939
|
-
custom: `Deve corrispondere al formato "{format}"`,
|
|
1940
|
-
propertyNames: `Il nome della proprietà "{propertyName}" non è valido`,
|
|
1941
|
-
patternRequired: `Deve avere una proprietà corrispondete al modello "{missingPattern}"`,
|
|
1942
|
-
switch: `Deve superare la convalida della parola chiave "switch", il caso {caseIndex} non è riuscito`,
|
|
1943
|
-
const: `Deve essere uguale alla costante`,
|
|
1944
|
-
contains: `Deve contenere un elemento valido`,
|
|
1945
|
-
formatExclusiveMaximum: `formatExclusiveMaximum deve essere booleano`,
|
|
1946
|
-
formatExclusiveMinimum: `formatExclusiveMaximum deve essere booleano`,
|
|
1947
|
-
if: `Deve corrispondere allo schema "{failingKeyword}"`
|
|
1948
|
-
}
|
|
1949
|
-
},
|
|
1950
|
-
onboarding: {
|
|
1951
|
-
skip: `Salta`,
|
|
1952
|
-
prev: `Precedente`,
|
|
1953
|
-
next: `Successivo`,
|
|
1954
|
-
done: `Fatto`
|
|
1955
|
-
}
|
|
1956
|
-
};
|
|
1957
|
-
|
|
1958
|
-
/**
|
|
1959
|
-
* 对话框辅助类
|
|
1960
|
-
*/
|
|
1961
|
-
class ModalHelper {
|
|
1962
|
-
constructor(srv) {
|
|
1963
|
-
this.srv = srv;
|
|
1964
|
-
}
|
|
1965
|
-
/**
|
|
1966
|
-
* 构建一个对话框
|
|
1967
|
-
*
|
|
1968
|
-
* @param comp 组件
|
|
1969
|
-
* @param params 组件参数
|
|
1970
|
-
* @param options 额外参数
|
|
1971
|
-
*
|
|
1972
|
-
* @example
|
|
1973
|
-
* this.modalHelper.create(FormEditComponent, { i }).subscribe(res => this.load());
|
|
1974
|
-
* // 对于组件的成功&关闭的处理说明
|
|
1975
|
-
* // 成功,其中 `nzModalRef` 指目标组件在构造函数 `NzModalRef` 变量名
|
|
1976
|
-
* this.nzModalRef.close(data);
|
|
1977
|
-
* this.nzModalRef.close();
|
|
1978
|
-
* // 关闭
|
|
1979
|
-
* this.nzModalRef.destroy();
|
|
1980
|
-
*/
|
|
1981
|
-
create(comp, params, options) {
|
|
1982
|
-
options = deepMerge({
|
|
1983
|
-
size: 'lg',
|
|
1984
|
-
exact: true,
|
|
1985
|
-
includeTabs: false
|
|
1986
|
-
}, options);
|
|
1987
|
-
return new Observable((observer) => {
|
|
1988
|
-
const { size, includeTabs, modalOptions } = options;
|
|
1989
|
-
let cls = '';
|
|
1990
|
-
let width = '';
|
|
1991
|
-
if (size) {
|
|
1992
|
-
if (typeof size === 'number') {
|
|
1993
|
-
width = `${size}px`;
|
|
1994
|
-
}
|
|
1995
|
-
else {
|
|
1996
|
-
cls = `modal-${size}`;
|
|
1997
|
-
}
|
|
1998
|
-
}
|
|
1999
|
-
if (includeTabs) {
|
|
2000
|
-
cls += ' modal-include-tabs';
|
|
2001
|
-
}
|
|
2002
|
-
if (modalOptions && modalOptions.nzWrapClassName) {
|
|
2003
|
-
cls += ` ${modalOptions.nzWrapClassName}`;
|
|
2004
|
-
delete modalOptions.nzWrapClassName;
|
|
2005
|
-
}
|
|
2006
|
-
const defaultOptions = {
|
|
2007
|
-
nzWrapClassName: cls,
|
|
2008
|
-
nzContent: comp,
|
|
2009
|
-
nzWidth: width ? width : undefined,
|
|
2010
|
-
nzFooter: null,
|
|
2011
|
-
nzComponentParams: params
|
|
2012
|
-
};
|
|
2013
|
-
const subject = this.srv.create(Object.assign(Object.assign({}, defaultOptions), modalOptions));
|
|
2014
|
-
const afterClose$ = subject.afterClose.subscribe((res) => {
|
|
2015
|
-
if (options.exact === true) {
|
|
2016
|
-
if (res != null) {
|
|
2017
|
-
observer.next(res);
|
|
2018
|
-
}
|
|
2019
|
-
}
|
|
2020
|
-
else {
|
|
2021
|
-
observer.next(res);
|
|
2022
|
-
}
|
|
2023
|
-
observer.complete();
|
|
2024
|
-
afterClose$.unsubscribe();
|
|
2025
|
-
});
|
|
2026
|
-
});
|
|
2027
|
-
}
|
|
2028
|
-
/**
|
|
2029
|
-
* 构建静态框,点击蒙层不允许关闭
|
|
2030
|
-
*
|
|
2031
|
-
* @param comp 组件
|
|
2032
|
-
* @param params 组件参数
|
|
2033
|
-
* @param options 额外参数
|
|
2034
|
-
*
|
|
2035
|
-
* @example
|
|
2036
|
-
* this.modalHelper.open(FormEditComponent, { i }).subscribe(res => this.load());
|
|
2037
|
-
* // 对于组件的成功&关闭的处理说明
|
|
2038
|
-
* // 成功,其中 `nzModalRef` 指目标组件在构造函数 `NzModalRef` 变量名
|
|
2039
|
-
* this.nzModalRef.close(data);
|
|
2040
|
-
* this.nzModalRef.close();
|
|
2041
|
-
* // 关闭
|
|
2042
|
-
* this.nzModalRef.destroy();
|
|
2043
|
-
*/
|
|
2044
|
-
createStatic(comp, params, options) {
|
|
2045
|
-
const modalOptions = Object.assign({ nzMaskClosable: false }, (options && options.modalOptions));
|
|
2046
|
-
return this.create(comp, params, Object.assign(Object.assign({}, options), { modalOptions }));
|
|
2047
|
-
}
|
|
2048
|
-
}
|
|
2049
|
-
ModalHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalHelper, deps: [{ token: i1$5.NzModalService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2050
|
-
ModalHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalHelper, providedIn: 'root' });
|
|
2051
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalHelper, decorators: [{
|
|
2052
|
-
type: Injectable,
|
|
2053
|
-
args: [{ providedIn: 'root' }]
|
|
2054
|
-
}], ctorParameters: function () { return [{ type: i1$5.NzModalService }]; } });
|
|
2055
|
-
|
|
2056
|
-
/**
|
|
2057
|
-
* 抽屉辅助类
|
|
2058
|
-
*
|
|
2059
|
-
* **注意:** 构建结果都可被订阅,但永远都不会触发 `observer.error`
|
|
2060
|
-
*
|
|
2061
|
-
* @example
|
|
2062
|
-
* this.drawerHelper.create('Edit', FormEditComponent, { i }).subscribe(res => this.load());
|
|
2063
|
-
* // 对于组件的成功&关闭的处理说明
|
|
2064
|
-
* // 成功
|
|
2065
|
-
* this.NzDrawerRef.close(data);
|
|
2066
|
-
* this.NzDrawerRef.close(true);
|
|
2067
|
-
* // 关闭
|
|
2068
|
-
* this.NzDrawerRef.close();
|
|
2069
|
-
* this.NzDrawerRef.close(false);
|
|
2070
|
-
*/
|
|
2071
|
-
class DrawerHelper {
|
|
2072
|
-
constructor(srv) {
|
|
2073
|
-
this.srv = srv;
|
|
2074
|
-
}
|
|
2075
|
-
/**
|
|
2076
|
-
* 构建一个抽屉
|
|
2077
|
-
*/
|
|
2078
|
-
create(title, comp, params, options) {
|
|
2079
|
-
options = deepMerge({
|
|
2080
|
-
size: 'md',
|
|
2081
|
-
footer: true,
|
|
2082
|
-
footerHeight: 50,
|
|
2083
|
-
exact: true,
|
|
2084
|
-
drawerOptions: {
|
|
2085
|
-
nzPlacement: 'right',
|
|
2086
|
-
nzWrapClassName: ''
|
|
2087
|
-
}
|
|
2088
|
-
}, options);
|
|
2089
|
-
return new Observable((observer) => {
|
|
2090
|
-
const { size, footer, footerHeight, drawerOptions } = options;
|
|
2091
|
-
const defaultOptions = {
|
|
2092
|
-
nzContent: comp,
|
|
2093
|
-
nzContentParams: params,
|
|
2094
|
-
nzTitle: title
|
|
2095
|
-
};
|
|
2096
|
-
if (typeof size === 'number') {
|
|
2097
|
-
defaultOptions[drawerOptions.nzPlacement === 'top' || drawerOptions.nzPlacement === 'bottom' ? 'nzHeight' : 'nzWidth'] = options.size;
|
|
2098
|
-
}
|
|
2099
|
-
else if (!drawerOptions.nzWidth) {
|
|
2100
|
-
defaultOptions.nzWrapClassName = `${drawerOptions.nzWrapClassName} drawer-${options.size}`.trim();
|
|
2101
|
-
delete drawerOptions.nzWrapClassName;
|
|
2102
|
-
}
|
|
2103
|
-
if (footer) {
|
|
2104
|
-
// The 24 value is @drawer-body-padding
|
|
2105
|
-
defaultOptions.nzBodyStyle = {
|
|
2106
|
-
'padding-bottom.px': footerHeight + 24
|
|
2107
|
-
};
|
|
2108
|
-
}
|
|
2109
|
-
const subject = this.srv.create(Object.assign(Object.assign({}, defaultOptions), drawerOptions));
|
|
2110
|
-
const afterClose$ = subject.afterClose.subscribe((res) => {
|
|
2111
|
-
if (options.exact === true) {
|
|
2112
|
-
if (res != null) {
|
|
2113
|
-
observer.next(res);
|
|
2114
|
-
}
|
|
2115
|
-
}
|
|
2116
|
-
else {
|
|
2117
|
-
observer.next(res);
|
|
2118
|
-
}
|
|
2119
|
-
observer.complete();
|
|
2120
|
-
afterClose$.unsubscribe();
|
|
2121
|
-
});
|
|
2122
|
-
});
|
|
2123
|
-
}
|
|
2124
|
-
/**
|
|
2125
|
-
* 构建一个抽屉,点击蒙层不允许关闭
|
|
2126
|
-
*/
|
|
2127
|
-
static(title, comp, params, options) {
|
|
2128
|
-
const drawerOptions = Object.assign({ nzMaskClosable: false }, (options && options.drawerOptions));
|
|
2129
|
-
return this.create(title, comp, params, Object.assign(Object.assign({}, options), { drawerOptions }));
|
|
2130
|
-
}
|
|
2131
|
-
}
|
|
2132
|
-
DrawerHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DrawerHelper, deps: [{ token: i1$6.NzDrawerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2133
|
-
DrawerHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DrawerHelper, providedIn: 'root' });
|
|
2134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DrawerHelper, decorators: [{
|
|
2135
|
-
type: Injectable,
|
|
2136
|
-
args: [{ providedIn: 'root' }]
|
|
2137
|
-
}], ctorParameters: function () { return [{ type: i1$6.NzDrawerService }]; } });
|
|
2138
|
-
|
|
2139
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2140
|
-
/**
|
|
2141
|
-
* 封装HttpClient,主要解决:
|
|
2142
|
-
* + 优化HttpClient在参数上便利性
|
|
2143
|
-
* + 统一实现 loading
|
|
2144
|
-
* + 统一处理时间格式问题
|
|
2145
|
-
*/
|
|
2146
|
-
class _HttpClient {
|
|
2147
|
-
constructor(http, cogSrv) {
|
|
2148
|
-
this.http = http;
|
|
2149
|
-
this.lc = 0;
|
|
2150
|
-
this.cog = cogSrv.merge('themeHttp', {
|
|
2151
|
-
nullValueHandling: 'include',
|
|
2152
|
-
dateValueHandling: 'timestamp'
|
|
2153
|
-
});
|
|
2154
|
-
}
|
|
2155
|
-
/**
|
|
2156
|
-
* Get whether it's loading
|
|
2157
|
-
*
|
|
2158
|
-
* 获取是否正在加载中
|
|
2159
|
-
*/
|
|
2160
|
-
get loading() {
|
|
2161
|
-
return this.lc > 0;
|
|
2162
|
-
}
|
|
2163
|
-
/**
|
|
2164
|
-
* Get the currently loading count
|
|
2165
|
-
*
|
|
2166
|
-
* 获取当前加载中的数量
|
|
2167
|
-
*/
|
|
2168
|
-
get loadingCount() {
|
|
2169
|
-
return this.lc;
|
|
2170
|
-
}
|
|
2171
|
-
parseParams(params) {
|
|
2172
|
-
const newParams = {};
|
|
2173
|
-
if (params instanceof HttpParams) {
|
|
2174
|
-
return params;
|
|
2175
|
-
}
|
|
2176
|
-
Object.keys(params).forEach(key => {
|
|
2177
|
-
let _data = params[key];
|
|
2178
|
-
// 忽略空值
|
|
2179
|
-
if (this.cog.nullValueHandling === 'ignore' && _data == null)
|
|
2180
|
-
return;
|
|
2181
|
-
// 将时间转化为:时间戳 (秒)
|
|
2182
|
-
if (this.cog.dateValueHandling === 'timestamp' && _data instanceof Date) {
|
|
2183
|
-
_data = _data.valueOf();
|
|
2184
|
-
}
|
|
2185
|
-
newParams[key] = _data;
|
|
2186
|
-
});
|
|
2187
|
-
return new HttpParams({ fromObject: newParams });
|
|
2188
|
-
}
|
|
2189
|
-
appliedUrl(url, params) {
|
|
2190
|
-
if (!params)
|
|
2191
|
-
return url;
|
|
2192
|
-
url += ~url.indexOf('?') ? '' : '?';
|
|
2193
|
-
const arr = [];
|
|
2194
|
-
Object.keys(params).forEach(key => {
|
|
2195
|
-
arr.push(`${key}=${params[key]}`);
|
|
2196
|
-
});
|
|
2197
|
-
return url + arr.join('&');
|
|
2198
|
-
}
|
|
2199
|
-
setCount(count) {
|
|
2200
|
-
Promise.resolve(null).then(() => (this.lc = count <= 0 ? 0 : count));
|
|
2201
|
-
}
|
|
2202
|
-
push() {
|
|
2203
|
-
this.setCount(++this.lc);
|
|
2204
|
-
}
|
|
2205
|
-
pop() {
|
|
2206
|
-
this.setCount(--this.lc);
|
|
2207
|
-
}
|
|
2208
|
-
/**
|
|
2209
|
-
* Clean loading count
|
|
2210
|
-
*
|
|
2211
|
-
* 清空加载中
|
|
2212
|
-
*/
|
|
2213
|
-
cleanLoading() {
|
|
2214
|
-
this.setCount(0);
|
|
2215
|
-
}
|
|
2216
|
-
get(url, params, options = {}) {
|
|
2217
|
-
return this.request('GET', url, Object.assign({ params }, options));
|
|
2218
|
-
}
|
|
2219
|
-
post(url, body, params, options = {}) {
|
|
2220
|
-
return this.request('POST', url, Object.assign({ body,
|
|
2221
|
-
params }, options));
|
|
2222
|
-
}
|
|
2223
|
-
delete(url, params, options = {}) {
|
|
2224
|
-
return this.request('DELETE', url, Object.assign({ params }, options));
|
|
2225
|
-
}
|
|
2226
|
-
// #endregion
|
|
2227
|
-
// #region jsonp
|
|
2228
|
-
/**
|
|
2229
|
-
* **JSONP Request**
|
|
2230
|
-
*
|
|
2231
|
-
* @param callbackParam CALLBACK值,默认:JSONP_CALLBACK
|
|
2232
|
-
*/
|
|
2233
|
-
jsonp(url, params, callbackParam = 'JSONP_CALLBACK') {
|
|
2234
|
-
return of(null).pipe(
|
|
2235
|
-
// Make sure to always be asynchronous, see issues: https://github.com/ng-alain/ng-alain/issues/1954
|
|
2236
|
-
delay(0), tap(() => this.push()), switchMap(() => this.http.jsonp(this.appliedUrl(url, params), callbackParam)), finalize(() => this.pop()));
|
|
2237
|
-
}
|
|
2238
|
-
patch(url, body, params, options = {}) {
|
|
2239
|
-
return this.request('PATCH', url, Object.assign({ body,
|
|
2240
|
-
params }, options));
|
|
2241
|
-
}
|
|
2242
|
-
put(url, body, params, options = {}) {
|
|
2243
|
-
return this.request('PUT', url, Object.assign({ body,
|
|
2244
|
-
params }, options));
|
|
2245
|
-
}
|
|
2246
|
-
form(url, body, params, options = {}) {
|
|
2247
|
-
return this.request('POST', url, Object.assign(Object.assign({ body,
|
|
2248
|
-
params }, options), { headers: {
|
|
2249
|
-
'content-type': `application/x-www-form-urlencoded`
|
|
2250
|
-
} }));
|
|
2251
|
-
}
|
|
2252
|
-
request(method, url, options = {}) {
|
|
2253
|
-
if (options.params)
|
|
2254
|
-
options.params = this.parseParams(options.params);
|
|
2255
|
-
return of(null).pipe(
|
|
2256
|
-
// Make sure to always be asynchronous, see issues: https://github.com/ng-alain/ng-alain/issues/1954
|
|
2257
|
-
delay(0), tap(() => this.push()), switchMap(() => this.http.request(method, url, options)), finalize(() => this.pop()));
|
|
2258
|
-
}
|
|
2259
|
-
}
|
|
2260
|
-
_HttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: _HttpClient, deps: [{ token: i1$7.HttpClient }, { token: i1.AlainConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2261
|
-
_HttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: _HttpClient, providedIn: 'root' });
|
|
2262
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: _HttpClient, decorators: [{
|
|
2263
|
-
type: Injectable,
|
|
2264
|
-
args: [{ providedIn: 'root' }]
|
|
2265
|
-
}], ctorParameters: function () { return [{ type: i1$7.HttpClient }, { type: i1.AlainConfigService }]; } });
|
|
2266
|
-
|
|
2267
|
-
/**
|
|
2268
|
-
* Every http decorator must be based on `BaseAPI`, Like this:
|
|
2269
|
-
* ```ts
|
|
2270
|
-
* \@Injectable()
|
|
2271
|
-
* class DataService extends BaseApi {}
|
|
2272
|
-
* ```
|
|
2273
|
-
*/
|
|
2274
|
-
class BaseApi {
|
|
2275
|
-
constructor(injector) {
|
|
2276
|
-
this.injector = injector;
|
|
2277
|
-
}
|
|
2278
|
-
}
|
|
2279
|
-
BaseApi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseApi, deps: [{ token: Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2280
|
-
BaseApi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseApi });
|
|
2281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseApi, decorators: [{
|
|
2282
|
-
type: Injectable
|
|
2283
|
-
}], ctorParameters: function () {
|
|
2284
|
-
return [{ type: i0.Injector, decorators: [{
|
|
2285
|
-
type: Inject,
|
|
2286
|
-
args: [Injector]
|
|
2287
|
-
}] }];
|
|
2288
|
-
} });
|
|
2289
|
-
const paramKey = `__api_params`;
|
|
2290
|
-
function setParam(target, key = paramKey) {
|
|
2291
|
-
let params = target[key];
|
|
2292
|
-
if (typeof params === 'undefined') {
|
|
2293
|
-
params = target[key] = {};
|
|
2294
|
-
}
|
|
2295
|
-
return params;
|
|
2296
|
-
}
|
|
2297
|
-
/**
|
|
2298
|
-
* 默认基准URL
|
|
2299
|
-
* - 有效范围:类
|
|
2300
|
-
*/
|
|
2301
|
-
function BaseUrl(url) {
|
|
2302
|
-
return function (target) {
|
|
2303
|
-
const params = setParam(target.prototype);
|
|
2304
|
-
params.baseUrl = url;
|
|
2305
|
-
return target;
|
|
2306
|
-
};
|
|
2307
|
-
}
|
|
2308
|
-
/**
|
|
2309
|
-
* 默认 `headers`
|
|
2310
|
-
* - 有效范围:类
|
|
2311
|
-
*/
|
|
2312
|
-
function BaseHeaders(headers) {
|
|
2313
|
-
return function (target) {
|
|
2314
|
-
const params = setParam(target.prototype);
|
|
2315
|
-
params.baseHeaders = headers;
|
|
2316
|
-
return target;
|
|
2317
|
-
};
|
|
2318
|
-
}
|
|
2319
|
-
function makeParam(paramName) {
|
|
2320
|
-
return function (key) {
|
|
2321
|
-
return function (target, propertyKey, index) {
|
|
2322
|
-
const params = setParam(setParam(target), propertyKey);
|
|
2323
|
-
let tParams = params[paramName];
|
|
2324
|
-
if (typeof tParams === 'undefined') {
|
|
2325
|
-
tParams = params[paramName] = [];
|
|
2326
|
-
}
|
|
2327
|
-
tParams.push({
|
|
2328
|
-
key,
|
|
2329
|
-
index
|
|
2330
|
-
});
|
|
2331
|
-
};
|
|
2332
|
-
};
|
|
2333
|
-
}
|
|
2334
|
-
/**
|
|
2335
|
-
* URL路由参数
|
|
2336
|
-
* - 有效范围:方法参数
|
|
2337
|
-
*/
|
|
2338
|
-
const Path = makeParam('path');
|
|
2339
|
-
/**
|
|
2340
|
-
* URL 参数 `QueryString`
|
|
2341
|
-
* - 有效范围:方法参数
|
|
2342
|
-
*/
|
|
2343
|
-
const Query = makeParam('query');
|
|
2344
|
-
/**
|
|
2345
|
-
* 参数 `Body`
|
|
2346
|
-
* - 有效范围:方法参数
|
|
2347
|
-
*/
|
|
2348
|
-
const Body = makeParam('body')();
|
|
2349
|
-
/**
|
|
2350
|
-
* 参数 `headers`
|
|
2351
|
-
* - 有效范围:方法参数
|
|
2352
|
-
* - 合并 `BaseHeaders`
|
|
2353
|
-
*/
|
|
2354
|
-
const Headers = makeParam('headers');
|
|
2355
|
-
/**
|
|
2356
|
-
* Request Payload
|
|
2357
|
-
* - Supported body (like`POST`, `PUT`) as a body data, equivalent to `@Body`
|
|
2358
|
-
* - Not supported body (like `GET`, `DELETE` etc) as a `QueryString`
|
|
2359
|
-
*/
|
|
2360
|
-
const Payload = makeParam('payload')();
|
|
2361
|
-
function getValidArgs(data, key, args) {
|
|
2362
|
-
if (!data[key] || !Array.isArray(data[key]) || data[key].length <= 0) {
|
|
2363
|
-
return undefined;
|
|
2364
|
-
}
|
|
2365
|
-
return args[data[key][0].index];
|
|
2366
|
-
}
|
|
2367
|
-
function genBody(data, payload) {
|
|
2368
|
-
if (Array.isArray(data) || Array.isArray(payload)) {
|
|
2369
|
-
return Object.assign([], data, payload);
|
|
2370
|
-
}
|
|
2371
|
-
return Object.assign(Object.assign({}, data), payload);
|
|
2372
|
-
}
|
|
2373
|
-
function makeMethod(method) {
|
|
2374
|
-
return function (url = '', options) {
|
|
2375
|
-
return (_target, targetKey, descriptor) => {
|
|
2376
|
-
descriptor.value = function (...args) {
|
|
2377
|
-
options = options || {};
|
|
2378
|
-
const injector = this.injector;
|
|
2379
|
-
const http = injector.get(_HttpClient, null);
|
|
2380
|
-
if (http == null) {
|
|
2381
|
-
throw new TypeError(`Not found '_HttpClient', You can import 'AlainThemeModule' && 'HttpClientModule' in your root module.`);
|
|
2382
|
-
}
|
|
2383
|
-
const baseData = setParam(this);
|
|
2384
|
-
const data = setParam(baseData, targetKey);
|
|
2385
|
-
let requestUrl = url || '';
|
|
2386
|
-
requestUrl = [baseData.baseUrl || '', requestUrl.startsWith('/') ? requestUrl.substring(1) : requestUrl].join('/');
|
|
2387
|
-
// fix last split
|
|
2388
|
-
if (requestUrl.length > 1 && requestUrl.endsWith('/')) {
|
|
2389
|
-
requestUrl = requestUrl.substring(0, requestUrl.length - 1);
|
|
2390
|
-
}
|
|
2391
|
-
if (options.acl) {
|
|
2392
|
-
const aclSrv = injector.get(ACLService, null);
|
|
2393
|
-
if (aclSrv && !aclSrv.can(options.acl)) {
|
|
2394
|
-
return throwError(() => ({
|
|
2395
|
-
url: requestUrl,
|
|
2396
|
-
status: 401,
|
|
2397
|
-
statusText: `From Http Decorator`
|
|
2398
|
-
}));
|
|
2399
|
-
}
|
|
2400
|
-
delete options.acl;
|
|
2401
|
-
}
|
|
2402
|
-
requestUrl = requestUrl.replace(/::/g, '^^');
|
|
2403
|
-
(data.path || [])
|
|
2404
|
-
.filter(w => typeof args[w.index] !== 'undefined')
|
|
2405
|
-
.forEach((i) => {
|
|
2406
|
-
requestUrl = requestUrl.replace(new RegExp(`:${i.key}`, 'g'), encodeURIComponent(args[i.index]));
|
|
2407
|
-
});
|
|
2408
|
-
requestUrl = requestUrl.replace(/\^\^/g, `:`);
|
|
2409
|
-
const params = (data.query || []).reduce((p, i) => {
|
|
2410
|
-
p[i.key] = args[i.index];
|
|
2411
|
-
return p;
|
|
2412
|
-
}, {});
|
|
2413
|
-
const headers = (data.headers || []).reduce((p, i) => {
|
|
2414
|
-
p[i.key] = args[i.index];
|
|
2415
|
-
return p;
|
|
2416
|
-
}, {});
|
|
2417
|
-
if (method === 'FORM') {
|
|
2418
|
-
headers['content-type'] = 'application/x-www-form-urlencoded';
|
|
2419
|
-
}
|
|
2420
|
-
const payload = getValidArgs(data, 'payload', args);
|
|
2421
|
-
const supportedBody = ['POST', 'PUT', 'PATCH', 'DELETE'].some(v => v === method);
|
|
2422
|
-
return http.request(method, requestUrl, Object.assign({ body: supportedBody ? genBody(getValidArgs(data, 'body', args), payload) : null, params: !supportedBody ? Object.assign(Object.assign({}, params), payload) : params, headers: Object.assign(Object.assign({}, baseData.baseHeaders), headers) }, options));
|
|
2423
|
-
};
|
|
2424
|
-
return descriptor;
|
|
2425
|
-
};
|
|
2426
|
-
};
|
|
2427
|
-
}
|
|
2428
|
-
/**
|
|
2429
|
-
* `OPTIONS` 请求
|
|
2430
|
-
* - 有效范围:方法
|
|
2431
|
-
*/
|
|
2432
|
-
const OPTIONS = makeMethod('OPTIONS');
|
|
2433
|
-
/**
|
|
2434
|
-
* `GET` 请求
|
|
2435
|
-
* - 有效范围:方法
|
|
2436
|
-
*/
|
|
2437
|
-
const GET = makeMethod('GET');
|
|
2438
|
-
/**
|
|
2439
|
-
* `POST` 请求
|
|
2440
|
-
* - 有效范围:方法
|
|
2441
|
-
*/
|
|
2442
|
-
const POST = makeMethod('POST');
|
|
2443
|
-
/**
|
|
2444
|
-
* `DELETE` 请求
|
|
2445
|
-
* - 有效范围:方法
|
|
2446
|
-
*/
|
|
2447
|
-
const DELETE = makeMethod('DELETE');
|
|
2448
|
-
/**
|
|
2449
|
-
* `PUT` 请求
|
|
2450
|
-
* - 有效范围:方法
|
|
2451
|
-
*/
|
|
2452
|
-
const PUT = makeMethod('PUT');
|
|
2453
|
-
/**
|
|
2454
|
-
* `HEAD` 请求
|
|
2455
|
-
* - 有效范围:方法
|
|
2456
|
-
*/
|
|
2457
|
-
const HEAD = makeMethod('HEAD');
|
|
2458
|
-
/**
|
|
2459
|
-
* `PATCH` 请求
|
|
2460
|
-
* - 有效范围:方法
|
|
2461
|
-
*/
|
|
2462
|
-
const PATCH = makeMethod('PATCH');
|
|
2463
|
-
/**
|
|
2464
|
-
* `JSONP` 请求
|
|
2465
|
-
* - 有效范围:方法
|
|
2466
|
-
*/
|
|
2467
|
-
const JSONP = makeMethod('JSONP');
|
|
2468
|
-
/**
|
|
2469
|
-
* `FORM` 请求
|
|
2470
|
-
* - 有效范围:方法
|
|
2471
|
-
*/
|
|
2472
|
-
const FORM = makeMethod('FORM');
|
|
2473
|
-
|
|
2474
|
-
/**
|
|
2475
|
-
* Whether to customize the handling of exception messages
|
|
2476
|
-
*
|
|
2477
|
-
* 是否自定义处理异常消息
|
|
2478
|
-
*
|
|
2479
|
-
* @example
|
|
2480
|
-
* this.http.post(`login`, {
|
|
2481
|
-
* name: 'cipchk', pwd: '123456'
|
|
2482
|
-
* }, {
|
|
2483
|
-
* context: new HttpContext()
|
|
2484
|
-
* .set(ALLOW_ANONYMOUS, true)
|
|
2485
|
-
* .set(CUSTOM_ERROR, true)
|
|
2486
|
-
* }).subscribe({
|
|
2487
|
-
* next: console.log,
|
|
2488
|
-
* error: console.log
|
|
2489
|
-
* });
|
|
2490
|
-
*/
|
|
2491
|
-
const CUSTOM_ERROR = new HttpContextToken(() => false);
|
|
2492
|
-
/**
|
|
2493
|
-
* Whether to ignore API prefixes
|
|
2494
|
-
*
|
|
2495
|
-
* 是否忽略API前缀
|
|
2496
|
-
*
|
|
2497
|
-
* @example
|
|
2498
|
-
* // When environment.api.baseUrl set '/api'
|
|
2499
|
-
*
|
|
2500
|
-
* this.http.get(`/path`) // Request Url: /api/path
|
|
2501
|
-
* this.http.get(`/path`, { context: new HttpContext().set(IGNORE_BASE_URL, true) }) // Request Url: /path
|
|
2502
|
-
*/
|
|
2503
|
-
const IGNORE_BASE_URL = new HttpContextToken(() => false);
|
|
2504
|
-
/**
|
|
2505
|
-
* Whether to return raw response body
|
|
2506
|
-
*
|
|
2507
|
-
* 是否原样返回请求Body
|
|
2508
|
-
*/
|
|
2509
|
-
const RAW_BODY = new HttpContextToken(() => false);
|
|
2510
|
-
|
|
2511
|
-
class DatePipe {
|
|
2512
|
-
constructor(nzI18n) {
|
|
2513
|
-
this.nzI18n = nzI18n;
|
|
2514
|
-
}
|
|
2515
|
-
transform(value, formatString = 'yyyy-MM-dd HH:mm') {
|
|
2516
|
-
value = toDate(value);
|
|
2517
|
-
if (isNaN(value))
|
|
2518
|
-
return '';
|
|
2519
|
-
const langOpt = { locale: this.nzI18n.getDateLocale() };
|
|
2520
|
-
return formatString === 'fn' ? formatDistanceToNow(value, langOpt) : format(value, formatString, langOpt);
|
|
2521
|
-
}
|
|
2522
|
-
}
|
|
2523
|
-
DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatePipe, deps: [{ token: i1$8.NzI18nService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2524
|
-
DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DatePipe, name: "_date" });
|
|
2525
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatePipe, decorators: [{
|
|
2526
|
-
type: Pipe,
|
|
2527
|
-
args: [{ name: '_date' }]
|
|
2528
|
-
}], ctorParameters: function () { return [{ type: i1$8.NzI18nService }]; } });
|
|
2529
|
-
|
|
2530
|
-
/**
|
|
2531
|
-
* [Document](https://ng-alain.com/theme/keys)
|
|
2532
|
-
*/
|
|
2533
|
-
class KeysPipe {
|
|
2534
|
-
transform(value, keyIsNumber = false) {
|
|
2535
|
-
const ret = [];
|
|
2536
|
-
Object.keys(value).forEach(key => {
|
|
2537
|
-
ret.push({ key: keyIsNumber ? +key : key, value: value[key] });
|
|
2538
|
-
});
|
|
2539
|
-
return ret;
|
|
2540
|
-
}
|
|
2541
|
-
}
|
|
2542
|
-
KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2543
|
-
KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: KeysPipe, name: "keys" });
|
|
2544
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: KeysPipe, decorators: [{
|
|
2545
|
-
type: Pipe,
|
|
2546
|
-
args: [{ name: 'keys' }]
|
|
2547
|
-
}] });
|
|
2548
|
-
|
|
2549
|
-
const ICON_YES = `<svg viewBox="64 64 896 896" fill="currentColor" width="1em" height="1em" aria-hidden="true"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"></path></svg>`;
|
|
2550
|
-
const ICON_NO = `<svg viewBox="64 64 896 896" fill="currentColor" width="1em" height="1em" aria-hidden="true"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg>`;
|
|
2551
|
-
const CLS_YES = `class="yn__yes"`;
|
|
2552
|
-
const CLS_NO = `class="yn__no"`;
|
|
2553
|
-
class YNPipe {
|
|
2554
|
-
constructor(dom) {
|
|
2555
|
-
this.dom = dom;
|
|
2556
|
-
}
|
|
2557
|
-
transform(value, yes, no, mode, isSafeHtml = true) {
|
|
2558
|
-
let html = '';
|
|
2559
|
-
yes = yes || '是';
|
|
2560
|
-
no = no || '否';
|
|
2561
|
-
switch (mode) {
|
|
2562
|
-
case 'full':
|
|
2563
|
-
html = value
|
|
2564
|
-
? `<i ${CLS_YES}>${ICON_YES}<span>${yes}</span></i>`
|
|
2565
|
-
: `<i ${CLS_NO}>${ICON_NO}<span>${no}</span></i>`;
|
|
2566
|
-
break;
|
|
2567
|
-
case 'text':
|
|
2568
|
-
html = value ? `<i ${CLS_YES}>${yes}</i>` : `<i ${CLS_NO}>${no}</i>`;
|
|
2569
|
-
break;
|
|
2570
|
-
default:
|
|
2571
|
-
html = value ? `<i ${CLS_YES} title="${yes}">${ICON_YES}</i>` : `<i ${CLS_NO} title="${no}">${ICON_NO}</i>`;
|
|
2572
|
-
break;
|
|
2573
|
-
}
|
|
2574
|
-
return isSafeHtml ? this.dom.bypassSecurityTrustHtml(html) : html;
|
|
2575
|
-
}
|
|
2576
|
-
}
|
|
2577
|
-
YNPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: YNPipe, deps: [{ token: i1$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2578
|
-
YNPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: YNPipe, name: "yn" });
|
|
2579
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: YNPipe, decorators: [{
|
|
2580
|
-
type: Pipe,
|
|
2581
|
-
args: [{ name: 'yn' }]
|
|
2582
|
-
}], ctorParameters: function () { return [{ type: i1$4.DomSanitizer }]; } });
|
|
2583
|
-
|
|
2584
|
-
class HTMLPipe {
|
|
2585
|
-
constructor(dom) {
|
|
2586
|
-
this.dom = dom;
|
|
2587
|
-
}
|
|
2588
|
-
transform(html) {
|
|
2589
|
-
return html ? this.dom.bypassSecurityTrustHtml(html) : '';
|
|
2590
|
-
}
|
|
2591
|
-
}
|
|
2592
|
-
HTMLPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HTMLPipe, deps: [{ token: i1$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2593
|
-
HTMLPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: HTMLPipe, name: "html" });
|
|
2594
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HTMLPipe, decorators: [{
|
|
2595
|
-
type: Pipe,
|
|
2596
|
-
args: [{ name: 'html' }]
|
|
2597
|
-
}], ctorParameters: function () { return [{ type: i1$4.DomSanitizer }]; } });
|
|
2598
|
-
|
|
2599
|
-
class URLPipe {
|
|
2600
|
-
constructor(dom) {
|
|
2601
|
-
this.dom = dom;
|
|
2602
|
-
}
|
|
2603
|
-
transform(url) {
|
|
2604
|
-
return url ? this.dom.bypassSecurityTrustUrl(url) : '';
|
|
2605
|
-
}
|
|
2606
|
-
}
|
|
2607
|
-
URLPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: URLPipe, deps: [{ token: i1$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2608
|
-
URLPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: URLPipe, name: "url" });
|
|
2609
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: URLPipe, decorators: [{
|
|
2610
|
-
type: Pipe,
|
|
2611
|
-
args: [{ name: 'url' }]
|
|
2612
|
-
}], ctorParameters: function () { return [{ type: i1$4.DomSanitizer }]; } });
|
|
2613
|
-
|
|
2614
|
-
/* eslint-disable import/order */
|
|
2615
|
-
// #region import
|
|
2616
|
-
const HELPERS = [ModalHelper, DrawerHelper];
|
|
2617
|
-
const PIPES = [DatePipe, KeysPipe, YNPipe, I18nPipe, HTMLPipe, URLPipe];
|
|
2618
|
-
const ICONS = [BellOutline, DeleteOutline, PlusOutline, InboxOutline];
|
|
2619
|
-
// #endregion
|
|
2620
|
-
class AlainThemeModule {
|
|
2621
|
-
constructor(iconSrv) {
|
|
2622
|
-
iconSrv.addIcon(...ICONS);
|
|
2623
|
-
}
|
|
2624
|
-
static forRoot() {
|
|
2625
|
-
return {
|
|
2626
|
-
ngModule: AlainThemeModule,
|
|
2627
|
-
providers: HELPERS
|
|
2628
|
-
};
|
|
2629
|
-
}
|
|
2630
|
-
static forChild() {
|
|
2631
|
-
return {
|
|
2632
|
-
ngModule: AlainThemeModule,
|
|
2633
|
-
providers: HELPERS
|
|
2634
|
-
};
|
|
2635
|
-
}
|
|
2636
|
-
}
|
|
2637
|
-
AlainThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainThemeModule, deps: [{ token: i1$9.NzIconService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2638
|
-
AlainThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AlainThemeModule, declarations: [DatePipe, KeysPipe, YNPipe, I18nPipe, HTMLPipe, URLPipe], imports: [CommonModule, RouterModule, OverlayModule, NzI18nModule], exports: [DatePipe, KeysPipe, YNPipe, I18nPipe, HTMLPipe, URLPipe, DelonLocaleModule] });
|
|
2639
|
-
AlainThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainThemeModule, providers: [
|
|
2640
|
-
{
|
|
2641
|
-
provide: ALAIN_SETTING_KEYS,
|
|
2642
|
-
useValue: {
|
|
2643
|
-
layout: 'layout',
|
|
2644
|
-
user: 'user',
|
|
2645
|
-
app: 'app'
|
|
2646
|
-
}
|
|
2647
|
-
}
|
|
2648
|
-
], imports: [CommonModule, RouterModule, OverlayModule, NzI18nModule, DelonLocaleModule] });
|
|
2649
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlainThemeModule, decorators: [{
|
|
2650
|
-
type: NgModule,
|
|
2651
|
-
args: [{
|
|
2652
|
-
imports: [CommonModule, RouterModule, OverlayModule, NzI18nModule],
|
|
2653
|
-
declarations: PIPES,
|
|
2654
|
-
providers: [
|
|
2655
|
-
{
|
|
2656
|
-
provide: ALAIN_SETTING_KEYS,
|
|
2657
|
-
useValue: {
|
|
2658
|
-
layout: 'layout',
|
|
2659
|
-
user: 'user',
|
|
2660
|
-
app: 'app'
|
|
2661
|
-
}
|
|
2662
|
-
}
|
|
2663
|
-
],
|
|
2664
|
-
exports: [...PIPES, DelonLocaleModule]
|
|
2665
|
-
}]
|
|
2666
|
-
}], ctorParameters: function () { return [{ type: i1$9.NzIconService }]; } });
|
|
2667
|
-
|
|
2668
|
-
/**
|
|
2669
|
-
* Optional pre-loading module, when it's necessary to load the resource at the first page load for some lazy routes, [example](https://github.com/ng-alain/ng-alain/blob/master/src/app/routes/routes-routing.module.ts).
|
|
2670
|
-
*
|
|
2671
|
-
* 可选预加载模块,当需要对某些懒路由在第一次页面加载时也一并加载该资源时,[示例](https://github.com/ng-alain/ng-alain/blob/master/src/app/routes/routes-routing.module.ts)。
|
|
2672
|
-
*
|
|
2673
|
-
* @example
|
|
2674
|
-
* {AT}NgModule({
|
|
2675
|
-
* providers: [PreloadOptionalModules],
|
|
2676
|
-
* imports: [
|
|
2677
|
-
* RouterModule.forRoot([
|
|
2678
|
-
* { path: '', loadChildren: null, data: { preload: true } }
|
|
2679
|
-
* ], { preloadingStrategy: PreloadOptionalModules})]
|
|
2680
|
-
* })
|
|
2681
|
-
*/
|
|
2682
|
-
class PreloadOptionalModules {
|
|
2683
|
-
preload(route, fn) {
|
|
2684
|
-
var _a;
|
|
2685
|
-
return ((_a = route.data) === null || _a === void 0 ? void 0 : _a.preload) === true ? fn().pipe(catchError(() => of(null))) : of(null);
|
|
2686
|
-
}
|
|
2687
|
-
}
|
|
2688
|
-
|
|
2689
|
-
const VERSION = new Version('15.2.1');
|
|
2690
|
-
|
|
2691
|
-
/**
|
|
2692
|
-
* Generated bundle index. Do not edit.
|
|
2693
|
-
*/
|
|
2694
|
-
|
|
2695
|
-
export { ALAIN_I18N_TOKEN, ALAIN_SETTING_KEYS, AlainI18NGuard, AlainI18NServiceFake, AlainI18nBaseService, AlainThemeModule, BaseApi, BaseHeaders, BaseUrl, Body, CUSTOM_ERROR, DELETE, DELON_LOCALE, DELON_LOCALE_SERVICE_PROVIDER, DELON_LOCALE_SERVICE_PROVIDER_FACTORY, DatePipe, DelonLocaleModule, DelonLocaleService, DrawerHelper, FORM, GET, HEAD, HTMLPipe, HTML_DIR, Headers, I18nPipe, IGNORE_BASE_URL, JSONP, KeysPipe, LTR, MenuService, ModalHelper, OPTIONS, PATCH, POST, PUT, Path, Payload, PreloadOptionalModules, Query, RAW_BODY, REP_MAX, RTL, RTLService, RTL_DELON_COMPONENTS, RTL_DIRECTION, RTL_NZ_COMPONENTS, ResponsiveService, SettingsService, TitleService, URLPipe, VERSION, YNPipe, _HttpClient, elGR as el_GR, enUS as en_US, esES as es_ES, frFR as fr_FR, hrHR as hr_HR, itIT as it_IT, jaJP as ja_JP, koKR as ko_KR, plPL as pl_PL, preloaderFinished, slSI as sl_SI, trTR as tr_TR, zhCN as zh_CN, zhTW as zh_TW };
|
|
2696
|
-
//# sourceMappingURL=theme.mjs.map
|