{"version":3,"file":"exception.mjs","sources":["../../../../packages/abc/exception/exception.component.ts","../../../../packages/abc/exception/exception.component.html","../../../../packages/abc/exception/exception.module.ts","../../../../packages/abc/exception/exception.ts"],"sourcesContent":["import { Direction, Directionality } from '@angular/cdk/bidi';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DestroyRef,\n  ElementRef,\n  Input,\n  OnInit,\n  ViewChild,\n  ViewEncapsulation,\n  inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml, SafeUrl } from '@angular/platform-browser';\nimport { RouterLink } from '@angular/router';\n\nimport { DelonLocaleService, LocaleData } from '@delon/theme';\nimport { isEmpty } from '@delon/util/browser';\nimport { AlainConfigService } from '@delon/util/config';\nimport { NzButtonComponent } from 'ng-zorro-antd/button';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport type ExceptionType = 403 | 404 | 500;\n\n@Component({\n  selector: 'exception',\n  exportAs: 'exception',\n  templateUrl: './exception.component.html',\n  host: {\n    '[class.exception]': 'true',\n    '[class.exception-rtl]': `dir === 'rtl'`\n  },\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CdkObserveContent, NzButtonComponent, RouterLink]\n})\nexport class ExceptionComponent implements OnInit {\n  static ngAcceptInputType_type: ExceptionType | string;\n\n  private readonly i18n = inject(DelonLocaleService);\n  private readonly dom = inject(DomSanitizer);\n  private readonly directionality = inject(Directionality);\n  private readonly cdr = inject(ChangeDetectorRef);\n  private readonly destroy$ = inject(DestroyRef);\n\n  @ViewChild('conTpl', { static: true }) private conTpl!: ElementRef;\n\n  _type!: ExceptionType;\n  locale: LocaleData = {};\n  hasCon = false;\n  dir?: Direction = 'ltr';\n\n  _img: SafeUrl = '';\n  _title: SafeHtml = '';\n  _desc: SafeHtml = '';\n  private typeDict!: Record<number | string, { img: string; title: string; desc?: string }>;\n\n  @Input()\n  set type(value: ExceptionType) {\n    const item = this.typeDict[value];\n    if (!item) return;\n\n    this.fixImg(item.img);\n    this._type = value;\n    this._title = item.title;\n    this._desc = '';\n  }\n\n  private fixImg(src: string): void {\n    this._img = this.dom.bypassSecurityTrustStyle(`url('${src}')`);\n  }\n\n  @Input()\n  set img(value: string) {\n    this.fixImg(value);\n  }\n\n  @Input()\n  set title(value: string) {\n    this._title = this.dom.bypassSecurityTrustHtml(value);\n  }\n\n  @Input()\n  set desc(value: string) {\n    this._desc = this.dom.bypassSecurityTrustHtml(value);\n  }\n\n  @Input() backRouterLink: string | NzSafeAny[] = '/';\n\n  checkContent(): void {\n    this.hasCon = !isEmpty(this.conTpl.nativeElement);\n    this.cdr.detectChanges();\n  }\n\n  constructor(configSrv: AlainConfigService) {\n    configSrv.attach(this, 'exception', {\n      typeDict: {\n        403: {\n          img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg',\n          title: '403'\n        },\n        404: {\n          img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg',\n          title: '404'\n        },\n        500: {\n          img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg',\n          title: '500'\n        }\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.dir = this.directionality.value;\n    this.directionality.change.pipe(takeUntilDestroyed(this.destroy$)).subscribe(direction => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n    this.i18n.change.pipe(takeUntilDestroyed(this.destroy$)).subscribe(() => {\n      this.locale = this.i18n.getData('exception');\n      this.cdr.detectChanges();\n    });\n    this.checkContent();\n  }\n}\n","<div class=\"exception__img-block\">\n  <div class=\"exception__img\" [style.backgroundImage]=\"_img\"></div>\n</div>\n<div class=\"exception__cont\">\n  <h1 class=\"exception__cont-title\" [innerHTML]=\"_title\"></h1>\n  <div class=\"exception__cont-desc\" [innerHTML]=\"_desc || locale[_type]\"></div>\n  <div class=\"exception__cont-actions\">\n    <div (cdkObserveContent)=\"checkContent()\" #conTpl>\n      <ng-content />\n    </div>\n    @if (!hasCon) {\n      <button nz-button [routerLink]=\"backRouterLink\" [nzType]=\"'primary'\">\n        {{ locale.backToHome }}\n      </button>\n    }\n  </div>\n</div>\n","import { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { DelonLocaleModule } from '@delon/theme';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\n\nimport { ExceptionComponent } from './exception.component';\n\nconst COMPONENTS = [ExceptionComponent];\n\n@NgModule({\n  imports: [CommonModule, ObserversModule, RouterModule, DelonLocaleModule, NzButtonModule, ...COMPONENTS],\n  exports: COMPONENTS\n})\nexport class ExceptionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}