@dignite-ng/expand.core 3.0.0-rc.39 → 3.0.0-rc.40
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.
|
@@ -42,7 +42,8 @@ export class ValidatorsService {
|
|
|
42
42
|
if (form instanceof FormGroup) {
|
|
43
43
|
Object.keys(form.controls).forEach(key => {
|
|
44
44
|
const control = form.controls[key];
|
|
45
|
-
const displayName = key.charAt(0).toUpperCase() + key.slice(1);
|
|
45
|
+
// const displayName = key.charAt(0).toUpperCase() + key.slice(1);
|
|
46
|
+
const displayName = key;
|
|
46
47
|
const fullKey = prefix ? `${prefix}.${displayName}` : displayName;
|
|
47
48
|
if (control instanceof FormControl) {
|
|
48
49
|
validationStatus[fullKey] = control.valid;
|
|
@@ -82,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
82
83
|
providedIn: 'root',
|
|
83
84
|
}]
|
|
84
85
|
}], ctorParameters: () => [{ type: i1.ToasterService }, { type: i2.LocalizationService }] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3ZhbGlkYXRvcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLbkUsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFvQixPQUF1QixFQUFVLG9CQUF5QztRQUExRSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7SUFBRyxDQUFDO0lBRWxHLFdBQVc7SUFDWCxXQUFXLENBQUMsS0FBaUMsRUFBRSxNQUFNLEdBQUcsZUFBZTtRQUNyRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUM3QixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO2dCQUM5RSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENB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QUFLLEVBQUUsRUFBRTtvQkFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQztvQkFDOUQsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFLENBQUM7d0JBQ25DLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQzVDLENBQUM7eUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFLENBQUM7d0JBQ3hDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ2pDLENBQUM7eUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFLENBQUM7d0JBQ3hDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ2pDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs4R0FyRVUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKuajgOafpeihqOWNlS0gKi9cclxuICBpc0NoZWNrRm9ybShpbnB1dDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0sIG1vZHVsZSA9ICdBYnBWYWxpZGF0aW9uJyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGlucHV0KTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0ga2V5c1tpXTtcclxuICAgICAgaWYgKGlucHV0W2VsZW1lbnRdID09PSBmYWxzZSkge1xyXG4gICAgICAgIGxldCBpbmZvID0gYFwiJHt0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYCR7bW9kdWxlfTo6JHtlbGVtZW50fWApfVwiIGA7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaW5jbHVkZXMoJy4nKSAmJiAhZWxlbWVudC5pbmNsdWRlcygnXS4nKSkge1xyXG4gICAgICAgICAgY29uc3QgYXJyID0gZWxlbWVudC5zcGxpdCgnLicpO1xyXG4gICAgICAgICAgaW5mbyA9IGBcIiR7dGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAgICAgICBgJHttb2R1bGV9Ojoke2FyclswXX1gLFxyXG4gICAgICAgICAgKX0uJHt0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYCR7bW9kdWxlfTo6JHthcnJbMV19YCl9XCJgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZWxlbWVudC5pbmNsdWRlcygnXS4nKSkge1xyXG4gICAgICAgICAgY29uc3QgYXJyID0gZWxlbWVudC5zcGxpdCgnXS4nKTtcclxuICAgICAgICAgIGNvbnN0IGFyclN0YXJ0ID0gYXJyWzBdLnNwbGl0KCdbJyk7XHJcbiAgICAgICAgICBpbmZvID0gYFwiJHt0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYCR7bW9kdWxlfTo6JHthcnJTdGFydFswXX1gKX1bJHtcclxuICAgICAgICAgICAgYXJyU3RhcnRbMV1cclxuICAgICAgICAgIH1dLiR7dGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGAke21vZHVsZX06OiR7YXJyWzFdfWApfVwiYDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW5mbyA9IGluZm8gKyB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFZhbGlkYXRpb246OlRoaXNGaWVsZElzTm90VmFsaWQuYCk7XHJcbiAgICAgICAgLy/kvb/nlKhhYnDlpJror63oqIDmj5DnpLpcclxuICAgICAgICB0aGlzLnRvYXN0ZXIud2FybihpbmZvKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoq6I635Y+W6KGo5Y2V5omA5pyJ5a2X5q615piv5ZCm6YCa6L+H6aqM6K+BICovXHJcbiAgZ2V0Rm9ybVZhbGlkYXRpb25TdGF0dXMoZm9ybUVudGl0eTogRm9ybUdyb3VwIHwgRm9ybUFycmF5KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBjb25zdCB2YWxpZGF0aW9uU3RhdHVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gICAgLy8g6YCS5b2S6YGN5Y6G6KGo5Y2V57uE5ZKM6KGo5Y2V5o6n5Lu26ZuG5ZCIXHJcbiAgICBjb25zdCB0cmF2ZXJzZUZvcm0gPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUFycmF5LCBwcmVmaXggPSAnJykgPT4ge1xyXG4gICAgICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2tleV07XHJcbiAgICAgICAgICAvLyBjb25zdCBkaXNwbGF5TmFtZSA9IGtleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zbGljZSgxKTtcclxuICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0ga2V5O1xyXG4gICAgICAgICAgY29uc3QgZnVsbEtleSA9IHByZWZpeCA/IGAke3ByZWZpeH0uJHtkaXNwbGF5TmFtZX1gIDogZGlzcGxheU5hbWU7XHJcbiAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25TdGF0dXNbZnVsbEtleV0gPSBjb250cm9sLnZhbGlkO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgIHRyYXZlcnNlRm9ybShjb250cm9sLCBmdWxsS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICB0cmF2ZXJzZUZvcm0oY29udHJvbCwgZnVsbEtleSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgIGZvcm0uY29udHJvbHMuZm9yRWFjaCgoY29udHJvbCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGZ1bGxLZXkgPSBwcmVmaXggPyBgJHtwcmVmaXh9WyR7aW5kZXh9XWAgOiBgWyR7aW5kZXh9XWA7XHJcbiAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25TdGF0dXNbZnVsbEtleV0gPSBjb250cm9sLnZhbGlkO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgIHRyYXZlcnNlRm9ybShjb250cm9sLCBmdWxsS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICB0cmF2ZXJzZUZvcm0oY29udHJvbCwgZnVsbEtleSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdHJhdmVyc2VGb3JtKGZvcm1FbnRpdHkpO1xyXG5cclxuICAgIHJldHVybiB2YWxpZGF0aW9uU3RhdHVzO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -179,7 +179,8 @@ class ValidatorsService {
|
|
|
179
179
|
if (form instanceof FormGroup) {
|
|
180
180
|
Object.keys(form.controls).forEach(key => {
|
|
181
181
|
const control = form.controls[key];
|
|
182
|
-
const displayName = key.charAt(0).toUpperCase() + key.slice(1);
|
|
182
|
+
// const displayName = key.charAt(0).toUpperCase() + key.slice(1);
|
|
183
|
+
const displayName = key;
|
|
183
184
|
const fullKey = prefix ? `${prefix}.${displayName}` : displayName;
|
|
184
185
|
if (control instanceof FormControl) {
|
|
185
186
|
validationStatus[fullKey] = control.valid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dignite-ng-expand.core.mjs","sources":["../../../../packages/core/src/lib/strategies/simple-reuse-strategy.ts","../../../../packages/core/src/lib/services/update-list.service.ts","../../../../packages/core/src/lib/services/validators.service.ts","../../../../packages/core/src/lib/pipes/get-now-domain.pipe.ts","../../../../packages/core/src/lib/pipes/get-tenant-img.pipe.ts","../../../../packages/core/src/lib/pipes/slug-normalizer.pipe.ts","../../../../packages/core/src/lib/expand/image-preview.component.ts","../../../../packages/core/src/lib/directives/keydown-prevent-default.directive.ts","../../../../packages/core/src/public-api.ts","../../../../packages/core/src/dignite-ng-expand.core.ts"],"sourcesContent":["import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n/**\r\n * 路由复用策略\r\n * \r\n * 1. 实现shouldReuseRoute方法,判断是否同一路由时复用路由\r\n * 2. 实现retrieve方法,获取存储路由\r\n * 3. 实现shouldDetach方法,判断是否有路由存储\r\n * 4. 实现store方法,存储路由\r\n * 5. 实现shouldAttach方法,判断是否有路由存储\r\n * 6. 实现retrieve方法,获取存储路由\r\n * 7. 实现destroy方法,销毁路由\r\n * \r\n * *使用方法\r\n @NgModule({\r\n providers: [\r\n { provide: RouteReuseStrategy, useClass: SimpleReuseStrategy }\r\n ],\r\n })\r\n\r\n data: { keep: true }\r\n */\r\nexport class SimpleReuseStrategy implements RouteReuseStrategy {\r\n static cacheRouters = new Map<string, DetachedRouteHandle>();\r\n\r\n public static deleteRouteCache(url): void {\r\n if (SimpleReuseStrategy.cacheRouters.has(url)) {\r\n const handle: any = SimpleReuseStrategy.cacheRouters.get(url);\r\n try {\r\n handle.componentRef.destory();\r\n } catch (e) { /* empty */ }\r\n SimpleReuseStrategy.cacheRouters.delete(url);\r\n }\r\n }\r\n\r\n public static deleteAllRouteCache(): void {\r\n SimpleReuseStrategy.cacheRouters.forEach((handle: any, key) => {\r\n SimpleReuseStrategy.deleteRouteCache(key);\r\n });\r\n }\r\n\r\n // one 进入路由触发,是否同一路由时复用路由\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return (\r\n future.routeConfig === curr.routeConfig &&\r\n JSON.stringify(future.params) === JSON.stringify(curr.params)\r\n );\r\n }\r\n\r\n // 获取存储路由\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n const url = this.getFullRouteURL(route);\r\n if (route.data.keep && SimpleReuseStrategy.cacheRouters.has(url)) {\r\n return SimpleReuseStrategy.cacheRouters.get(url);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // Whether to allow multiplexing routes\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return Boolean(route.data.keep);\r\n }\r\n //It is triggered when the route leaves. The route is stored\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const url = this.getFullRouteURL(route);\r\n // 先把之前缓存的删除,\r\n SimpleReuseStrategy.cacheRouters.forEach((handle: any, key) => {\r\n SimpleReuseStrategy.deleteRouteCache(key);\r\n });\r\n SimpleReuseStrategy.cacheRouters.set(url, handle);\r\n }\r\n // Whether to allow route restoration\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n const url = this.getFullRouteURL(route);\r\n return Boolean(route.data.keep) && SimpleReuseStrategy.cacheRouters.has(url);\r\n }\r\n\r\n // Gets the current route url\r\n private getFullRouteURL(route: ActivatedRouteSnapshot): string {\r\n const { pathFromRoot } = route;\r\n let fullRouteUrlPath: string[] = [];\r\n pathFromRoot.forEach((item: ActivatedRouteSnapshot) => {\r\n fullRouteUrlPath = fullRouteUrlPath.concat(this.getRouteUrlPath(item));\r\n });\r\n return `/${fullRouteUrlPath.join('/')}`;\r\n }\r\n private getRouteUrlPath(route: ActivatedRouteSnapshot) {\r\n return route.url.map(urlSegment => urlSegment.path);\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n/**\r\n * 子页面更新父级列表服务\r\n * \r\n * 父页面:\r\n * \r\n private _UpdateListService=inject(UpdateListService)\r\n\r\n this._UpdateListService.updateListEvent.subscribe(() => {\r\n this.list.get()\r\n });\r\n * \r\n * 子页面:\r\n * \r\n private _UpdateListService=inject(UpdateListService)\r\n this._UpdateListService.updateList();\r\n */\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UpdateListService {\r\n public updateListEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n updateList() {\r\n this.updateListEvent.emit();\r\n }\r\n\r\n /**\r\n * 使用发起数据\r\n * this.dataSubject.next(res);\r\n * \r\n * 接收数据产生回调\r\n this._UpdateLogoService.userInfo$.subscribe((res) => {\r\n this.getData();\r\n });\r\n */\r\n\r\n private dataSubject = new BehaviorSubject<any>(null);\r\n data$ = this.dataSubject.asObservable();\r\n updatedata(newdata: any) {\r\n this.dataSubject.next(newdata);\r\n }\r\n}\r\n","import { LocalizationService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup, FormArray, FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ValidatorsService {\r\n constructor(private toaster: ToasterService, private _LocalizationService: LocalizationService) {}\r\n\r\n /**检查表单- */\r\n isCheckForm(input: { [key: string]: boolean }, module = 'AbpValidation'): boolean {\r\n const keys = Object.keys(input);\r\n for (let i = 0; i < keys.length; i++) {\r\n const element = keys[i];\r\n if (input[element] === false) {\r\n let info = `\"${this._LocalizationService.instant(`${module}::${element}`)}\" `;\r\n if (element.includes('.') && !element.includes('].')) {\r\n const arr = element.split('.');\r\n info = `\"${this._LocalizationService.instant(\r\n `${module}::${arr[0]}`,\r\n )}.${this._LocalizationService.instant(`${module}::${arr[1]}`)}\"`;\r\n }\r\n if (element.includes('].')) {\r\n const arr = element.split('].');\r\n const arrStart = arr[0].split('[');\r\n info = `\"${this._LocalizationService.instant(`${module}::${arrStart[0]}`)}[${\r\n arrStart[1]\r\n }].${this._LocalizationService.instant(`${module}::${arr[1]}`)}\"`;\r\n }\r\n info = info + this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid.`);\r\n //使用abp多语言提示\r\n this.toaster.warn(info);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**获取表单所有字段是否通过验证 */\r\n getFormValidationStatus(formEntity: FormGroup | FormArray): { [key: string]: any } {\r\n const validationStatus: { [key: string]: any } = {};\r\n\r\n // 递归遍历表单组和表单控件集合\r\n const traverseForm = (form: FormGroup | FormArray, prefix = '') => {\r\n if (form instanceof FormGroup) {\r\n Object.keys(form.controls).forEach(key => {\r\n const control = form.controls[key];\r\n const displayName = key.charAt(0).toUpperCase() + key.slice(1);\r\n const fullKey = prefix ? `${prefix}.${displayName}` : displayName;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n } else if (form instanceof FormArray) {\r\n form.controls.forEach((control, index) => {\r\n const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n }\r\n };\r\n\r\n traverseForm(formEntity);\r\n\r\n return validationStatus;\r\n }\r\n}\r\n","import { EnvironmentService } from '@abp/ng.core';\r\nimport { inject, Pipe, PipeTransform } from '@angular/core';\r\n/**获取当前窗口域名\r\n * 需要将environment.ts页面配置\r\n application: {\r\n baseUrl,\r\n name: 'Travely',\r\n webUrl:'https://localhost:44374',\r\n },\r\n *\r\n */\r\n@Pipe({\r\n name: 'getNowDomain',\r\n standalone: true\r\n})\r\nexport class GetNowDomainPipe implements PipeTransform {\r\n private environment = inject(EnvironmentService);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n const production = this.environment.getEnvironment()?.production;\r\n const application:any=this.environment.getEnvironment()?.application;\r\n const webUrl=application?.webUrl;\r\n if (!production) return webUrl + value;\r\n return this.get(value);\r\n }\r\n\r\n /**获取当前域名并重定向链接 */\r\n get(value) {\r\n const baseUrl: any = (function () {\r\n const extractDomain = (url) => {\r\n const regex = /^(https?:\\/\\/)?([^/]+)(?:[/?].*)?$/;\r\n // const regex = /^(https?:\\/\\/)?([^\\/]+)(?:[\\/?].*)?$/;\r\n const match = url.match(regex);\r\n if (match) {\r\n const protocol = match[1] || '';\r\n const domain = `${protocol}${match[2]}`;\r\n return `${domain}`;\r\n }\r\n return url;\r\n }\r\n const url = window.location.href;\r\n return `${extractDomain(url)}` + value\r\n })()\r\n return baseUrl\r\n }\r\n\r\n}\r\n","//pipe下新建:get-tenant-img.pipe.ts,\r\n//如何引用见:独立管道的使用\r\n\r\nimport { ConfigStateService, EnvironmentService } from '@abp/ng.core';\r\nimport { inject, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'getTenantImg',\r\n standalone:true,\r\n})\r\nexport class GetTenantImgPipe implements PipeTransform {\r\n private configState = inject(ConfigStateService)\r\n private environment = inject(EnvironmentService)\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n const tenantId = this.configState.getDeep('currentUser.tenantId')||'';\r\n const environment = this.environment.getEnvironment();\r\n const imgUrl =`${environment.apis.default.url}/api/file-explorer/files/${args}/${value}?__tenant=${tenantId}`\r\n return value?imgUrl:'';\r\n }\r\n}\r\n//使用\r\n// {{'agentAvatarBlobName'|getTenantImg:'Avatar'}}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'slugNormalizer',\r\n standalone: true\r\n})\r\nexport class SlugNormalizerPipe implements PipeTransform {\r\n\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n return this.normalize(value);\r\n }\r\n\r\n normalize(value) {\r\n // Convert to lowercase\r\n value = value.toLowerCase();\r\n // Replace special characters with hyphen\r\n const invalidChars = ['\\\\', '/', '?', '&', '=', '+', '%', '#', '@', '!', '$', '\\'', '\"', ':', ';', '>', '<', '*', '(', ')', '[', '],', '{', '}', '|', '^', '`', '~'];\r\n for (const c of invalidChars) {\r\n value = value.replaceAll(c, '-');\r\n }\r\n // Convert spaces to hyphens\r\n value = value.replaceAll(\" \", \"-\");\r\n\r\n // Remove multiple consecutive hyphens\r\n while (value.includes(\"--\")) {\r\n value = value.replaceAll(\"--\", \"-\");\r\n }\r\n\r\n // Trim hyphens from start and end\r\n value = value.trim('-');\r\n \r\n // URL encode the remaining string (handles UTF-8 characters)\r\n //部分编码-保留语义\r\n //return encodeURI(value);\r\n //全部编码\r\n return encodeURIComponent(value);\r\n }\r\n\r\n}\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-image-preview',\r\n template: `\r\n <div\r\n [id]=\"id\"\r\n *ngIf=\"_src\"\r\n class=\"image-preview imagehove border position-relative m-1 overflow-hidden \"\r\n [style]=\"{'width': width+'px','height': height+'px',borderRadius:rounded}\" [ngClass]=\"{'rounded-4': !rounded,'bg-black':bgBlack}\"\r\n >\r\n <img [src]=\"_src\" alt=\"\" class=\"w-100 h-100 object-fit-cover\" />\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input position-absolute top-0 end-0 m-1\"\r\n *ngIf=\"checkChange.observed\"\r\n (change)=\"checkImage($event)\"\r\n style=\"z-index: 10;\"\r\n />\r\n <div\r\n class=\"w-100 h-100 text-white position-absolute top-0 start-0\"\r\n style=\"background-color: #00000050;\"\r\n *ngIf=\"preview || deleteChange.observed\"\r\n >\r\n <i\r\n type=\"button\"\r\n class=\"fa fa-eye p-2\"\r\n *ngIf=\"preview\"\r\n (click.stop)=\"OpenPreviewImage(content)\"\r\n ></i>\r\n <i\r\n type=\"button\"\r\n class=\"fa fa-times p-2\"\r\n *ngIf=\"deleteChange.observed\"\r\n (click.stop)=\"deletecoverPics()\"\r\n ></i>\r\n </div>\r\n </div>\r\n\r\n <ng-template #content let-modal>\r\n <div class=\"modal-header\">\r\n <div class=\"d-flex justify-content-end w-100 fs-3 text-white\">\r\n <i\r\n class=\"mx-2 fa fa fa-repeat\"\r\n aria-hidden=\"true\"\r\n title=\"右旋转\"\r\n role=\"button\"\r\n (click)=\"RotateRight()\"\r\n ></i>\r\n <i\r\n class=\"mx-2 fa fa-search-minus\"\r\n aria-hidden=\"true\"\r\n title=\"缩小\"\r\n role=\"button\"\r\n (click)=\"zoomOut()\"\r\n ></i>\r\n <i\r\n class=\"mx-2 fa fa-search-plus\"\r\n aria-hidden=\"true\"\r\n title=\"放大\"\r\n role=\"button\"\r\n (click)=\"zoomIn()\"\r\n ></i>\r\n <i\r\n class=\"mx-2 fa fa-times\"\r\n aria-hidden=\"true\"\r\n role=\"button\"\r\n (click)=\"modal.dismiss('Cross click')\"\r\n ></i>\r\n </div>\r\n </div>\r\n <div class=\"modal-body d-flex justify-content-center align-items-center \">\r\n <img\r\n width=\"400\"\r\n class=\"modal-body-preview\"\r\n [src]=\"_src\"\r\n [style.transform]=\"'scale(' + zoom / 10 + ') rotate(' + rotate + 'deg)'\"\r\n />\r\n </div>\r\n </ng-template>\r\n `,\r\n styles: [\r\n `\r\n .image-preview.imagehove > div {\r\n display: none;\r\n }\r\n\r\n .image-preview.imagehove:hover div {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n ::ng-deep.dignite-preview .modal-content {\r\n background-color: transparent !important;\r\n }\r\n .object-fit-cover{\r\n object-fit: cover;\r\n }\r\n `,\r\n ],\r\n standalone: true,\r\n imports: [CoreModule, ThemeSharedModule, CommonModule, PageModule],\r\n})\r\nexport class ImagePreviewComponent {\r\n /**图片链接 */\r\n _src: any = '';\r\n @Input()\r\n public set src(v: any) {\r\n this._src = v;\r\n }\r\n\r\n /**是否预览 */\r\n @Input() preview = true;\r\n\r\n /**宽 */\r\n @Input() width = 90;\r\n /**高 */\r\n @Input() height = 90;\r\n @Input() rounded = '';\r\n @Input() id = '';\r\n @Input() bgBlack = false;\r\n\r\n /**模态框实例 */\r\n modalRef!: NgbModalRef;\r\n\r\n /**放大倍数 */\r\n zoom: number|any = 10;\r\n\r\n /**旋转 */\r\n rotate: number|any = 0;\r\n constructor(\r\n private modalService:NgbModal\r\n ){}\r\n\r\n\r\n @Output() deleteChange = new EventEmitter();\r\n @Output() checkChange = new EventEmitter();\r\n\r\n /**选择图片的事件,返回父组件是否选中 */\r\n checkImage(event: any) {\r\n this.checkChange.emit(event.target.checked);\r\n }\r\n\r\n /**删除图片 */\r\n deletecoverPics() {\r\n this.deleteChange.emit();\r\n }\r\n\r\n /**打开预览弹窗 */\r\n OpenPreviewImage(content: TemplateRef<any>) {\r\n this.modalRef = this.modalService.open(content, {\r\n fullscreen: true,\r\n modalDialogClass: 'dignite-preview',\r\n });\r\n this.modalRef.result.then(\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n () => {\r\n },\r\n () => {\r\n this.zoom = 10;\r\n }\r\n );\r\n }\r\n /**放大图像 */\r\n zoomIn() {\r\n let zoom = this.zoom;\r\n if (zoom == 20) return;\r\n zoom++;\r\n this.zoom = zoom;\r\n }\r\n\r\n /**缩小图像 */\r\n zoomOut() {\r\n let zoom = this.zoom;\r\n if (zoom == 3) return;\r\n zoom--;\r\n this.zoom = zoom;\r\n }\r\n\r\n /**右旋转 */\r\n RotateRight() {\r\n if (this.rotate == 360) return (this.rotate = 0);\r\n this.rotate += 90;\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[KeydownPreventDefault]',\r\n standalone: true,\r\n})\r\nexport class KeydownPreventDefaultDirective {\r\n\r\n @HostListener('keydown.enter', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n event.preventDefault();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of core\r\n */\r\n\r\nexport * from './lib/strategies';\r\nexport * from './lib/services';\r\nexport * from './lib/pipes';\r\nexport * from './lib/expand';\r\nexport * from './lib/directives';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dignite-ng-expand.core.mjs","sources":["../../../../packages/core/src/lib/strategies/simple-reuse-strategy.ts","../../../../packages/core/src/lib/services/update-list.service.ts","../../../../packages/core/src/lib/services/validators.service.ts","../../../../packages/core/src/lib/pipes/get-now-domain.pipe.ts","../../../../packages/core/src/lib/pipes/get-tenant-img.pipe.ts","../../../../packages/core/src/lib/pipes/slug-normalizer.pipe.ts","../../../../packages/core/src/lib/expand/image-preview.component.ts","../../../../packages/core/src/lib/directives/keydown-prevent-default.directive.ts","../../../../packages/core/src/public-api.ts","../../../../packages/core/src/dignite-ng-expand.core.ts"],"sourcesContent":["import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n/**\r\n * 路由复用策略\r\n * \r\n * 1. 实现shouldReuseRoute方法,判断是否同一路由时复用路由\r\n * 2. 实现retrieve方法,获取存储路由\r\n * 3. 实现shouldDetach方法,判断是否有路由存储\r\n * 4. 实现store方法,存储路由\r\n * 5. 实现shouldAttach方法,判断是否有路由存储\r\n * 6. 实现retrieve方法,获取存储路由\r\n * 7. 实现destroy方法,销毁路由\r\n * \r\n * *使用方法\r\n @NgModule({\r\n providers: [\r\n { provide: RouteReuseStrategy, useClass: SimpleReuseStrategy }\r\n ],\r\n })\r\n\r\n data: { keep: true }\r\n */\r\nexport class SimpleReuseStrategy implements RouteReuseStrategy {\r\n static cacheRouters = new Map<string, DetachedRouteHandle>();\r\n\r\n public static deleteRouteCache(url): void {\r\n if (SimpleReuseStrategy.cacheRouters.has(url)) {\r\n const handle: any = SimpleReuseStrategy.cacheRouters.get(url);\r\n try {\r\n handle.componentRef.destory();\r\n } catch (e) { /* empty */ }\r\n SimpleReuseStrategy.cacheRouters.delete(url);\r\n }\r\n }\r\n\r\n public static deleteAllRouteCache(): void {\r\n SimpleReuseStrategy.cacheRouters.forEach((handle: any, key) => {\r\n SimpleReuseStrategy.deleteRouteCache(key);\r\n });\r\n }\r\n\r\n // one 进入路由触发,是否同一路由时复用路由\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return (\r\n future.routeConfig === curr.routeConfig &&\r\n JSON.stringify(future.params) === JSON.stringify(curr.params)\r\n );\r\n }\r\n\r\n // 获取存储路由\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n const url = this.getFullRouteURL(route);\r\n if (route.data.keep && SimpleReuseStrategy.cacheRouters.has(url)) {\r\n return SimpleReuseStrategy.cacheRouters.get(url);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // Whether to allow multiplexing routes\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return Boolean(route.data.keep);\r\n }\r\n //It is triggered when the route leaves. The route is stored\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const url = this.getFullRouteURL(route);\r\n // 先把之前缓存的删除,\r\n SimpleReuseStrategy.cacheRouters.forEach((handle: any, key) => {\r\n SimpleReuseStrategy.deleteRouteCache(key);\r\n });\r\n SimpleReuseStrategy.cacheRouters.set(url, handle);\r\n }\r\n // Whether to allow route restoration\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n const url = this.getFullRouteURL(route);\r\n return Boolean(route.data.keep) && SimpleReuseStrategy.cacheRouters.has(url);\r\n }\r\n\r\n // Gets the current route url\r\n private getFullRouteURL(route: ActivatedRouteSnapshot): string {\r\n const { pathFromRoot } = route;\r\n let fullRouteUrlPath: string[] = [];\r\n pathFromRoot.forEach((item: ActivatedRouteSnapshot) => {\r\n fullRouteUrlPath = fullRouteUrlPath.concat(this.getRouteUrlPath(item));\r\n });\r\n return `/${fullRouteUrlPath.join('/')}`;\r\n }\r\n private getRouteUrlPath(route: ActivatedRouteSnapshot) {\r\n return route.url.map(urlSegment => urlSegment.path);\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n/**\r\n * 子页面更新父级列表服务\r\n * \r\n * 父页面:\r\n * \r\n private _UpdateListService=inject(UpdateListService)\r\n\r\n this._UpdateListService.updateListEvent.subscribe(() => {\r\n this.list.get()\r\n });\r\n * \r\n * 子页面:\r\n * \r\n private _UpdateListService=inject(UpdateListService)\r\n this._UpdateListService.updateList();\r\n */\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UpdateListService {\r\n public updateListEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n updateList() {\r\n this.updateListEvent.emit();\r\n }\r\n\r\n /**\r\n * 使用发起数据\r\n * this.dataSubject.next(res);\r\n * \r\n * 接收数据产生回调\r\n this._UpdateLogoService.userInfo$.subscribe((res) => {\r\n this.getData();\r\n });\r\n */\r\n\r\n private dataSubject = new BehaviorSubject<any>(null);\r\n data$ = this.dataSubject.asObservable();\r\n updatedata(newdata: any) {\r\n this.dataSubject.next(newdata);\r\n }\r\n}\r\n","import { LocalizationService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup, FormArray, FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ValidatorsService {\r\n constructor(private toaster: ToasterService, private _LocalizationService: LocalizationService) {}\r\n\r\n /**检查表单- */\r\n isCheckForm(input: { [key: string]: boolean }, module = 'AbpValidation'): boolean {\r\n const keys = Object.keys(input);\r\n for (let i = 0; i < keys.length; i++) {\r\n const element = keys[i];\r\n if (input[element] === false) {\r\n let info = `\"${this._LocalizationService.instant(`${module}::${element}`)}\" `;\r\n if (element.includes('.') && !element.includes('].')) {\r\n const arr = element.split('.');\r\n info = `\"${this._LocalizationService.instant(\r\n `${module}::${arr[0]}`,\r\n )}.${this._LocalizationService.instant(`${module}::${arr[1]}`)}\"`;\r\n }\r\n if (element.includes('].')) {\r\n const arr = element.split('].');\r\n const arrStart = arr[0].split('[');\r\n info = `\"${this._LocalizationService.instant(`${module}::${arrStart[0]}`)}[${\r\n arrStart[1]\r\n }].${this._LocalizationService.instant(`${module}::${arr[1]}`)}\"`;\r\n }\r\n info = info + this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid.`);\r\n //使用abp多语言提示\r\n this.toaster.warn(info);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**获取表单所有字段是否通过验证 */\r\n getFormValidationStatus(formEntity: FormGroup | FormArray): { [key: string]: any } {\r\n const validationStatus: { [key: string]: any } = {};\r\n\r\n // 递归遍历表单组和表单控件集合\r\n const traverseForm = (form: FormGroup | FormArray, prefix = '') => {\r\n if (form instanceof FormGroup) {\r\n Object.keys(form.controls).forEach(key => {\r\n const control = form.controls[key];\r\n // const displayName = key.charAt(0).toUpperCase() + key.slice(1);\r\n const displayName = key;\r\n const fullKey = prefix ? `${prefix}.${displayName}` : displayName;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n } else if (form instanceof FormArray) {\r\n form.controls.forEach((control, index) => {\r\n const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n }\r\n };\r\n\r\n traverseForm(formEntity);\r\n\r\n return validationStatus;\r\n }\r\n}\r\n","import { EnvironmentService } from '@abp/ng.core';\r\nimport { inject, Pipe, PipeTransform } from '@angular/core';\r\n/**获取当前窗口域名\r\n * 需要将environment.ts页面配置\r\n application: {\r\n baseUrl,\r\n name: 'Travely',\r\n webUrl:'https://localhost:44374',\r\n },\r\n *\r\n */\r\n@Pipe({\r\n name: 'getNowDomain',\r\n standalone: true\r\n})\r\nexport class GetNowDomainPipe implements PipeTransform {\r\n private environment = inject(EnvironmentService);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n const production = this.environment.getEnvironment()?.production;\r\n const application:any=this.environment.getEnvironment()?.application;\r\n const webUrl=application?.webUrl;\r\n if (!production) return webUrl + value;\r\n return this.get(value);\r\n }\r\n\r\n /**获取当前域名并重定向链接 */\r\n get(value) {\r\n const baseUrl: any = (function () {\r\n const extractDomain = (url) => {\r\n const regex = /^(https?:\\/\\/)?([^/]+)(?:[/?].*)?$/;\r\n // const regex = /^(https?:\\/\\/)?([^\\/]+)(?:[\\/?].*)?$/;\r\n const match = url.match(regex);\r\n if (match) {\r\n const protocol = match[1] || '';\r\n const domain = `${protocol}${match[2]}`;\r\n return `${domain}`;\r\n }\r\n return url;\r\n }\r\n const url = window.location.href;\r\n return `${extractDomain(url)}` + value\r\n })()\r\n return baseUrl\r\n }\r\n\r\n}\r\n","//pipe下新建:get-tenant-img.pipe.ts,\r\n//如何引用见:独立管道的使用\r\n\r\nimport { ConfigStateService, EnvironmentService } from '@abp/ng.core';\r\nimport { inject, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'getTenantImg',\r\n standalone:true,\r\n})\r\nexport class GetTenantImgPipe implements PipeTransform {\r\n private configState = inject(ConfigStateService)\r\n private environment = inject(EnvironmentService)\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n const tenantId = this.configState.getDeep('currentUser.tenantId')||'';\r\n const environment = this.environment.getEnvironment();\r\n const imgUrl =`${environment.apis.default.url}/api/file-explorer/files/${args}/${value}?__tenant=${tenantId}`\r\n return value?imgUrl:'';\r\n }\r\n}\r\n//使用\r\n// {{'agentAvatarBlobName'|getTenantImg:'Avatar'}}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'slugNormalizer',\r\n standalone: true\r\n})\r\nexport class SlugNormalizerPipe implements PipeTransform {\r\n\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n return this.normalize(value);\r\n }\r\n\r\n normalize(value) {\r\n // Convert to lowercase\r\n value = value.toLowerCase();\r\n // Replace special characters with hyphen\r\n const invalidChars = ['\\\\', '/', '?', '&', '=', '+', '%', '#', '@', '!', '$', '\\'', '\"', ':', ';', '>', '<', '*', '(', ')', '[', '],', '{', '}', '|', '^', '`', '~'];\r\n for (const c of invalidChars) {\r\n value = value.replaceAll(c, '-');\r\n }\r\n // Convert spaces to hyphens\r\n value = value.replaceAll(\" \", \"-\");\r\n\r\n // Remove multiple consecutive hyphens\r\n while (value.includes(\"--\")) {\r\n value = value.replaceAll(\"--\", \"-\");\r\n }\r\n\r\n // Trim hyphens from start and end\r\n value = value.trim('-');\r\n \r\n // URL encode the remaining string (handles UTF-8 characters)\r\n //部分编码-保留语义\r\n //return encodeURI(value);\r\n //全部编码\r\n return encodeURIComponent(value);\r\n }\r\n\r\n}\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-image-preview',\r\n template: `\r\n <div\r\n [id]=\"id\"\r\n *ngIf=\"_src\"\r\n class=\"image-preview imagehove border position-relative m-1 overflow-hidden \"\r\n [style]=\"{'width': width+'px','height': height+'px',borderRadius:rounded}\" [ngClass]=\"{'rounded-4': !rounded,'bg-black':bgBlack}\"\r\n >\r\n <img [src]=\"_src\" alt=\"\" class=\"w-100 h-100 object-fit-cover\" />\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input position-absolute top-0 end-0 m-1\"\r\n *ngIf=\"checkChange.observed\"\r\n (change)=\"checkImage($event)\"\r\n style=\"z-index: 10;\"\r\n />\r\n <div\r\n class=\"w-100 h-100 text-white position-absolute top-0 start-0\"\r\n style=\"background-color: #00000050;\"\r\n *ngIf=\"preview || deleteChange.observed\"\r\n >\r\n <i\r\n type=\"button\"\r\n class=\"fa fa-eye p-2\"\r\n *ngIf=\"preview\"\r\n (click.stop)=\"OpenPreviewImage(content)\"\r\n ></i>\r\n <i\r\n type=\"button\"\r\n class=\"fa fa-times p-2\"\r\n *ngIf=\"deleteChange.observed\"\r\n (click.stop)=\"deletecoverPics()\"\r\n ></i>\r\n </div>\r\n </div>\r\n\r\n <ng-template #content let-modal>\r\n <div class=\"modal-header\">\r\n <div class=\"d-flex justify-content-end w-100 fs-3 text-white\">\r\n <i\r\n class=\"mx-2 fa fa fa-repeat\"\r\n aria-hidden=\"true\"\r\n title=\"右旋转\"\r\n role=\"button\"\r\n (click)=\"RotateRight()\"\r\n ></i>\r\n <i\r\n class=\"mx-2 fa fa-search-minus\"\r\n aria-hidden=\"true\"\r\n title=\"缩小\"\r\n role=\"button\"\r\n (click)=\"zoomOut()\"\r\n ></i>\r\n <i\r\n class=\"mx-2 fa fa-search-plus\"\r\n aria-hidden=\"true\"\r\n title=\"放大\"\r\n role=\"button\"\r\n (click)=\"zoomIn()\"\r\n ></i>\r\n <i\r\n class=\"mx-2 fa fa-times\"\r\n aria-hidden=\"true\"\r\n role=\"button\"\r\n (click)=\"modal.dismiss('Cross click')\"\r\n ></i>\r\n </div>\r\n </div>\r\n <div class=\"modal-body d-flex justify-content-center align-items-center \">\r\n <img\r\n width=\"400\"\r\n class=\"modal-body-preview\"\r\n [src]=\"_src\"\r\n [style.transform]=\"'scale(' + zoom / 10 + ') rotate(' + rotate + 'deg)'\"\r\n />\r\n </div>\r\n </ng-template>\r\n `,\r\n styles: [\r\n `\r\n .image-preview.imagehove > div {\r\n display: none;\r\n }\r\n\r\n .image-preview.imagehove:hover div {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n ::ng-deep.dignite-preview .modal-content {\r\n background-color: transparent !important;\r\n }\r\n .object-fit-cover{\r\n object-fit: cover;\r\n }\r\n `,\r\n ],\r\n standalone: true,\r\n imports: [CoreModule, ThemeSharedModule, CommonModule, PageModule],\r\n})\r\nexport class ImagePreviewComponent {\r\n /**图片链接 */\r\n _src: any = '';\r\n @Input()\r\n public set src(v: any) {\r\n this._src = v;\r\n }\r\n\r\n /**是否预览 */\r\n @Input() preview = true;\r\n\r\n /**宽 */\r\n @Input() width = 90;\r\n /**高 */\r\n @Input() height = 90;\r\n @Input() rounded = '';\r\n @Input() id = '';\r\n @Input() bgBlack = false;\r\n\r\n /**模态框实例 */\r\n modalRef!: NgbModalRef;\r\n\r\n /**放大倍数 */\r\n zoom: number|any = 10;\r\n\r\n /**旋转 */\r\n rotate: number|any = 0;\r\n constructor(\r\n private modalService:NgbModal\r\n ){}\r\n\r\n\r\n @Output() deleteChange = new EventEmitter();\r\n @Output() checkChange = new EventEmitter();\r\n\r\n /**选择图片的事件,返回父组件是否选中 */\r\n checkImage(event: any) {\r\n this.checkChange.emit(event.target.checked);\r\n }\r\n\r\n /**删除图片 */\r\n deletecoverPics() {\r\n this.deleteChange.emit();\r\n }\r\n\r\n /**打开预览弹窗 */\r\n OpenPreviewImage(content: TemplateRef<any>) {\r\n this.modalRef = this.modalService.open(content, {\r\n fullscreen: true,\r\n modalDialogClass: 'dignite-preview',\r\n });\r\n this.modalRef.result.then(\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n () => {\r\n },\r\n () => {\r\n this.zoom = 10;\r\n }\r\n );\r\n }\r\n /**放大图像 */\r\n zoomIn() {\r\n let zoom = this.zoom;\r\n if (zoom == 20) return;\r\n zoom++;\r\n this.zoom = zoom;\r\n }\r\n\r\n /**缩小图像 */\r\n zoomOut() {\r\n let zoom = this.zoom;\r\n if (zoom == 3) return;\r\n zoom--;\r\n this.zoom = zoom;\r\n }\r\n\r\n /**右旋转 */\r\n RotateRight() {\r\n if (this.rotate == 360) return (this.rotate = 0);\r\n this.rotate += 90;\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[KeydownPreventDefault]',\r\n standalone: true,\r\n})\r\nexport class KeydownPreventDefaultDirective {\r\n\r\n @HostListener('keydown.enter', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n event.preventDefault();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of core\r\n */\r\n\r\nexport * from './lib/strategies';\r\nexport * from './lib/services';\r\nexport * from './lib/pipes';\r\nexport * from './lib/expand';\r\nexport * from './lib/directives';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|