@delon/abc 21.1.0 → 21.2.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.
Files changed (59) hide show
  1. package/fesm2022/auto-focus.mjs +7 -7
  2. package/fesm2022/auto-focus.mjs.map +1 -1
  3. package/fesm2022/cell.mjs +13 -13
  4. package/fesm2022/cell.mjs.map +1 -1
  5. package/fesm2022/chart-observer-size.mjs +10 -10
  6. package/fesm2022/chart-observer-size.mjs.map +1 -1
  7. package/fesm2022/count-down.mjs +7 -7
  8. package/fesm2022/count-down.mjs.map +1 -1
  9. package/fesm2022/date-picker.mjs +10 -10
  10. package/fesm2022/date-picker.mjs.map +1 -1
  11. package/fesm2022/down-file.mjs +7 -7
  12. package/fesm2022/down-file.mjs.map +1 -1
  13. package/fesm2022/ellipsis.mjs +7 -7
  14. package/fesm2022/ellipsis.mjs.map +1 -1
  15. package/fesm2022/error-collect.mjs +7 -7
  16. package/fesm2022/error-collect.mjs.map +1 -1
  17. package/fesm2022/exception.mjs +7 -7
  18. package/fesm2022/exception.mjs.map +1 -1
  19. package/fesm2022/footer-toolbar.mjs +7 -7
  20. package/fesm2022/footer-toolbar.mjs.map +1 -1
  21. package/fesm2022/full-content.mjs +13 -13
  22. package/fesm2022/full-content.mjs.map +1 -1
  23. package/fesm2022/global-footer.mjs +10 -10
  24. package/fesm2022/global-footer.mjs.map +1 -1
  25. package/fesm2022/hotkey.mjs +7 -7
  26. package/fesm2022/hotkey.mjs.map +1 -1
  27. package/fesm2022/loading.mjs +10 -10
  28. package/fesm2022/loading.mjs.map +1 -1
  29. package/fesm2022/lodop.mjs +7 -7
  30. package/fesm2022/lodop.mjs.map +1 -1
  31. package/fesm2022/media.mjs +10 -10
  32. package/fesm2022/media.mjs.map +1 -1
  33. package/fesm2022/notice-icon.mjs +10 -10
  34. package/fesm2022/notice-icon.mjs.map +1 -1
  35. package/fesm2022/onboarding.mjs +10 -10
  36. package/fesm2022/onboarding.mjs.map +1 -1
  37. package/fesm2022/page-header.mjs +7 -7
  38. package/fesm2022/page-header.mjs.map +1 -1
  39. package/fesm2022/pdf.mjs +7 -7
  40. package/fesm2022/pdf.mjs.map +1 -1
  41. package/fesm2022/quick-menu.mjs +7 -7
  42. package/fesm2022/quick-menu.mjs.map +1 -1
  43. package/fesm2022/reuse-tab.mjs +22 -22
  44. package/fesm2022/reuse-tab.mjs.map +1 -1
  45. package/fesm2022/se.mjs +13 -13
  46. package/fesm2022/se.mjs.map +1 -1
  47. package/fesm2022/sg.mjs +10 -10
  48. package/fesm2022/sg.mjs.map +1 -1
  49. package/fesm2022/st.mjs +34 -34
  50. package/fesm2022/st.mjs.map +1 -1
  51. package/fesm2022/sv.mjs +16 -16
  52. package/fesm2022/sv.mjs.map +1 -1
  53. package/fesm2022/tag-select.mjs +7 -7
  54. package/fesm2022/tag-select.mjs.map +1 -1
  55. package/fesm2022/xlsx.mjs +10 -10
  56. package/fesm2022/xlsx.mjs.map +1 -1
  57. package/fesm2022/zip.mjs +3 -3
  58. package/fesm2022/zip.mjs.map +1 -1
  59. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"full-content.mjs","sources":["../../../../packages/abc/full-content/full-content.service.ts","../../../../packages/abc/full-content/full-content.component.ts","../../../../packages/abc/full-content/full-content-toggle.directive.ts","../../../../packages/abc/full-content/full-content.module.ts","../../../../packages/abc/full-content/full-content.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, share } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FullContentService {\n private _change = new BehaviorSubject<boolean | null>(null);\n\n /** 切换全屏工作区状态 */\n toggle(): void {\n this._change.next(true);\n }\n\n get change(): Observable<boolean | null> {\n return this._change.pipe(share());\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd, ActivationStart, Event, Router } from '@angular/router';\nimport { fromEvent, debounceTime, filter } from 'rxjs';\n\nimport { FullContentService } from './full-content.service';\n\nconst wrapCls = `full-content__body`;\nconst openedCls = `full-content__opened`;\nconst hideTitleCls = `full-content__hidden-title`;\n\n@Component({\n selector: 'full-content',\n exportAs: 'fullContent',\n template: `<ng-content />`,\n host: {\n class: 'full-content',\n '[style.height.px]': '_height()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class FullContentComponent implements OnDestroy {\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly srv = inject(FullContentService);\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n\n private bodyEl = this.doc.querySelector('body')!;\n private id = `_full-content-${Math.random().toString(36).substring(2)}`;\n\n _height = signal(0);\n\n readonly hideTitle = input(true, { transform: booleanAttribute });\n readonly padding = input(24, { transform: numberAttribute });\n readonly fullscreen = model<boolean>();\n\n constructor() {\n // when window resize\n fromEvent(window, 'resize')\n .pipe(takeUntilDestroyed(), debounceTime(200))\n .subscribe(() => this.updateHeight());\n\n // when servier changed\n this.srv.change\n .pipe(\n takeUntilDestroyed(),\n filter(res => res !== null)\n )\n .subscribe(() => this.toggle());\n\n // when router changed\n this.router.events\n .pipe(\n takeUntilDestroyed(),\n filter((e: Event) => e instanceof ActivationStart || e instanceof ActivationEnd),\n debounceTime(200)\n )\n .subscribe(() => {\n if (this.doc.querySelector(`#${this.id}`)) {\n this.bodyEl.classList.add(wrapCls);\n this.updateCls();\n } else {\n this.removeInBody();\n }\n });\n\n afterNextRender(() => {\n this.bodyEl.classList.add(wrapCls);\n this.el.id = this.id;\n\n this.updateCls();\n this.updateHeight();\n });\n\n effect(() => this.update());\n }\n\n private updateCls(): void {\n const clss = this.bodyEl.classList;\n if (this.fullscreen()) {\n clss.add(openedCls);\n if (this.hideTitle()) {\n clss.add(hideTitleCls);\n }\n } else {\n clss.remove(openedCls);\n if (this.hideTitle()) {\n clss.remove(hideTitleCls);\n }\n }\n }\n\n private update(): void {\n this.updateCls();\n this.updateHeight();\n this.fullscreen.set(this.fullscreen());\n }\n\n private updateHeight(): void {\n this._height.set(this.bodyEl.getBoundingClientRect().height - this.el.getBoundingClientRect().top - this.padding());\n }\n\n private removeInBody(): void {\n this.bodyEl.classList.remove(wrapCls, openedCls, hideTitleCls);\n }\n\n toggle(): void {\n this.fullscreen.set(!this.fullscreen());\n this.update();\n this.updateHeight();\n }\n\n ngOnDestroy(): void {\n this.removeInBody();\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { FullContentComponent } from './full-content.component';\n\n@Directive({\n selector: '[full-toggle]',\n exportAs: 'fullToggle',\n host: {\n '(click)': '_click()'\n }\n})\nexport class FullContentToggleDirective {\n private readonly parent = inject(FullContentComponent);\n\n protected _click(): void {\n this.parent.toggle();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FullContentToggleDirective } from './full-content-toggle.directive';\nimport { FullContentComponent } from './full-content.component';\n\nconst COMPONENTS = [FullContentComponent, FullContentToggleDirective];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class FullContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"full-content.mjs","sources":["../../../../packages/abc/full-content/full-content.service.ts","../../../../packages/abc/full-content/full-content.component.ts","../../../../packages/abc/full-content/full-content-toggle.directive.ts","../../../../packages/abc/full-content/full-content.module.ts","../../../../packages/abc/full-content/full-content.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, share } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FullContentService {\n private _change = new BehaviorSubject<boolean | null>(null);\n\n /** 切换全屏工作区状态 */\n toggle(): void {\n this._change.next(true);\n }\n\n get change(): Observable<boolean | null> {\n return this._change.pipe(share());\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd, ActivationStart, Event, Router } from '@angular/router';\nimport { fromEvent, debounceTime, filter } from 'rxjs';\n\nimport { FullContentService } from './full-content.service';\n\nconst wrapCls = `full-content__body`;\nconst openedCls = `full-content__opened`;\nconst hideTitleCls = `full-content__hidden-title`;\n\n@Component({\n selector: 'full-content',\n exportAs: 'fullContent',\n template: `<ng-content />`,\n host: {\n class: 'full-content',\n '[style.height.px]': '_height()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class FullContentComponent implements OnDestroy {\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly srv = inject(FullContentService);\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n\n private bodyEl = this.doc.querySelector('body')!;\n private id = `_full-content-${Math.random().toString(36).substring(2)}`;\n\n _height = signal(0);\n\n readonly hideTitle = input(true, { transform: booleanAttribute });\n readonly padding = input(24, { transform: numberAttribute });\n readonly fullscreen = model<boolean>();\n\n constructor() {\n // when window resize\n fromEvent(window, 'resize')\n .pipe(takeUntilDestroyed(), debounceTime(200))\n .subscribe(() => this.updateHeight());\n\n // when servier changed\n this.srv.change\n .pipe(\n takeUntilDestroyed(),\n filter(res => res !== null)\n )\n .subscribe(() => this.toggle());\n\n // when router changed\n this.router.events\n .pipe(\n takeUntilDestroyed(),\n filter((e: Event) => e instanceof ActivationStart || e instanceof ActivationEnd),\n debounceTime(200)\n )\n .subscribe(() => {\n if (this.doc.querySelector(`#${this.id}`)) {\n this.bodyEl.classList.add(wrapCls);\n this.updateCls();\n } else {\n this.removeInBody();\n }\n });\n\n afterNextRender(() => {\n this.bodyEl.classList.add(wrapCls);\n this.el.id = this.id;\n\n this.updateCls();\n this.updateHeight();\n });\n\n effect(() => this.update());\n }\n\n private updateCls(): void {\n const clss = this.bodyEl.classList;\n if (this.fullscreen()) {\n clss.add(openedCls);\n if (this.hideTitle()) {\n clss.add(hideTitleCls);\n }\n } else {\n clss.remove(openedCls);\n if (this.hideTitle()) {\n clss.remove(hideTitleCls);\n }\n }\n }\n\n private update(): void {\n this.updateCls();\n this.updateHeight();\n this.fullscreen.set(this.fullscreen());\n }\n\n private updateHeight(): void {\n this._height.set(this.bodyEl.getBoundingClientRect().height - this.el.getBoundingClientRect().top - this.padding());\n }\n\n private removeInBody(): void {\n this.bodyEl.classList.remove(wrapCls, openedCls, hideTitleCls);\n }\n\n toggle(): void {\n this.fullscreen.set(!this.fullscreen());\n this.update();\n this.updateHeight();\n }\n\n ngOnDestroy(): void {\n this.removeInBody();\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { FullContentComponent } from './full-content.component';\n\n@Directive({\n selector: '[full-toggle]',\n exportAs: 'fullToggle',\n host: {\n '(click)': '_click()'\n }\n})\nexport class FullContentToggleDirective {\n private readonly parent = inject(FullContentComponent);\n\n protected _click(): void {\n this.parent.toggle();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FullContentToggleDirective } from './full-content-toggle.directive';\nimport { FullContentComponent } from './full-content.component';\n\nconst COMPONENTS = [FullContentComponent, FullContentToggleDirective];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class FullContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ class GlobalFooterItemComponent {
10
10
  host = viewChild.required('host');
11
11
  href = input(...(ngDevMode ? [undefined, { debugName: "href" }] : /* istanbul ignore next */ []));
12
12
  blankTarget = input(false, { ...(ngDevMode ? { debugName: "blankTarget" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.6", type: GlobalFooterItemComponent, isStandalone: true, selector: "global-footer-item", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, blankTarget: { classPropertyName: "blankTarget", publicName: "blankTarget", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, isSignal: true }], exportAs: ["globalFooterItem"], ngImport: i0, template: `<ng-template #host><ng-content /></ng-template>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.11", type: GlobalFooterItemComponent, isStandalone: true, selector: "global-footer-item", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, blankTarget: { classPropertyName: "blankTarget", publicName: "blankTarget", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, isSignal: true }], exportAs: ["globalFooterItem"], ngImport: i0, template: `<ng-template #host><ng-content /></ng-template>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterItemComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterItemComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{
19
19
  selector: 'global-footer-item',
@@ -56,8 +56,8 @@ class GlobalFooterComponent {
56
56
  this.router.navigateByUrl(href);
57
57
  }
58
58
  }
59
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: GlobalFooterComponent, isStandalone: true, selector: "global-footer", inputs: { links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.global-footer-rtl": "dir() === 'rtl'" }, classAttribute: "global-footer" }, queries: [{ propertyName: "items", predicate: GlobalFooterItemComponent, isSignal: true }], exportAs: ["globalFooter"], ngImport: i0, template: `
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: GlobalFooterComponent, isStandalone: true, selector: "global-footer", inputs: { links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.global-footer-rtl": "dir() === 'rtl'" }, classAttribute: "global-footer" }, queries: [{ propertyName: "items", predicate: GlobalFooterItemComponent, isSignal: true }], exportAs: ["globalFooter"], ngImport: i0, template: `
61
61
  @if (linkHtmls().length > 0 || items().length > 0) {
62
62
  <div class="global-footer__links">
63
63
  @for (i of linkHtmls(); track $index) {
@@ -75,7 +75,7 @@ class GlobalFooterComponent {
75
75
  </div>
76
76
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterComponent, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterComponent, decorators: [{
79
79
  type: Component,
80
80
  args: [{
81
81
  selector: 'global-footer',
@@ -109,11 +109,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
109
109
 
110
110
  const COMPONENTS = [GlobalFooterComponent, GlobalFooterItemComponent];
111
111
  class GlobalFooterModule {
112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
113
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule, GlobalFooterComponent, GlobalFooterItemComponent], exports: [GlobalFooterComponent, GlobalFooterItemComponent] });
114
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule] });
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
113
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule, GlobalFooterComponent, GlobalFooterItemComponent], exports: [GlobalFooterComponent, GlobalFooterItemComponent] });
114
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule] });
115
115
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GlobalFooterModule, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: GlobalFooterModule, decorators: [{
117
117
  type: NgModule,
118
118
  args: [{
119
119
  imports: [CommonModule, RouterModule, ...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"global-footer.mjs","sources":["../../../../packages/abc/global-footer/global-footer-item.component.ts","../../../../packages/abc/global-footer/global-footer.component.ts","../../../../packages/abc/global-footer/global-footer.module.ts","../../../../packages/abc/global-footer/global-footer.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n input,\n viewChild\n} from '@angular/core';\n\n@Component({\n selector: 'global-footer-item',\n exportAs: 'globalFooterItem',\n template: `<ng-template #host><ng-content /></ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class GlobalFooterItemComponent {\n readonly host = viewChild.required<TemplateRef<void>>('host');\n readonly href = input<string>();\n readonly blankTarget = input(false, { transform: booleanAttribute });\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n contentChildren,\n inject,\n input\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { WINDOW } from '@delon/util/token';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterLink } from './global-footer.types';\n\n@Component({\n selector: 'global-footer',\n exportAs: 'globalFooter',\n template: `\n @if (linkHtmls().length > 0 || items().length > 0) {\n <div class=\"global-footer__links\">\n @for (i of linkHtmls(); track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\" [innerHTML]=\"i.title\"></a>\n }\n @for (i of items(); track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\">\n <ng-container *ngTemplateOutlet=\"i.host()\" />\n </a>\n }\n </div>\n }\n <div class=\"global-footer__copyright\">\n <ng-content />\n </div>\n `,\n host: {\n class: 'global-footer',\n '[class.global-footer-rtl]': `dir() === 'rtl'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet]\n})\nexport class GlobalFooterComponent {\n private readonly router = inject(Router);\n private readonly win = inject(WINDOW);\n private readonly dom = inject(DomSanitizer);\n\n protected dir = inject(Directionality).valueSignal;\n\n readonly links = input<GlobalFooterLink[]>([]);\n readonly items = contentChildren(GlobalFooterItemComponent);\n\n protected linkHtmls = computed(() => {\n return this.links().map(item => {\n if (typeof item.title === 'string') {\n item.title = this.dom.bypassSecurityTrustHtml(item.title);\n }\n return item;\n });\n });\n\n protected to(item: GlobalFooterLink | GlobalFooterItemComponent): void {\n const href = typeof item.href === 'string' ? item.href : item.href();\n if (!href) {\n return;\n }\n const blankTarget = typeof item.blankTarget === 'boolean' ? item.blankTarget : item.blankTarget?.();\n if (blankTarget) {\n this.win.open(href);\n return;\n }\n if (/^https?:\\/\\//.test(href)) {\n this.win.location.href = href;\n } else {\n this.router.navigateByUrl(href);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterComponent } from './global-footer.component';\n\nconst COMPONENTS = [GlobalFooterComponent, GlobalFooterItemComponent];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class GlobalFooterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-footer.mjs","sources":["../../../../packages/abc/global-footer/global-footer-item.component.ts","../../../../packages/abc/global-footer/global-footer.component.ts","../../../../packages/abc/global-footer/global-footer.module.ts","../../../../packages/abc/global-footer/global-footer.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n input,\n viewChild\n} from '@angular/core';\n\n@Component({\n selector: 'global-footer-item',\n exportAs: 'globalFooterItem',\n template: `<ng-template #host><ng-content /></ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class GlobalFooterItemComponent {\n readonly host = viewChild.required<TemplateRef<void>>('host');\n readonly href = input<string>();\n readonly blankTarget = input(false, { transform: booleanAttribute });\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n contentChildren,\n inject,\n input\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { WINDOW } from '@delon/util/token';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterLink } from './global-footer.types';\n\n@Component({\n selector: 'global-footer',\n exportAs: 'globalFooter',\n template: `\n @if (linkHtmls().length > 0 || items().length > 0) {\n <div class=\"global-footer__links\">\n @for (i of linkHtmls(); track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\" [innerHTML]=\"i.title\"></a>\n }\n @for (i of items(); track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\">\n <ng-container *ngTemplateOutlet=\"i.host()\" />\n </a>\n }\n </div>\n }\n <div class=\"global-footer__copyright\">\n <ng-content />\n </div>\n `,\n host: {\n class: 'global-footer',\n '[class.global-footer-rtl]': `dir() === 'rtl'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet]\n})\nexport class GlobalFooterComponent {\n private readonly router = inject(Router);\n private readonly win = inject(WINDOW);\n private readonly dom = inject(DomSanitizer);\n\n protected dir = inject(Directionality).valueSignal;\n\n readonly links = input<GlobalFooterLink[]>([]);\n readonly items = contentChildren(GlobalFooterItemComponent);\n\n protected linkHtmls = computed(() => {\n return this.links().map(item => {\n if (typeof item.title === 'string') {\n item.title = this.dom.bypassSecurityTrustHtml(item.title);\n }\n return item;\n });\n });\n\n protected to(item: GlobalFooterLink | GlobalFooterItemComponent): void {\n const href = typeof item.href === 'string' ? item.href : item.href();\n if (!href) {\n return;\n }\n const blankTarget = typeof item.blankTarget === 'boolean' ? item.blankTarget : item.blankTarget?.();\n if (blankTarget) {\n this.win.open(href);\n return;\n }\n if (/^https?:\\/\\//.test(href)) {\n this.win.location.href = href;\n } else {\n this.router.navigateByUrl(href);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterComponent } from './global-footer.component';\n\nconst COMPONENTS = [GlobalFooterComponent, GlobalFooterItemComponent];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class GlobalFooterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -22,10 +22,10 @@ class HotkeyDirective {
22
22
  return;
23
23
  this.ngZone.runOutsideAngular(() => uninstall(this.el));
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: HotkeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.6", type: HotkeyDirective, isStandalone: true, selector: "[hotkey]", inputs: { hotkey: "hotkey" }, ngImport: i0 });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: HotkeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: HotkeyDirective, isStandalone: true, selector: "[hotkey]", inputs: { hotkey: "hotkey" }, ngImport: i0 });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: HotkeyDirective, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: HotkeyDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{ selector: '[hotkey]' }]
31
31
  }], propDecorators: { hotkey: [{
@@ -35,11 +35,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
35
35
 
36
36
  const DIRECTIVES = [HotkeyDirective];
37
37
  class HotkeyModule {
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: HotkeyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: HotkeyModule, imports: [HotkeyDirective], exports: [HotkeyDirective] });
40
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: HotkeyModule });
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: HotkeyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: HotkeyModule, imports: [HotkeyDirective], exports: [HotkeyDirective] });
40
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: HotkeyModule });
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: HotkeyModule, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: HotkeyModule, decorators: [{
43
43
  type: NgModule,
44
44
  args: [{
45
45
  imports: DIRECTIVES,
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey.mjs","sources":["../../../../packages/abc/hotkey/hotkey.directive.ts","../../../../packages/abc/hotkey/hotkey.module.ts","../../../../packages/abc/hotkey/hotkey.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport { Directive, ElementRef, Input, NgZone, OnDestroy, inject } from '@angular/core';\n\nimport { install, uninstall } from '@github/hotkey';\n\n@Directive({ selector: '[hotkey]' })\nexport class HotkeyDirective implements OnDestroy {\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly ngZone = inject(NgZone);\n private readonly platform = inject(Platform);\n\n /**\n * Specify [hotkey format](https://github.com/github/hotkey#hotkey-string-format), you can get the code through [Hotkey Code](https://github.github.com/hotkey/hotkey_mapper.html)\n *\n * 指定[热键格式](https://github.com/github/hotkey#hotkey-string-format),可以通过 [Hotkey Code](https://github.github.com/hotkey/hotkey_mapper.html) 来获取代码。\n */\n @Input('hotkey')\n set hotkey(key: string) {\n if (!this.platform.isBrowser) return;\n\n this.ngZone.runOutsideAngular(() => install(this.el, key));\n }\n\n ngOnDestroy(): void {\n if (!this.platform.isBrowser) return;\n\n this.ngZone.runOutsideAngular(() => uninstall(this.el));\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { HotkeyDirective } from './hotkey.directive';\n\nconst DIRECTIVES = [HotkeyDirective];\n\n@NgModule({\n imports: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class HotkeyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;MAMa,eAAe,CAAA;AACT,IAAA,EAAE,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAClD,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5C;;;;AAIG;IACH,IACI,MAAM,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE;AAE9B,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE;AAE9B,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD;uGArBW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;mBAAC,EAAE,QAAQ,EAAE,UAAU,EAAE;;sBAWhC,KAAK;uBAAC,QAAQ;;;ACZjB,MAAM,UAAU,GAAG,CAAC,eAAe,CAAC;MAMvB,YAAY,CAAA;uGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAZ,YAAY,EAAA,OAAA,EAAA,CANL,eAAe,CAAA,EAAA,OAAA,EAAA,CAAf,eAAe,CAAA,EAAA,CAAA;wGAMtB,YAAY,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,OAAO,EAAE;AACV,iBAAA;;;ACTD;;AAEG;;;;"}
1
+ {"version":3,"file":"hotkey.mjs","sources":["../../../../packages/abc/hotkey/hotkey.directive.ts","../../../../packages/abc/hotkey/hotkey.module.ts","../../../../packages/abc/hotkey/hotkey.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport { Directive, ElementRef, Input, NgZone, OnDestroy, inject } from '@angular/core';\n\nimport { install, uninstall } from '@github/hotkey';\n\n@Directive({ selector: '[hotkey]' })\nexport class HotkeyDirective implements OnDestroy {\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly ngZone = inject(NgZone);\n private readonly platform = inject(Platform);\n\n /**\n * Specify [hotkey format](https://github.com/github/hotkey#hotkey-string-format), you can get the code through [Hotkey Code](https://github.github.com/hotkey/hotkey_mapper.html)\n *\n * 指定[热键格式](https://github.com/github/hotkey#hotkey-string-format),可以通过 [Hotkey Code](https://github.github.com/hotkey/hotkey_mapper.html) 来获取代码。\n */\n @Input('hotkey')\n set hotkey(key: string) {\n if (!this.platform.isBrowser) return;\n\n this.ngZone.runOutsideAngular(() => install(this.el, key));\n }\n\n ngOnDestroy(): void {\n if (!this.platform.isBrowser) return;\n\n this.ngZone.runOutsideAngular(() => uninstall(this.el));\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { HotkeyDirective } from './hotkey.directive';\n\nconst DIRECTIVES = [HotkeyDirective];\n\n@NgModule({\n imports: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class HotkeyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;MAMa,eAAe,CAAA;AACT,IAAA,EAAE,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAClD,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5C;;;;AAIG;IACH,IACI,MAAM,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE;AAE9B,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE;AAE9B,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD;wGArBW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;mBAAC,EAAE,QAAQ,EAAE,UAAU,EAAE;;sBAWhC,KAAK;uBAAC,QAAQ;;;ACZjB,MAAM,UAAU,GAAG,CAAC,eAAe,CAAC;MAMvB,YAAY,CAAA;wGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAZ,YAAY,EAAA,OAAA,EAAA,CANL,eAAe,CAAA,EAAA,OAAA,EAAA,CAAf,eAAe,CAAA,EAAA,CAAA;yGAMtB,YAAY,EAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,OAAO,EAAE;AACV,iBAAA;;;ACTD;;AAEG;;;;"}
@@ -19,8 +19,8 @@ class LoadingDefaultComponent {
19
19
  get custom() {
20
20
  return this.options.custom;
21
21
  }
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: LoadingDefaultComponent, isStandalone: true, selector: "loading-default", host: { properties: { "class.loading-default-rtl": "dir === 'rtl'" }, classAttribute: "loading-default" }, ngImport: i0, template: `
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: LoadingDefaultComponent, isStandalone: true, selector: "loading-default", host: { properties: { "class.loading-default-rtl": "dir === 'rtl'" }, classAttribute: "loading-default" }, ngImport: i0, template: `
24
24
  @if (options.type! !== 'text') {
25
25
  <div class="loading-default__icon">
26
26
  @switch (options.type) {
@@ -41,7 +41,7 @@ class LoadingDefaultComponent {
41
41
  }
42
42
  `, isInline: true, dependencies: [{ kind: "component", type: NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingDefaultComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingDefaultComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{
47
47
  selector: 'loading-default',
@@ -151,21 +151,21 @@ class LoadingService {
151
151
  ngOnDestroy() {
152
152
  this.loading$.unsubscribe();
153
153
  }
154
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
155
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingService, providedIn: 'root' });
154
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
155
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingService, providedIn: 'root' });
156
156
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingService, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingService, decorators: [{
158
158
  type: Injectable,
159
159
  args: [{ providedIn: 'root' }]
160
160
  }], ctorParameters: () => [] });
161
161
 
162
162
  const COMPONENTS = [LoadingDefaultComponent];
163
163
  class LoadingModule {
164
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
165
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: LoadingModule, imports: [CommonModule, OverlayModule, PortalModule, NzIconModule, NzSpinModule, LoadingDefaultComponent], exports: [LoadingDefaultComponent] });
166
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingModule, imports: [CommonModule, OverlayModule, PortalModule, NzIconModule, NzSpinModule, COMPONENTS] });
164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
165
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: LoadingModule, imports: [CommonModule, OverlayModule, PortalModule, NzIconModule, NzSpinModule, LoadingDefaultComponent], exports: [LoadingDefaultComponent] });
166
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingModule, imports: [CommonModule, OverlayModule, PortalModule, NzIconModule, NzSpinModule, COMPONENTS] });
167
167
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LoadingModule, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LoadingModule, decorators: [{
169
169
  type: NgModule,
170
170
  args: [{
171
171
  imports: [CommonModule, OverlayModule, PortalModule, NzIconModule, NzSpinModule, ...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"loading.mjs","sources":["../../../../packages/abc/loading/loading.component.ts","../../../../packages/abc/loading/loading.service.ts","../../../../packages/abc/loading/loading.module.ts","../../../../packages/abc/loading/loading.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzSpinComponent } from 'ng-zorro-antd/spin';\n\nimport { LoadingCustom, LoadingIcon, LoadingShowOptions } from './loading.types';\n\n@Component({\n selector: 'loading-default',\n template: `\n @if (options.type! !== 'text') {\n <div class=\"loading-default__icon\">\n @switch (options.type) {\n @case ('spin') {\n <nz-spin nzSimple />\n }\n @case ('icon') {\n <nz-icon [nzType]=\"icon.type!\" [nzTheme]=\"icon.theme!\" [nzSpin]=\"icon.spin\" />\n }\n @default {\n <div class=\"loading-default__custom\" [style]=\"custom.style!\" [innerHTML]=\"custom.html\"></div>\n }\n }\n </div>\n }\n @if (options.text) {\n <div class=\"loading-default__text\">{{ options.text }}</div>\n }\n `,\n host: {\n class: 'loading-default',\n '[class.loading-default-rtl]': `dir === 'rtl'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NzSpinComponent, NzIconDirective]\n})\nexport class LoadingDefaultComponent {\n options!: LoadingShowOptions;\n dir?: Direction = 'ltr';\n\n get icon(): LoadingIcon {\n return this.options.icon!;\n }\n\n get custom(): LoadingCustom {\n return this.options.custom!;\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { Subject, Subscription, timer, debounce } from 'rxjs';\n\nimport { DelonLocaleService } from '@delon/theme';\nimport { AlainConfigService, AlainLoadingConfig } from '@delon/util/config';\n\nimport { LoadingDefaultComponent } from './loading.component';\nimport { LoadingShowOptions } from './loading.types';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingService implements OnDestroy {\n private readonly overlay = inject(Overlay);\n private readonly configSrv = inject(AlainConfigService);\n private readonly directionality = inject(Directionality);\n private locale = inject(DelonLocaleService).getData('loading');\n\n private _overlayRef?: OverlayRef;\n private compRef: ComponentRef<LoadingDefaultComponent> | null = null;\n private opt: LoadingShowOptions | null = null;\n private cog: AlainLoadingConfig;\n private n$ = new Subject<void>();\n private loading$: Subscription;\n\n get instance(): LoadingDefaultComponent | null {\n return this.compRef != null ? this.compRef.instance : null;\n }\n\n constructor() {\n this.cog = this.configSrv.merge('loading', {\n type: 'spin',\n text: this.locale.text,\n icon: {\n type: 'loading',\n theme: 'outline',\n spin: true\n },\n delay: 0\n })!;\n this.loading$ = this.n$\n .asObservable()\n .pipe(debounce(() => timer(this.opt!.delay!)))\n .subscribe(() => this.create());\n }\n\n private create(): void {\n if (this.opt == null) return;\n\n this._close(false);\n\n this._overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: true,\n backdropClass: 'loading-backdrop'\n });\n this.compRef = this._overlayRef.attach(new ComponentPortal(LoadingDefaultComponent));\n const dir = this.configSrv.get('loading')!.direction ?? this.directionality.value;\n if (this.instance != null) {\n this.instance!.options = this.opt;\n this.instance!.dir = dir;\n }\n this.compRef.changeDetectorRef.markForCheck();\n }\n\n /**\n * Open a new loading indicator\n *\n * 打开一个新加载指示符\n */\n open(options?: LoadingShowOptions): void {\n this.opt = { ...this.cog, ...options };\n this.n$.next();\n }\n\n private _close(cleanOpt: boolean): void {\n if (cleanOpt) this.opt = null;\n if (!this._overlayRef) return;\n this._overlayRef.detach();\n this.compRef = null;\n }\n\n /**\n * Turn off a loading indicator\n *\n * 关闭一个加载指示符\n */\n close(): void {\n this._close(true);\n }\n\n ngOnDestroy(): void {\n this.loading$.unsubscribe();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\n\nimport { LoadingDefaultComponent } from './loading.component';\n\nconst COMPONENTS = [LoadingDefaultComponent];\n\n@NgModule({\n imports: [CommonModule, OverlayModule, PortalModule, NzIconModule, NzSpinModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class LoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loading.mjs","sources":["../../../../packages/abc/loading/loading.component.ts","../../../../packages/abc/loading/loading.service.ts","../../../../packages/abc/loading/loading.module.ts","../../../../packages/abc/loading/loading.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzSpinComponent } from 'ng-zorro-antd/spin';\n\nimport { LoadingCustom, LoadingIcon, LoadingShowOptions } from './loading.types';\n\n@Component({\n selector: 'loading-default',\n template: `\n @if (options.type! !== 'text') {\n <div class=\"loading-default__icon\">\n @switch (options.type) {\n @case ('spin') {\n <nz-spin nzSimple />\n }\n @case ('icon') {\n <nz-icon [nzType]=\"icon.type!\" [nzTheme]=\"icon.theme!\" [nzSpin]=\"icon.spin\" />\n }\n @default {\n <div class=\"loading-default__custom\" [style]=\"custom.style!\" [innerHTML]=\"custom.html\"></div>\n }\n }\n </div>\n }\n @if (options.text) {\n <div class=\"loading-default__text\">{{ options.text }}</div>\n }\n `,\n host: {\n class: 'loading-default',\n '[class.loading-default-rtl]': `dir === 'rtl'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NzSpinComponent, NzIconDirective]\n})\nexport class LoadingDefaultComponent {\n options!: LoadingShowOptions;\n dir?: Direction = 'ltr';\n\n get icon(): LoadingIcon {\n return this.options.icon!;\n }\n\n get custom(): LoadingCustom {\n return this.options.custom!;\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { Subject, Subscription, timer, debounce } from 'rxjs';\n\nimport { DelonLocaleService } from '@delon/theme';\nimport { AlainConfigService, AlainLoadingConfig } from '@delon/util/config';\n\nimport { LoadingDefaultComponent } from './loading.component';\nimport { LoadingShowOptions } from './loading.types';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingService implements OnDestroy {\n private readonly overlay = inject(Overlay);\n private readonly configSrv = inject(AlainConfigService);\n private readonly directionality = inject(Directionality);\n private locale = inject(DelonLocaleService).getData('loading');\n\n private _overlayRef?: OverlayRef;\n private compRef: ComponentRef<LoadingDefaultComponent> | null = null;\n private opt: LoadingShowOptions | null = null;\n private cog: AlainLoadingConfig;\n private n$ = new Subject<void>();\n private loading$: Subscription;\n\n get instance(): LoadingDefaultComponent | null {\n return this.compRef != null ? this.compRef.instance : null;\n }\n\n constructor() {\n this.cog = this.configSrv.merge('loading', {\n type: 'spin',\n text: this.locale.text,\n icon: {\n type: 'loading',\n theme: 'outline',\n spin: true\n },\n delay: 0\n })!;\n this.loading$ = this.n$\n .asObservable()\n .pipe(debounce(() => timer(this.opt!.delay!)))\n .subscribe(() => this.create());\n }\n\n private create(): void {\n if (this.opt == null) return;\n\n this._close(false);\n\n this._overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: true,\n backdropClass: 'loading-backdrop'\n });\n this.compRef = this._overlayRef.attach(new ComponentPortal(LoadingDefaultComponent));\n const dir = this.configSrv.get('loading')!.direction ?? this.directionality.value;\n if (this.instance != null) {\n this.instance!.options = this.opt;\n this.instance!.dir = dir;\n }\n this.compRef.changeDetectorRef.markForCheck();\n }\n\n /**\n * Open a new loading indicator\n *\n * 打开一个新加载指示符\n */\n open(options?: LoadingShowOptions): void {\n this.opt = { ...this.cog, ...options };\n this.n$.next();\n }\n\n private _close(cleanOpt: boolean): void {\n if (cleanOpt) this.opt = null;\n if (!this._overlayRef) return;\n this._overlayRef.detach();\n this.compRef = null;\n }\n\n /**\n * Turn off a loading indicator\n *\n * 关闭一个加载指示符\n */\n close(): void {\n this._close(true);\n }\n\n ngOnDestroy(): void {\n this.loading$.unsubscribe();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\n\nimport { LoadingDefaultComponent } from './loading.component';\n\nconst COMPONENTS = [LoadingDefaultComponent];\n\n@NgModule({\n imports: [CommonModule, OverlayModule, PortalModule, NzIconModule, NzSpinModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class LoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -218,20 +218,20 @@ class LodopService {
218
218
  this._init.unsubscribe();
219
219
  this._events.unsubscribe();
220
220
  }
221
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LodopService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
222
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LodopService, providedIn: 'root' });
221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LodopService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
222
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LodopService, providedIn: 'root' });
223
223
  }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LodopService, decorators: [{
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LodopService, decorators: [{
225
225
  type: Injectable,
226
226
  args: [{ providedIn: 'root' }]
227
227
  }], ctorParameters: () => [] });
228
228
 
229
229
  class LodopModule {
230
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LodopModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
231
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: LodopModule });
232
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LodopModule });
230
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LodopModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
231
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: LodopModule });
232
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LodopModule });
233
233
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: LodopModule, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: LodopModule, decorators: [{
235
235
  type: NgModule,
236
236
  args: [{}]
237
237
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"lodop.mjs","sources":["../../../../packages/abc/lodop/lodop.service.ts","../../../../packages/abc/lodop/lodop.module.ts","../../../../packages/abc/lodop/lodop.ts"],"sourcesContent":["import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { Observable, of, Subject } from 'rxjs';\n\nimport { AlainConfigService, AlainLodopConfig } from '@delon/util/config';\nimport { LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { Lodop, LodopPrintResult, LodopResult } from './lodop.types';\n\n@Injectable({ providedIn: 'root' })\nexport class LodopService implements OnDestroy {\n private readonly scriptSrv = inject(LazyService);\n private readonly cogSrv = inject(AlainConfigService);\n\n private defaultConfig: AlainLodopConfig;\n private _cog!: AlainLodopConfig;\n private pending = false;\n private _lodop: Lodop | null = null;\n private _init = new Subject<LodopResult>();\n private _events = new Subject<LodopPrintResult>();\n private printBuffer: NzSafeAny[] = [];\n\n constructor() {\n this.defaultConfig = this.cogSrv.merge('lodop', {\n url: 'http://localhost:8443/CLodopfuncs.js',\n name: 'CLODOP',\n companyName: '',\n checkMaxCount: 100\n })!;\n this.cog = this.defaultConfig;\n }\n\n /**\n * Get or set configuration, **Note:** Resetting will invert and reload script resources\n *\n * 获取或重新设置配置,**注:**重新设置会倒置重新加载脚本资源\n */\n get cog(): AlainLodopConfig {\n return this._cog;\n }\n set cog(value: AlainLodopConfig) {\n this._cog = {\n ...this.defaultConfig,\n ...value\n };\n }\n\n /**\n * Event change notification\n *\n * 事件变更通知\n */\n get events(): Observable<LodopPrintResult> {\n return this._events.asObservable();\n }\n\n /**\n * Get lodop object\n *\n * 获取 lodop 对象\n */\n get lodop(): Observable<LodopResult> {\n if (this._lodop) return of({ ok: true, lodop: this._lodop } as LodopResult);\n if (this.pending) return this._init.asObservable();\n\n this.request();\n\n return this._init.asObservable();\n }\n\n /**\n * Get printer list\n *\n * 获取打印机列表\n */\n get printer(): string[] {\n this.check();\n const ret: string[] = [];\n const count = this._lodop!.GET_PRINTER_COUNT();\n for (let index = 0; index < count; index++) {\n ret.push(this._lodop!.GET_PRINTER_NAME(index));\n }\n return ret;\n }\n\n private check(): void {\n if (!this._lodop) throw new Error(`请务必先调用 lodop 获取对象`);\n }\n\n private request(): void {\n this.pending = true;\n const urlObj = new URL(this.cog.url!);\n urlObj.searchParams.set('name', this.cog.name!);\n const url = urlObj.toString();\n\n let checkMaxCount = this.cog.checkMaxCount as number;\n const onResolve = (status: NzSafeAny, error?: NzSafeAny): void => {\n this._init.next({\n ok: status === 'ok',\n status,\n error,\n lodop: this._lodop!\n });\n };\n const checkStatus = (): void => {\n --checkMaxCount;\n if (this._lodop!.webskt && this._lodop!.webskt.readyState === 1) {\n onResolve('ok');\n } else {\n if (checkMaxCount < 0) {\n onResolve('check-limit');\n return;\n }\n setTimeout(() => checkStatus(), 100);\n }\n };\n\n this.scriptSrv.loadScript(url).then((res: NzSafeAny) => {\n if (res.status !== 'ok') {\n this.pending = false;\n onResolve('script-load-error', res[0]);\n return;\n }\n const win = window as NzSafeAny;\n if (Object.prototype.hasOwnProperty.call(win, this.cog.name!)) {\n this._lodop = win[this.cog.name!] as Lodop;\n }\n if (this._lodop === null) {\n onResolve('load-variable-name-error', { name: this.cog.name });\n return;\n }\n this._lodop.SET_LICENSES(this.cog.companyName!, this.cog.license!, this.cog.licenseA, this.cog.licenseB);\n checkStatus();\n });\n }\n\n /**\n * Reset lodop object\n *\n * 重置 lodop 对象\n */\n reset(): void {\n this._lodop = null;\n this.pending = false;\n this.request();\n }\n\n /**\n * Attach code to the `lodop` object, the string class supports dynamic parameters of `{{key}}`,\n * **Note:** The code refers to the string data generated by the print design\n *\n * 附加代码至 `lodop` 对象上,字符串类支持 `{{key}}` 的动态参数,**注:** 代码是指打印设计所产生字符串数据\n */\n attachCode(code: string, contextObj?: NzSafeAny, parser?: RegExp): void {\n this.check();\n if (!parser) parser = /LODOP\\.([^(]+)\\(([^\\n]+)?\\);/i;\n code.split('\\n').forEach(line => {\n const res = parser!.exec(line.trim());\n if (!res) return;\n const fn = this._lodop![res[1]];\n if (fn) {\n let arr: NzSafeAny[] | null = null;\n try {\n const fakeFn = new Function(`return [${res[2]}]`);\n arr = fakeFn();\n } catch {}\n\n if (arr != null && Array.isArray(arr) && contextObj) {\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] === 'string') {\n arr[i] = (arr[i] as string).replace(/{{(.*?)}}/g, (_match, key) => contextObj[key.trim()] ?? '');\n }\n }\n }\n fn.apply(this._lodop, arr!);\n }\n });\n }\n\n /**\n * The code is automatically returned after opening the print design and closing,\n * **Note:** Automatically listen for the `On_Return` event, and it will be removed after running\n *\n * 打开打印设计关闭后自动返回代码,**注:** 自动监听 `On_Return` 事件,运行后会移除\n */\n design(): Promise<string> {\n this.check();\n const tid = this._lodop!.PRINT_DESIGN();\n return new Promise(resolve => {\n this._lodop!.On_Return = (taskID: string, value: boolean | string) => {\n if (tid !== taskID) return;\n this._lodop!.On_Return = null;\n resolve(`${value}`);\n };\n });\n }\n private printDo(): void {\n const data = this.printBuffer.shift();\n if (!data) return;\n this.attachCode(data.code, data.item, data.parser);\n const tid = this._lodop!.PRINT();\n this._lodop!.On_Return = (taskID: string, value: boolean | string) => {\n if (tid !== taskID) return;\n this._lodop!.On_Return = null;\n this._events.next({\n ok: value === true,\n error: value === true ? null : value,\n ...data\n });\n this.printDo();\n };\n }\n\n /**\n * Print immediately, generally used for batch printing\n *\n * 立即打印,一般用于批量套打\n */\n print(code: string, contextObj: NzSafeAny, parser?: RegExp): void {\n this.check();\n if (contextObj) {\n this.printBuffer.push(\n ...(Array.isArray(contextObj) ? contextObj : [contextObj]).map(item => {\n return { code, parser, item };\n })\n );\n }\n this.printDo();\n }\n\n ngOnDestroy(): void {\n this._init.unsubscribe();\n this._events.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class LodopModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAUa,YAAY,CAAA;AACN,IAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAC/B,IAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAE5C,IAAA,aAAa;AACb,IAAA,IAAI;IACJ,OAAO,GAAG,KAAK;IACf,MAAM,GAAiB,IAAI;AAC3B,IAAA,KAAK,GAAG,IAAI,OAAO,EAAe;AAClC,IAAA,OAAO,GAAG,IAAI,OAAO,EAAoB;IACzC,WAAW,GAAgB,EAAE;AAErC,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;AAC9C,YAAA,GAAG,EAAE,sCAAsC;AAC3C,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,aAAa,EAAE;AAChB,SAAA,CAAE;AACH,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa;IAC/B;AAEA;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;IAClB;IACA,IAAI,GAAG,CAAC,KAAuB,EAAA;QAC7B,IAAI,CAAC,IAAI,GAAG;YACV,GAAG,IAAI,CAAC,aAAa;AACrB,YAAA,GAAG;SACJ;IACH;AAEA;;;;AAIG;AACH,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IACpC;AAEA;;;;AAIG;AACH,IAAA,IAAI,KAAK,GAAA;QACP,IAAI,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAiB,CAAC;QAC3E,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;QAElD,IAAI,CAAC,OAAO,EAAE;AAEd,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;IAClC;AAEA;;;;AAIG;AACH,IAAA,IAAI,OAAO,GAAA;QACT,IAAI,CAAC,KAAK,EAAE;QACZ,MAAM,GAAG,GAAa,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAO,CAAC,iBAAiB,EAAE;AAC9C,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AAC1C,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChD;AACA,QAAA,OAAO,GAAG;IACZ;IAEQ,KAAK,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,CAAmB,CAAC;IACxD;IAEQ,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC;AACrC,QAAA,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC;AAC/C,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE7B,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAuB;AACpD,QAAA,MAAM,SAAS,GAAG,CAAC,MAAiB,EAAE,KAAiB,KAAU;AAC/D,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,MAAM,KAAK,IAAI;gBACnB,MAAM;gBACN,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC;AACb,aAAA,CAAC;AACJ,QAAA,CAAC;QACD,MAAM,WAAW,GAAG,MAAW;AAC7B,YAAA,EAAE,aAAa;AACf,YAAA,IAAI,IAAI,CAAC,MAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;gBAC/D,SAAS,CAAC,IAAI,CAAC;YACjB;iBAAO;AACL,gBAAA,IAAI,aAAa,GAAG,CAAC,EAAE;oBACrB,SAAS,CAAC,aAAa,CAAC;oBACxB;gBACF;gBACA,UAAU,CAAC,MAAM,WAAW,EAAE,EAAE,GAAG,CAAC;YACtC;AACF,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAc,KAAI;AACrD,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE;AACvB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;gBACpB,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtC;YACF;YACA,MAAM,GAAG,GAAG,MAAmB;AAC/B,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE;gBAC7D,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAU;YAC5C;AACA,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AACxB,gBAAA,SAAS,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9D;YACF;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,WAAY,EAAE,IAAI,CAAC,GAAG,CAAC,OAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AACxG,YAAA,WAAW,EAAE;AACf,QAAA,CAAC,CAAC;IACJ;AAEA;;;;AAIG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,OAAO,EAAE;IAChB;AAEA;;;;;AAKG;AACH,IAAA,UAAU,CAAC,IAAY,EAAE,UAAsB,EAAE,MAAe,EAAA;QAC9D,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,+BAA+B;QACrD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;YAC9B,MAAM,GAAG,GAAG,MAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,GAAG;gBAAE;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,EAAE;gBACN,IAAI,GAAG,GAAuB,IAAI;AAClC,gBAAA,IAAI;AACF,oBAAA,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,CAAA,QAAA,EAAW,GAAG,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;oBACjD,GAAG,GAAG,MAAM,EAAE;gBAChB;gBAAE,MAAM,EAAC;AAET,gBAAA,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE;AACnD,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACnC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC9B,4BAAA,GAAG,CAAC,CAAC,CAAC,GAAI,GAAG,CAAC,CAAC,CAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;wBAClG;oBACF;gBACF;gBACA,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAI,CAAC;YAC7B;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;AAKG;IACH,MAAM,GAAA;QACJ,IAAI,CAAC,KAAK,EAAE;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAO,CAAC,YAAY,EAAE;AACvC,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;YAC3B,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,CAAC,MAAc,EAAE,KAAuB,KAAI;gBACnE,IAAI,GAAG,KAAK,MAAM;oBAAE;AACpB,gBAAA,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,IAAI;AAC7B,gBAAA,OAAO,CAAC,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;AACrB,YAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACJ;IACQ,OAAO,GAAA;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACrC,QAAA,IAAI,CAAC,IAAI;YAAE;AACX,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAO,CAAC,KAAK,EAAE;QAChC,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,CAAC,MAAc,EAAE,KAAuB,KAAI;YACnE,IAAI,GAAG,KAAK,MAAM;gBAAE;AACpB,YAAA,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,IAAI;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,KAAK,KAAK,IAAI;gBAClB,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK;AACpC,gBAAA,GAAG;AACJ,aAAA,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;AAChB,QAAA,CAAC;IACH;AAEA;;;;AAIG;AACH,IAAA,KAAK,CAAC,IAAY,EAAE,UAAqB,EAAE,MAAe,EAAA;QACxD,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,IAAG;AACpE,gBAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YAC/B,CAAC,CAAC,CACH;QACH;QACA,IAAI,CAAC,OAAO,EAAE;IAChB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IAC5B;uGA/NW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCNrB,WAAW,CAAA;uGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAX,WAAW,EAAA,CAAA;wGAAX,WAAW,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,QAAQ;mBAAC,EAAE;;;ACFZ;;AAEG;;;;"}
1
+ {"version":3,"file":"lodop.mjs","sources":["../../../../packages/abc/lodop/lodop.service.ts","../../../../packages/abc/lodop/lodop.module.ts","../../../../packages/abc/lodop/lodop.ts"],"sourcesContent":["import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { Observable, of, Subject } from 'rxjs';\n\nimport { AlainConfigService, AlainLodopConfig } from '@delon/util/config';\nimport { LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { Lodop, LodopPrintResult, LodopResult } from './lodop.types';\n\n@Injectable({ providedIn: 'root' })\nexport class LodopService implements OnDestroy {\n private readonly scriptSrv = inject(LazyService);\n private readonly cogSrv = inject(AlainConfigService);\n\n private defaultConfig: AlainLodopConfig;\n private _cog!: AlainLodopConfig;\n private pending = false;\n private _lodop: Lodop | null = null;\n private _init = new Subject<LodopResult>();\n private _events = new Subject<LodopPrintResult>();\n private printBuffer: NzSafeAny[] = [];\n\n constructor() {\n this.defaultConfig = this.cogSrv.merge('lodop', {\n url: 'http://localhost:8443/CLodopfuncs.js',\n name: 'CLODOP',\n companyName: '',\n checkMaxCount: 100\n })!;\n this.cog = this.defaultConfig;\n }\n\n /**\n * Get or set configuration, **Note:** Resetting will invert and reload script resources\n *\n * 获取或重新设置配置,**注:**重新设置会倒置重新加载脚本资源\n */\n get cog(): AlainLodopConfig {\n return this._cog;\n }\n set cog(value: AlainLodopConfig) {\n this._cog = {\n ...this.defaultConfig,\n ...value\n };\n }\n\n /**\n * Event change notification\n *\n * 事件变更通知\n */\n get events(): Observable<LodopPrintResult> {\n return this._events.asObservable();\n }\n\n /**\n * Get lodop object\n *\n * 获取 lodop 对象\n */\n get lodop(): Observable<LodopResult> {\n if (this._lodop) return of({ ok: true, lodop: this._lodop } as LodopResult);\n if (this.pending) return this._init.asObservable();\n\n this.request();\n\n return this._init.asObservable();\n }\n\n /**\n * Get printer list\n *\n * 获取打印机列表\n */\n get printer(): string[] {\n this.check();\n const ret: string[] = [];\n const count = this._lodop!.GET_PRINTER_COUNT();\n for (let index = 0; index < count; index++) {\n ret.push(this._lodop!.GET_PRINTER_NAME(index));\n }\n return ret;\n }\n\n private check(): void {\n if (!this._lodop) throw new Error(`请务必先调用 lodop 获取对象`);\n }\n\n private request(): void {\n this.pending = true;\n const urlObj = new URL(this.cog.url!);\n urlObj.searchParams.set('name', this.cog.name!);\n const url = urlObj.toString();\n\n let checkMaxCount = this.cog.checkMaxCount as number;\n const onResolve = (status: NzSafeAny, error?: NzSafeAny): void => {\n this._init.next({\n ok: status === 'ok',\n status,\n error,\n lodop: this._lodop!\n });\n };\n const checkStatus = (): void => {\n --checkMaxCount;\n if (this._lodop!.webskt && this._lodop!.webskt.readyState === 1) {\n onResolve('ok');\n } else {\n if (checkMaxCount < 0) {\n onResolve('check-limit');\n return;\n }\n setTimeout(() => checkStatus(), 100);\n }\n };\n\n this.scriptSrv.loadScript(url).then((res: NzSafeAny) => {\n if (res.status !== 'ok') {\n this.pending = false;\n onResolve('script-load-error', res[0]);\n return;\n }\n const win = window as NzSafeAny;\n if (Object.prototype.hasOwnProperty.call(win, this.cog.name!)) {\n this._lodop = win[this.cog.name!] as Lodop;\n }\n if (this._lodop === null) {\n onResolve('load-variable-name-error', { name: this.cog.name });\n return;\n }\n this._lodop.SET_LICENSES(this.cog.companyName!, this.cog.license!, this.cog.licenseA, this.cog.licenseB);\n checkStatus();\n });\n }\n\n /**\n * Reset lodop object\n *\n * 重置 lodop 对象\n */\n reset(): void {\n this._lodop = null;\n this.pending = false;\n this.request();\n }\n\n /**\n * Attach code to the `lodop` object, the string class supports dynamic parameters of `{{key}}`,\n * **Note:** The code refers to the string data generated by the print design\n *\n * 附加代码至 `lodop` 对象上,字符串类支持 `{{key}}` 的动态参数,**注:** 代码是指打印设计所产生字符串数据\n */\n attachCode(code: string, contextObj?: NzSafeAny, parser?: RegExp): void {\n this.check();\n if (!parser) parser = /LODOP\\.([^(]+)\\(([^\\n]+)?\\);/i;\n code.split('\\n').forEach(line => {\n const res = parser!.exec(line.trim());\n if (!res) return;\n const fn = this._lodop![res[1]];\n if (fn) {\n let arr: NzSafeAny[] | null = null;\n try {\n const fakeFn = new Function(`return [${res[2]}]`);\n arr = fakeFn();\n } catch {}\n\n if (arr != null && Array.isArray(arr) && contextObj) {\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] === 'string') {\n arr[i] = (arr[i] as string).replace(/{{(.*?)}}/g, (_match, key) => contextObj[key.trim()] ?? '');\n }\n }\n }\n fn.apply(this._lodop, arr!);\n }\n });\n }\n\n /**\n * The code is automatically returned after opening the print design and closing,\n * **Note:** Automatically listen for the `On_Return` event, and it will be removed after running\n *\n * 打开打印设计关闭后自动返回代码,**注:** 自动监听 `On_Return` 事件,运行后会移除\n */\n design(): Promise<string> {\n this.check();\n const tid = this._lodop!.PRINT_DESIGN();\n return new Promise(resolve => {\n this._lodop!.On_Return = (taskID: string, value: boolean | string) => {\n if (tid !== taskID) return;\n this._lodop!.On_Return = null;\n resolve(`${value}`);\n };\n });\n }\n private printDo(): void {\n const data = this.printBuffer.shift();\n if (!data) return;\n this.attachCode(data.code, data.item, data.parser);\n const tid = this._lodop!.PRINT();\n this._lodop!.On_Return = (taskID: string, value: boolean | string) => {\n if (tid !== taskID) return;\n this._lodop!.On_Return = null;\n this._events.next({\n ok: value === true,\n error: value === true ? null : value,\n ...data\n });\n this.printDo();\n };\n }\n\n /**\n * Print immediately, generally used for batch printing\n *\n * 立即打印,一般用于批量套打\n */\n print(code: string, contextObj: NzSafeAny, parser?: RegExp): void {\n this.check();\n if (contextObj) {\n this.printBuffer.push(\n ...(Array.isArray(contextObj) ? contextObj : [contextObj]).map(item => {\n return { code, parser, item };\n })\n );\n }\n this.printDo();\n }\n\n ngOnDestroy(): void {\n this._init.unsubscribe();\n this._events.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class LodopModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAUa,YAAY,CAAA;AACN,IAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAC/B,IAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAE5C,IAAA,aAAa;AACb,IAAA,IAAI;IACJ,OAAO,GAAG,KAAK;IACf,MAAM,GAAiB,IAAI;AAC3B,IAAA,KAAK,GAAG,IAAI,OAAO,EAAe;AAClC,IAAA,OAAO,GAAG,IAAI,OAAO,EAAoB;IACzC,WAAW,GAAgB,EAAE;AAErC,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;AAC9C,YAAA,GAAG,EAAE,sCAAsC;AAC3C,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,aAAa,EAAE;AAChB,SAAA,CAAE;AACH,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa;IAC/B;AAEA;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;IAClB;IACA,IAAI,GAAG,CAAC,KAAuB,EAAA;QAC7B,IAAI,CAAC,IAAI,GAAG;YACV,GAAG,IAAI,CAAC,aAAa;AACrB,YAAA,GAAG;SACJ;IACH;AAEA;;;;AAIG;AACH,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IACpC;AAEA;;;;AAIG;AACH,IAAA,IAAI,KAAK,GAAA;QACP,IAAI,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAiB,CAAC;QAC3E,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;QAElD,IAAI,CAAC,OAAO,EAAE;AAEd,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;IAClC;AAEA;;;;AAIG;AACH,IAAA,IAAI,OAAO,GAAA;QACT,IAAI,CAAC,KAAK,EAAE;QACZ,MAAM,GAAG,GAAa,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAO,CAAC,iBAAiB,EAAE;AAC9C,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AAC1C,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChD;AACA,QAAA,OAAO,GAAG;IACZ;IAEQ,KAAK,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,CAAmB,CAAC;IACxD;IAEQ,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC;AACrC,QAAA,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC;AAC/C,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE7B,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAuB;AACpD,QAAA,MAAM,SAAS,GAAG,CAAC,MAAiB,EAAE,KAAiB,KAAU;AAC/D,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,MAAM,KAAK,IAAI;gBACnB,MAAM;gBACN,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC;AACb,aAAA,CAAC;AACJ,QAAA,CAAC;QACD,MAAM,WAAW,GAAG,MAAW;AAC7B,YAAA,EAAE,aAAa;AACf,YAAA,IAAI,IAAI,CAAC,MAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;gBAC/D,SAAS,CAAC,IAAI,CAAC;YACjB;iBAAO;AACL,gBAAA,IAAI,aAAa,GAAG,CAAC,EAAE;oBACrB,SAAS,CAAC,aAAa,CAAC;oBACxB;gBACF;gBACA,UAAU,CAAC,MAAM,WAAW,EAAE,EAAE,GAAG,CAAC;YACtC;AACF,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAc,KAAI;AACrD,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE;AACvB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;gBACpB,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtC;YACF;YACA,MAAM,GAAG,GAAG,MAAmB;AAC/B,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE;gBAC7D,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAU;YAC5C;AACA,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AACxB,gBAAA,SAAS,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9D;YACF;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,WAAY,EAAE,IAAI,CAAC,GAAG,CAAC,OAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AACxG,YAAA,WAAW,EAAE;AACf,QAAA,CAAC,CAAC;IACJ;AAEA;;;;AAIG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,OAAO,EAAE;IAChB;AAEA;;;;;AAKG;AACH,IAAA,UAAU,CAAC,IAAY,EAAE,UAAsB,EAAE,MAAe,EAAA;QAC9D,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,+BAA+B;QACrD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;YAC9B,MAAM,GAAG,GAAG,MAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,GAAG;gBAAE;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,EAAE;gBACN,IAAI,GAAG,GAAuB,IAAI;AAClC,gBAAA,IAAI;AACF,oBAAA,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,CAAA,QAAA,EAAW,GAAG,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;oBACjD,GAAG,GAAG,MAAM,EAAE;gBAChB;gBAAE,MAAM,EAAC;AAET,gBAAA,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE;AACnD,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACnC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC9B,4BAAA,GAAG,CAAC,CAAC,CAAC,GAAI,GAAG,CAAC,CAAC,CAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;wBAClG;oBACF;gBACF;gBACA,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAI,CAAC;YAC7B;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;AAKG;IACH,MAAM,GAAA;QACJ,IAAI,CAAC,KAAK,EAAE;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAO,CAAC,YAAY,EAAE;AACvC,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;YAC3B,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,CAAC,MAAc,EAAE,KAAuB,KAAI;gBACnE,IAAI,GAAG,KAAK,MAAM;oBAAE;AACpB,gBAAA,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,IAAI;AAC7B,gBAAA,OAAO,CAAC,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;AACrB,YAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACJ;IACQ,OAAO,GAAA;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACrC,QAAA,IAAI,CAAC,IAAI;YAAE;AACX,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAO,CAAC,KAAK,EAAE;QAChC,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,CAAC,MAAc,EAAE,KAAuB,KAAI;YACnE,IAAI,GAAG,KAAK,MAAM;gBAAE;AACpB,YAAA,IAAI,CAAC,MAAO,CAAC,SAAS,GAAG,IAAI;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,KAAK,KAAK,IAAI;gBAClB,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK;AACpC,gBAAA,GAAG;AACJ,aAAA,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;AAChB,QAAA,CAAC;IACH;AAEA;;;;AAIG;AACH,IAAA,KAAK,CAAC,IAAY,EAAE,UAAqB,EAAE,MAAe,EAAA;QACxD,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,IAAG;AACpE,gBAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YAC/B,CAAC,CAAC,CACH;QACH;QACA,IAAI,CAAC,OAAO,EAAE;IAChB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IAC5B;wGA/NW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCNrB,WAAW,CAAA;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAX,WAAW,EAAA,CAAA;yGAAX,WAAW,EAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,QAAQ;mBAAC,EAAE;;;ACFZ;;AAEG;;;;"}
@@ -39,10 +39,10 @@ class MediaService {
39
39
  notify() {
40
40
  return this.notify$.asObservable().pipe(share());
41
41
  }
42
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaService, providedIn: 'root' });
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaService, providedIn: 'root' });
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaService, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaService, decorators: [{
46
46
  type: Injectable,
47
47
  args: [{ providedIn: 'root' }]
48
48
  }] });
@@ -114,10 +114,10 @@ class MediaComponent {
114
114
  ngOnDestroy() {
115
115
  this.destroy();
116
116
  }
117
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: MediaComponent, isStandalone: true, selector: "media, [media]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ready: "ready" }, host: { classAttribute: "d-block" }, exportAs: ["mediaComponent"], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
117
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: MediaComponent, isStandalone: true, selector: "media, [media]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ready: "ready" }, host: { classAttribute: "d-block" }, exportAs: ["mediaComponent"], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
119
119
  }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaComponent, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaComponent, decorators: [{
121
121
  type: Component,
122
122
  args: [{
123
123
  selector: 'media, [media]',
@@ -133,11 +133,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
133
133
 
134
134
  const COMPONENTS = [MediaComponent];
135
135
  class MediaModule {
136
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
137
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: MediaModule, imports: [CommonModule, MediaComponent], exports: [MediaComponent] });
138
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaModule, imports: [CommonModule] });
136
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
137
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: MediaModule, imports: [CommonModule, MediaComponent], exports: [MediaComponent] });
138
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaModule, imports: [CommonModule] });
139
139
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: MediaModule, decorators: [{
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: MediaModule, decorators: [{
141
141
  type: NgModule,
142
142
  args: [{
143
143
  imports: [CommonModule, ...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"media.mjs","sources":["../../../../packages/abc/media/media.service.ts","../../../../packages/abc/media/media.component.ts","../../../../packages/abc/media/media.module.ts","../../../../packages/abc/media/media.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { Observable, Subject, share } from 'rxjs';\n\nimport { AlainConfigService, AlainMediaConfig } from '@delon/util/config';\nimport { LazyService } from '@delon/util/other';\n\n@Injectable({ providedIn: 'root' })\nexport class MediaService {\n private readonly cogSrv = inject(AlainConfigService);\n private readonly lazySrv = inject(LazyService);\n\n private _cog!: AlainMediaConfig;\n private loading = false;\n private loaded = false;\n private notify$ = new Subject<void>();\n\n get cog(): AlainMediaConfig {\n return this._cog;\n }\n set cog(val: AlainMediaConfig) {\n this._cog = this.cogSrv.merge(\n 'media',\n {\n urls: ['https://cdn.jsdelivr.net/npm/plyr/dist/plyr.min.js', 'https://cdn.jsdelivr.net/npm/plyr/dist/plyr.css']\n },\n val\n )!;\n }\n\n load(): this {\n if (this.loading) {\n if (this.loaded) {\n this.notify$.next();\n }\n return this;\n }\n this.loading = true;\n this.lazySrv.load(this.cog.urls!).then(() => {\n this.loaded = true;\n this.notify$.next();\n });\n return this;\n }\n\n notify(): Observable<void> {\n return this.notify$.asObservable().pipe(share());\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n afterNextRender,\n effect,\n inject,\n input,\n numberAttribute,\n output\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take, delay } from 'rxjs';\n\nimport type * as Plyr from 'plyr';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { MediaService } from './media.service';\n\nexport type MediaType = 'html5' | 'youtube' | 'video' | 'audio';\n\n@Component({\n selector: 'media, [media]',\n exportAs: 'mediaComponent',\n template: `<ng-content />`,\n host: {\n class: 'd-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MediaComponent implements OnDestroy {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private readonly ngZone = inject(NgZone);\n private readonly srv = inject(MediaService);\n private readonly platform = inject(Platform);\n\n private _p?: Plyr | null;\n private videoEl?: HTMLElement;\n\n readonly type = input<MediaType>('video');\n readonly source = input<string | Plyr.SourceInfo>();\n readonly options = input<Plyr.Options>();\n readonly delay = input(0, { transform: numberAttribute });\n readonly ready = output<Plyr>();\n\n get player(): Plyr | undefined | null {\n return this._p;\n }\n\n constructor() {\n this.srv\n .notify()\n .pipe(takeUntilDestroyed(), take(1), delay(this.delay()))\n .subscribe(() => this.ngZone.runOutsideAngular(() => this.init()));\n\n afterNextRender(() => {\n if (!this.platform.isBrowser) {\n return;\n }\n\n this.srv.load();\n });\n\n effect(() => {\n this.srv.cog = { options: this.options };\n this.uploadSource();\n });\n }\n\n private init(): void {\n const winPlyr = (window as NzSafeAny).Plyr;\n if (!winPlyr) {\n throw new Error(\n `No window.Plyr found, please make sure that cdn or local path exists, the current referenced path is: ${JSON.stringify(\n this.srv.cog.urls\n )}`\n );\n }\n\n this.ensureElement();\n\n const player: Plyr = (this._p = new winPlyr(this.videoEl, {\n ...this.srv.cog.options\n }));\n\n player.on('ready', () => this.ngZone.run(() => this.ready.emit(player)));\n\n this.uploadSource();\n }\n\n private ensureElement(): void {\n const type = this.type();\n let el = this.el.querySelector(type) as HTMLElement;\n if (!el) {\n el = this.renderer.createElement(type);\n (el as HTMLVideoElement).controls = true;\n this.el.appendChild(el);\n }\n this.videoEl = el;\n }\n\n private destroy(): void {\n this._p?.destroy();\n }\n\n private uploadSource(): void {\n const source = this.source();\n const type = this.type();\n\n if (this._p == null) return;\n this._p.source = (typeof source === 'string' ? { type, sources: [{ src: source }] } : source) as Plyr.SourceInfo;\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MediaComponent } from './media.component';\n\nconst COMPONENTS = [MediaComponent];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class MediaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.mjs","sources":["../../../../packages/abc/media/media.service.ts","../../../../packages/abc/media/media.component.ts","../../../../packages/abc/media/media.module.ts","../../../../packages/abc/media/media.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { Observable, Subject, share } from 'rxjs';\n\nimport { AlainConfigService, AlainMediaConfig } from '@delon/util/config';\nimport { LazyService } from '@delon/util/other';\n\n@Injectable({ providedIn: 'root' })\nexport class MediaService {\n private readonly cogSrv = inject(AlainConfigService);\n private readonly lazySrv = inject(LazyService);\n\n private _cog!: AlainMediaConfig;\n private loading = false;\n private loaded = false;\n private notify$ = new Subject<void>();\n\n get cog(): AlainMediaConfig {\n return this._cog;\n }\n set cog(val: AlainMediaConfig) {\n this._cog = this.cogSrv.merge(\n 'media',\n {\n urls: ['https://cdn.jsdelivr.net/npm/plyr/dist/plyr.min.js', 'https://cdn.jsdelivr.net/npm/plyr/dist/plyr.css']\n },\n val\n )!;\n }\n\n load(): this {\n if (this.loading) {\n if (this.loaded) {\n this.notify$.next();\n }\n return this;\n }\n this.loading = true;\n this.lazySrv.load(this.cog.urls!).then(() => {\n this.loaded = true;\n this.notify$.next();\n });\n return this;\n }\n\n notify(): Observable<void> {\n return this.notify$.asObservable().pipe(share());\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n afterNextRender,\n effect,\n inject,\n input,\n numberAttribute,\n output\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take, delay } from 'rxjs';\n\nimport type * as Plyr from 'plyr';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { MediaService } from './media.service';\n\nexport type MediaType = 'html5' | 'youtube' | 'video' | 'audio';\n\n@Component({\n selector: 'media, [media]',\n exportAs: 'mediaComponent',\n template: `<ng-content />`,\n host: {\n class: 'd-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MediaComponent implements OnDestroy {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private readonly ngZone = inject(NgZone);\n private readonly srv = inject(MediaService);\n private readonly platform = inject(Platform);\n\n private _p?: Plyr | null;\n private videoEl?: HTMLElement;\n\n readonly type = input<MediaType>('video');\n readonly source = input<string | Plyr.SourceInfo>();\n readonly options = input<Plyr.Options>();\n readonly delay = input(0, { transform: numberAttribute });\n readonly ready = output<Plyr>();\n\n get player(): Plyr | undefined | null {\n return this._p;\n }\n\n constructor() {\n this.srv\n .notify()\n .pipe(takeUntilDestroyed(), take(1), delay(this.delay()))\n .subscribe(() => this.ngZone.runOutsideAngular(() => this.init()));\n\n afterNextRender(() => {\n if (!this.platform.isBrowser) {\n return;\n }\n\n this.srv.load();\n });\n\n effect(() => {\n this.srv.cog = { options: this.options };\n this.uploadSource();\n });\n }\n\n private init(): void {\n const winPlyr = (window as NzSafeAny).Plyr;\n if (!winPlyr) {\n throw new Error(\n `No window.Plyr found, please make sure that cdn or local path exists, the current referenced path is: ${JSON.stringify(\n this.srv.cog.urls\n )}`\n );\n }\n\n this.ensureElement();\n\n const player: Plyr = (this._p = new winPlyr(this.videoEl, {\n ...this.srv.cog.options\n }));\n\n player.on('ready', () => this.ngZone.run(() => this.ready.emit(player)));\n\n this.uploadSource();\n }\n\n private ensureElement(): void {\n const type = this.type();\n let el = this.el.querySelector(type) as HTMLElement;\n if (!el) {\n el = this.renderer.createElement(type);\n (el as HTMLVideoElement).controls = true;\n this.el.appendChild(el);\n }\n this.videoEl = el;\n }\n\n private destroy(): void {\n this._p?.destroy();\n }\n\n private uploadSource(): void {\n const source = this.source();\n const type = this.type();\n\n if (this._p == null) return;\n this._p.source = (typeof source === 'string' ? { type, sources: [{ src: source }] } : source) as Plyr.SourceInfo;\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MediaComponent } from './media.component';\n\nconst COMPONENTS = [MediaComponent];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class MediaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}