ngx-tethys 19.0.14 → 19.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/date-picker/styles/calendar.scss +1 -1
- package/date-picker/styles/week-picker.scss +1 -0
- package/fesm2022/ngx-tethys-shared.mjs +2 -1
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +2 -2
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/package.json +1 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [19.0.16](https://github.com/atinc/ngx-tethys/compare/19.0.15...19.0.16) (2025-07-23)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **upload:** add subfix as mime to compatible with browser #TINFR-2565 ([#3492](https://github.com/atinc/ngx-tethys/issues/3492)) ([43539e3](https://github.com/atinc/ngx-tethys/commit/43539e3940775dfc4db336cfd629ba9e887a9dd3)), closes [#TINFR-2565](https://github.com/atinc/ngx-tethys/issues/TINFR-2565)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [19.0.15](https://github.com/atinc/ngx-tethys/compare/19.0.14...19.0.15) (2025-07-14)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **datePicker:** fix week mode today style error #TINFR-2359 ([e867dfc](https://github.com/atinc/ngx-tethys/commit/e867dfc40efefb9fcbf376f9ca94c5ce2e89eead)), closes [#TINFR-2359](https://github.com/atinc/ngx-tethys/issues/TINFR-2359)
|
|
20
|
+
* **shared:** fix select control search style error #TINFR-2321 ([1a44bd1](https://github.com/atinc/ngx-tethys/commit/1a44bd1c1aaf49c649a9e07ba792d31001568f55)), closes [#TINFR-2321](https://github.com/atinc/ngx-tethys/issues/TINFR-2321)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
5
24
|
## [19.0.14](https://github.com/atinc/ngx-tethys/compare/19.0.13...19.0.14) (2025-06-27)
|
|
6
25
|
|
|
7
26
|
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
position: relative;
|
|
132
132
|
border: style.$border-width-base style.$border-style-base transparent;
|
|
133
133
|
color: style.$disabled-color;
|
|
134
|
-
background: style.$disabled-bg;
|
|
134
|
+
background: style.$disabled-bg !important;
|
|
135
135
|
border-radius: 0;
|
|
136
136
|
cursor: variables.$disabled-cursor;
|
|
137
137
|
width: auto;
|
|
@@ -928,7 +928,8 @@ class ThySelectControl {
|
|
|
928
928
|
[`form-control`]: true,
|
|
929
929
|
[`form-control-${this.thySize}`]: !!this.thySize,
|
|
930
930
|
[`search-input-field`]: true,
|
|
931
|
-
[`hidden`]: !this.thyShowSearch
|
|
931
|
+
[`hidden`]: !this.thyShowSearch,
|
|
932
|
+
[`disabled`]: this.thyDisabled
|
|
932
933
|
};
|
|
933
934
|
}
|
|
934
935
|
setInputValue(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-shared.mjs","sources":["../../../src/shared/ng-transclude.directive.ts","../../../src/shared/directives/thy-autofocus.directive.ts","../../../src/shared/directives/thy-enter.directive.ts","../../../src/shared/directives/thy-ctrl-enter.directive.ts","../../../src/shared/directives/thy-show.ts","../../../src/shared/directives/thy-stop-propagation.directive.ts","../../../src/shared/directives/thy-contextmenu.directive.ts","../../../src/shared/directives/thy-scroll.directive.ts","../../../src/shared/directives/thy-drag-drop.directive.ts","../../../src/shared/directives/string-or-template-outlet.directive.ts","../../../src/shared/directives/view-outlet.directive.ts","../../../src/shared/shared.module.ts","../../../src/shared/base-form-check.component.ts","../../../src/shared/select/select-control/select-control.component.ts","../../../src/shared/select/select-control/select-control.component.html","../../../src/shared/select/module.ts","../../../src/shared/option/option.token.ts","../../../src/shared/option/list-option/list-option.component.ts","../../../src/shared/option/list-option/list-option.component.html","../../../src/shared/option/option-group.component.ts","../../../src/shared/option/select-option-base.ts","../../../src/shared/option/option.component.ts","../../../src/shared/option/option.component.html","../../../src/shared/option/group/option-group.component.ts","../../../src/shared/option/group/option-group.component.html","../../../src/shared/option/options-container.component.ts","../../../src/shared/option/module.ts","../../../src/shared/ngx-tethys-shared.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, ViewContainerRef, inject } from '@angular/core';\n\n/**\n * @private\n */\n@Directive({\n selector: '[thyTransclude]'\n})\nexport class ThyTranscludeDirective {\n viewRef: ViewContainerRef;\n\n protected _viewRef: ViewContainerRef;\n protected _ngTransclude: TemplateRef<any>;\n\n @Input()\n set thyTransclude(templateRef: TemplateRef<any>) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n\n get thyTransclude(): TemplateRef<any> {\n return this._ngTransclude;\n }\n\n constructor() {\n const viewRef = inject(ViewContainerRef);\n\n this.viewRef = viewRef;\n }\n}\n","import { Directive, Input, ElementRef, NgZone, inject } from '@angular/core';\nimport { reqAnimFrame } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n/**\n * 自动聚焦指令\n * @name input[thyAutofocus],textarea[thyAutofocus]\n */\n@Directive({\n selector: 'input[thyAutofocus],textarea[thyAutofocus]'\n})\nexport class ThyAutofocusDirective {\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n\n // 自动选择,用于只读的 input 输入框,方便复制粘贴\n private _autoSelect = false;\n\n /**\n * 是否自动聚焦\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyAutofocus(value: boolean) {\n if (value) {\n // Note: this is being run outside of the Angular zone because `element.focus()` doesn't require\n // running change detection.\n this.ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n reqAnimFrame(() => {\n this.elementRef.nativeElement.focus();\n if (this._autoSelect && this.elementRef.nativeElement.select) {\n this.elementRef.nativeElement.select();\n }\n })\n );\n }\n }\n\n /**\n * 是否自动选择\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyAutoSelect(value: boolean) {\n this._autoSelect = value;\n }\n}\n","import { Directive, Output, EventEmitter, OnInit, NgZone, ElementRef, Renderer2, OnDestroy, inject } from '@angular/core';\nimport { keycodes } from 'ngx-tethys/util';\n\n/**\n * 与 (keydown.enter) 区别是支持组合键,当按 Ctrl + Enter 或者 Command + Enter 也会触发\n * @name thyEnter\n */\n@Directive({\n selector: '[thyEnter]'\n})\nexport class ThyEnterDirective implements OnInit, OnDestroy {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n @Output() thyEnter = new EventEmitter();\n\n onKeydown = (event: KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n if (keyCode === keycodes.ENTER) {\n this.ngZone.run(() => {\n this.thyEnter.emit(event);\n });\n }\n };\n\n private removeKeydownListenerFn: VoidFunction;\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this.removeKeydownListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'keydown', this.onKeydown);\n });\n }\n\n ngOnDestroy(): void {\n this.removeKeydownListenerFn();\n }\n}\n","import { Directive, Output, ElementRef, EventEmitter, OnInit, NgZone, Renderer2, OnDestroy, inject } from '@angular/core';\nimport { keycodes } from 'ngx-tethys/util';\n\n/**\n * @name thyCtrlEnter\n */\n@Directive({\n selector: '[thyCtrlEnter]'\n})\nexport class ThyCtrlEnterDirective implements OnInit, OnDestroy {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n @Output() thyCtrlEnter = new EventEmitter();\n\n private removeKeydownListenerFn: VoidFunction;\n\n onKeydown = (event: KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n if ((event.ctrlKey || event.metaKey) && keyCode === keycodes.ENTER) {\n event.preventDefault();\n this.ngZone.run(() => {\n this.thyCtrlEnter.emit(event);\n });\n }\n };\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n this.removeKeydownListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'keydown', this.onKeydown);\n });\n }\n\n ngOnDestroy(): void {\n this.removeKeydownListenerFn();\n }\n}\n","import { Directive, Renderer2, Input, ElementRef, Output, EventEmitter, OnDestroy, NgZone, inject } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thyShow\n */\n@Directive({\n selector: '[thyShow]'\n})\nexport class ThyShowDirective implements OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private ngZone = inject(NgZone);\n\n @Output() thyShowChange = new EventEmitter();\n\n private hostRenderer = useHostRenderer();\n\n private unListenEvent: () => void;\n\n private unListenDocument() {\n if (this.unListenEvent) {\n this.unListenEvent();\n this.unListenEvent = null;\n }\n }\n\n @Input({ transform: coerceBooleanProperty })\n set thyShow(condition: boolean) {\n if (condition) {\n this.hostRenderer.setStyle('display', 'block');\n this.ngZone.runOutsideAngular(() =>\n setTimeout(() => {\n this.unListenEvent = this.renderer.listen('document', 'click', event => {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n if (this.thyShowChange.observers.length) {\n this.ngZone.run(() => this.thyShowChange.emit(false));\n }\n this.unListenDocument();\n }\n });\n })\n );\n } else {\n this.hostRenderer.setStyle('display', 'none');\n this.unListenDocument();\n }\n }\n\n ngOnDestroy() {\n this.unListenDocument();\n }\n}\n","import { Directive, ElementRef, Input, NgZone, OnDestroy, inject } from '@angular/core';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { startWith, switchMap, takeUntil } from 'rxjs/operators';\n\n/**\n * 阻止事件冒泡\n * @name thyStopPropagation\n */\n@Directive({\n selector: '[thyStopPropagation]'\n})\nexport class ThyStopPropagationDirective implements OnDestroy {\n private _eventName = 'click';\n\n private _shouldStopPropagation = true;\n\n @Input()\n set thyStopPropagation(value: string | boolean) {\n if (value === false || value === 'false') {\n this._shouldStopPropagation = false;\n } else {\n this._shouldStopPropagation = true;\n if (!value || value === true || value === 'true') {\n this._eventName = 'click';\n } else {\n this._eventName = value as string;\n }\n }\n\n this._changes$.next();\n }\n\n private _changes$ = new Subject<void>();\n private _destroy$ = new Subject<void>();\n\n constructor() {\n const _host = inject<ElementRef<HTMLElement>>(ElementRef);\n const _ngZone = inject(NgZone);\n\n this._changes$\n .pipe(\n // Note: we start the stream immediately since the `thyStopPropagation` setter may never be reached.\n startWith<null, null>(null),\n switchMap(\n () =>\n new Observable<Event>(subscriber =>\n _ngZone.runOutsideAngular(() => fromEvent(_host.nativeElement, this._eventName).subscribe(subscriber))\n )\n ),\n takeUntil(this._destroy$)\n )\n .subscribe(event => {\n if (this._shouldStopPropagation) {\n event.stopPropagation();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n }\n}\n","import { Directive, Output, ElementRef, EventEmitter, OnInit, NgZone, Renderer2, HostListener, OnDestroy, inject } from '@angular/core';\n\n/**\n * @name thyContextMenu\n */\n@Directive({\n selector: '[thyContextMenu]'\n})\nexport class ThyContextMenuDirective implements OnInit, OnDestroy {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n @Output() thyContextMenu = new EventEmitter();\n\n private removeContextListenerFn: VoidFunction;\n\n rightClick = (event: Event) => {\n event.preventDefault();\n this.ngZone.run(() => {\n this.thyContextMenu.emit(event);\n });\n };\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n this.removeContextListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'contextmenu', this.rightClick);\n });\n }\n\n ngOnDestroy(): void {\n this.removeContextListenerFn();\n }\n}\n","import { Directive, ElementRef, OnInit, NgZone, OnDestroy, Output, EventEmitter, Input, inject } from '@angular/core';\nimport { Subject, Observable, Observer, fromEvent, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * @name thyScroll\n */\n@Directive({\n selector: '[thyScroll]'\n})\nexport class ThyScrollDirective implements OnInit, OnDestroy {\n private elementRef = inject<ElementRef<any>>(ElementRef);\n private ngZone = inject(NgZone);\n\n private _destroyed = new Subject<void>();\n private _enable = true;\n private _initialled = false;\n private _subscription: Subscription;\n\n private _elementScrolled: Observable<Event> = new Observable((observer: Observer<Event>) =>\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.elementRef.nativeElement, 'scroll', passiveEventListenerOptions)\n .pipe(takeUntil(this._destroyed))\n .subscribe(observer)\n )\n );\n\n @Input({ transform: coerceBooleanProperty })\n set thyEnable(value: boolean) {\n this._enable = value;\n if (this._initialled) {\n if (this._enable && this._subscription === null) {\n this._subscription = this._elementScrolled.subscribe(() => this.thyOnScrolled.emit(this.elementRef));\n } else {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n }\n }\n\n /**\n * @description\n *\n * Note: the `thyOnScrolled` emits outside of the Angular zone since the `scroll` listener\n * is installed within the `<root>` zone.\n *\n * Consumers need to re-enter the Angular zone theirselves when the change detection is needeed to be run:\n * ```ts\n * @Component({\n * template: '<div thyScroll (thyOnScrolled)=\"onScrolled()\"></div>'\n * })\n * class ThyScrollComponent {\n * onScrolled(): void {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * }\n * }\n * ```\n */\n @Output() thyOnScrolled: EventEmitter<ElementRef> = new EventEmitter<ElementRef>();\n\n ngOnInit() {\n if (this._enable) {\n this._subscription = this._elementScrolled.subscribe(() => this.thyOnScrolled.emit(this.elementRef));\n }\n this._initialled = true;\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n getElementRef(): ElementRef<HTMLElement> {\n return this.elementRef;\n }\n}\n","import { Directive, AfterContentInit, ContentChildren, QueryList, OnDestroy } from '@angular/core';\nimport { CdkDrag } from '@angular/cdk/drag-drop';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil, startWith } from 'rxjs/operators';\n\n/**\n * @private\n */\n@Directive({\n selector: '[thyDragDrop]'\n})\nexport class ThyDragDropDirective implements AfterContentInit, OnDestroy {\n @ContentChildren(CdkDrag, { descendants: true }) draggables: QueryList<CdkDrag>;\n\n private ngUnsubscribe$ = new Subject<void>();\n\n constructor() {}\n\n ngAfterContentInit() {\n if (this.draggables) {\n this.draggables.changes.pipe(startWith(this.draggables)).subscribe(() => {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n\n this.ngUnsubscribe$ = new Subject();\n merge(\n ...this.draggables.toArray().map(dragRef => {\n return dragRef.started;\n })\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n document.body.classList.add('thy-dragging-body');\n });\n\n merge(...this.draggables.toArray().map(dragRef => dragRef.released))\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n document.body.classList.remove('thy-dragging-body');\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { isTemplateRef } from 'ngx-tethys/util';\n\n/**\n * @name thyStringOrTemplateOutlet\n */\n@Directive({\n selector: '[thyStringOrTemplateOutlet]',\n exportAs: 'thyStringOrTemplateOutlet'\n})\nexport class ThyStringOrTemplateOutletDirective implements OnChanges {\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n\n private viewRef: EmbeddedViewRef<any>;\n\n private textNode: Text;\n\n @Input() thyStringOrTemplateOutletContext: any;\n\n @Input() thyStringOrTemplateOutlet: any | TemplateRef<any>;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['thyStringOrTemplateOutlet']) {\n this.updateView();\n } else if (this.viewRef && changes['thyStringOrTemplateOutletContext'] && this.thyStringOrTemplateOutletContext) {\n this.viewRef.context = this.thyStringOrTemplateOutletContext;\n }\n }\n\n private updateView() {\n this.clear();\n\n if (this.thyStringOrTemplateOutlet) {\n if (isTemplateRef(this.thyStringOrTemplateOutlet)) {\n this.viewRef = this.viewContainerRef.createEmbeddedView(\n this.thyStringOrTemplateOutlet,\n this.thyStringOrTemplateOutletContext\n );\n } else {\n this.textNode = this.renderer.createText(this.thyStringOrTemplateOutlet + '');\n const element = this.viewContainerRef.element.nativeElement as HTMLElement;\n this.renderer.insertBefore(element.parentNode, this.textNode, element);\n }\n } else {\n this.viewRef = null;\n }\n }\n\n private clear() {\n this.viewContainerRef.clear();\n if (this.textNode) {\n this.renderer.removeChild(this.textNode.parentNode, this.textNode);\n }\n }\n}\n","import {\n ComponentRef,\n Directive,\n Input,\n ChangeDetectorRef,\n EmbeddedViewRef,\n OnChanges,\n SimpleChanges,\n Type,\n ViewContainerRef,\n TemplateRef,\n KeyValueDiffer,\n KeyValueDiffers,\n inject\n} from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\n\nfunction hasInput(componentRef: ComponentRef<unknown>, inputKey: string) {\n return componentRef['_tNode'].inputs?.[inputKey];\n}\n\n/**\n * 视图 Outlet 组件,取代 NgComponentOutlet 和 NgTemplateOutlet\n * @name thyViewOutlet\n * @order 10\n */\n@Directive({\n selector: '[thyViewOutlet]'\n})\nexport class ThyViewOutletDirective implements OnChanges {\n private viewContainerRef = inject(ViewContainerRef);\n private keyValueDiffers = inject(KeyValueDiffers);\n\n private componentRef: ComponentRef<SafeAny> | undefined;\n\n private embeddedViewRef: EmbeddedViewRef<SafeAny> | undefined;\n\n /**\n * 组件或者模板 TemplateRef\n */\n @Input() thyViewOutlet: Type<SafeAny> | TemplateRef<SafeAny> | null = null;\n\n /**\n * 组件和模板上下文传递数据\n */\n @Input() thyViewOutletContext?: SafeAny;\n\n private keyValueDiffer: KeyValueDiffer<SafeAny, SafeAny>;\n\n ngOnChanges(changes: SimpleChanges) {\n const { viewContainerRef: viewContainerRef } = this;\n if (changes['thyViewOutlet']) {\n viewContainerRef.clear();\n this.componentRef = undefined;\n this.embeddedViewRef = undefined;\n\n if (this.thyViewOutlet) {\n if (this.thyViewOutlet instanceof TemplateRef) {\n this.embeddedViewRef = viewContainerRef.createEmbeddedView(this.thyViewOutlet, this.thyViewOutletContext);\n } else {\n this.componentRef = viewContainerRef.createComponent(this.thyViewOutlet, {\n index: viewContainerRef.length\n });\n }\n }\n }\n\n if (changes['thyViewOutletContext']) {\n let updatedKeys: string[] = [];\n if (changes['thyViewOutletContext'].isFirstChange()) {\n this.keyValueDiffer = this.keyValueDiffers.find(this.thyViewOutletContext).create();\n this.keyValueDiffer.diff(this.thyViewOutletContext);\n updatedKeys = Object.keys(this.thyViewOutletContext);\n } else {\n const diffChanges = this.keyValueDiffer.diff(this.thyViewOutletContext);\n diffChanges?.forEachChangedItem(item => {\n updatedKeys.push(item.key);\n });\n }\n if (this.componentRef) {\n this.updateContext(this.componentRef.instance, updatedKeys);\n this.componentRef.injector.get(ChangeDetectorRef).markForCheck();\n } else if (this.embeddedViewRef) {\n this.updateContext(this.embeddedViewRef.context, updatedKeys);\n this.embeddedViewRef.markForCheck();\n }\n }\n }\n\n private updateContext(context: SafeAny, updatedKeys: string[]) {\n updatedKeys.forEach(key => {\n // 兼容组件输入属性没有通过 @Input,设置了 @Input 采用 setInput,否则直接赋值,setInput 会触发 Angular 组件的 onChanges\n if (this.componentRef && hasInput(this.componentRef, key)) {\n this.componentRef.setInput(key, this.thyViewOutletContext[key]);\n } else {\n context[key] = this.thyViewOutletContext[key];\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyTranscludeDirective } from './ng-transclude.directive';\nimport { ThyAutofocusDirective } from './directives/thy-autofocus.directive';\nimport { ThyEnterDirective } from './directives/thy-enter.directive';\nimport { ThyCtrlEnterDirective } from './directives/thy-ctrl-enter.directive';\nimport { ThyShowDirective } from './directives/thy-show';\nimport { ThyStopPropagationDirective } from './directives/thy-stop-propagation.directive';\nimport { ThyContextMenuDirective } from './directives/thy-contextmenu.directive';\nimport { ThyScrollDirective } from './directives/thy-scroll.directive';\nimport { ThyDragDropDirective } from './directives/thy-drag-drop.directive';\nimport { ThyStringOrTemplateOutletDirective } from './directives/string-or-template-outlet.directive';\nimport { ThyViewOutletDirective } from './directives/view-outlet.directive';\n\n@NgModule({\n imports: [\n ThyViewOutletDirective,\n ThyTranscludeDirective,\n ThyAutofocusDirective,\n ThyEnterDirective,\n ThyCtrlEnterDirective,\n ThyShowDirective,\n ThyStopPropagationDirective,\n ThyContextMenuDirective,\n ThyScrollDirective,\n ThyDragDropDirective,\n ThyStringOrTemplateOutletDirective\n ],\n exports: [\n ThyTranscludeDirective,\n ThyAutofocusDirective,\n ThyEnterDirective,\n ThyCtrlEnterDirective,\n ThyShowDirective,\n ThyStopPropagationDirective,\n ThyContextMenuDirective,\n ThyScrollDirective,\n ThyDragDropDirective,\n ThyStringOrTemplateOutletDirective,\n ThyViewOutletDirective\n ],\n providers: []\n})\nexport class ThySharedModule {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { HostBinding, Input, ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { ThyTranslate, TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst noop = () => {};\n\n/**\n * @private\n */\n@Directive()\nexport class ThyFormCheckBaseComponent extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor {\n protected thyTranslate = inject(ThyTranslate);\n protected changeDetectorRef? = inject(ChangeDetectorRef);\n\n // The internal data model\n _innerValue: boolean = null;\n\n _disabled = false;\n\n private onTouchedCallback: () => void = noop;\n\n private onChangeCallback: (_: any) => void = noop;\n\n _labelText: string;\n\n @HostBinding('class.form-check') _isFormCheck = true;\n\n @HostBinding('class.form-check-inline') _isFormCheckInline = false;\n\n @HostBinding('class.form-check-checked') _isChecked = false;\n\n @HostBinding('class.form-check-inline-no-label-text') get _isNoText() {\n return this._isFormCheckInline && !this._labelText;\n }\n\n /**\n * 是否同一行展示\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyInline(value: boolean) {\n this._isFormCheckInline = value;\n }\n\n /**\n * Label 展示文本\n */\n @Input()\n set thyLabelText(value: string) {\n this._labelText = value;\n }\n\n /**\n * Label 文本多语言 key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n if (value) {\n this._labelText = this.thyTranslate.instant(value);\n } else {\n this._labelText = '';\n }\n }\n\n disabled = false;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.setDisabledState(this.disabled);\n }\n\n override get thyDisabled() {\n return this.disabled;\n }\n\n writeValue(obj: boolean): void {\n if (obj !== this._innerValue) {\n this._innerValue = obj;\n this._isChecked = !!this._innerValue;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.markForCheck();\n }\n\n updateValue(value: boolean): void {\n this._innerValue = value;\n this._isChecked = !!this._innerValue;\n this.onChangeCallback(value);\n this.markForCheck();\n }\n\n constructor() {\n super();\n }\n\n change() {\n this.updateValue(!this._innerValue);\n }\n\n markForCheck() {\n if (this.changeDetectorRef) {\n this.changeDetectorRef.markForCheck();\n }\n }\n}\n","import { ThyTagSize } from 'ngx-tethys/tag';\nimport { coerceBooleanProperty, isUndefinedOrNull } from 'ngx-tethys/util';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n numberAttribute,\n inject\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyTag } from 'ngx-tethys/tag';\nimport { SelectOptionBase } from '../../option/select-option-base';\n\nexport type SelectControlSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-select-control,[thySelectControl]',\n templateUrl: './select-control.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, NgClass, NgStyle, ThyTag, NgTemplateOutlet, ThyIcon, ThyGridModule],\n host: {\n '[class.select-control-borderless]': 'thyBorderless'\n }\n})\nexport class ThySelectControl implements OnInit {\n private renderer = inject(Renderer2);\n\n inputValue = '';\n\n isComposing = false;\n\n panelOpened = false;\n\n isMultiple = false;\n\n showSearch = false;\n\n disabled = false;\n\n size: SelectControlSize;\n\n selectedOptions: SelectOptionBase | SelectOptionBase[];\n\n searchInputControlClass: { [key: string]: boolean };\n\n tagSize: ThyTagSize;\n\n private hostRenderer = useHostRenderer();\n\n @Input({ transform: coerceBooleanProperty })\n get thyPanelOpened(): boolean {\n return this.panelOpened;\n }\n\n set thyPanelOpened(value: boolean) {\n this.panelOpened = value;\n if (this.panelOpened && this.thyShowSearch) {\n Promise.resolve(null).then(() => {\n this.inputElement.nativeElement.focus();\n });\n }\n if (!this.panelOpened && this.thyShowSearch) {\n new Promise(resolve => setTimeout(resolve, 100)).then(() => {\n this.inputValue = '';\n this.updateWidth();\n this.thyOnSearch.emit(this.inputValue);\n });\n }\n this.setSelectControlClass();\n }\n\n @Input({ transform: coerceBooleanProperty })\n get thyIsMultiple(): boolean {\n return this.isMultiple;\n }\n\n set thyIsMultiple(value: boolean) {\n this.isMultiple = value;\n this.setSelectControlClass();\n }\n\n @Input({ transform: coerceBooleanProperty })\n get thyShowSearch(): boolean {\n return this.showSearch;\n }\n\n set thyShowSearch(value: boolean) {\n this.showSearch = value;\n this.setSelectControlClass();\n }\n\n @Input()\n get thySelectedOptions(): SelectOptionBase | SelectOptionBase[] {\n return this.selectedOptions;\n }\n\n set thySelectedOptions(value: SelectOptionBase | SelectOptionBase[]) {\n let sameValue = false;\n const oldValue = this.selectedOptions;\n if (this.isMultiple) {\n if (oldValue instanceof Array && value instanceof Array && oldValue.length === value.length) {\n sameValue = value.every((option, index) => option.thyValue === oldValue[index].thyValue);\n }\n } else {\n if (oldValue && value) {\n sameValue = (oldValue as SelectOptionBase).thyValue === (value as SelectOptionBase).thyValue;\n }\n }\n this.selectedOptions = value;\n if (this.panelOpened && this.thyShowSearch) {\n if (!sameValue) {\n Promise.resolve(null).then(() => {\n this.inputValue = '';\n this.updateWidth();\n });\n }\n //等待组件渲染好再聚焦\n setTimeout(() => {\n if (this.panelOpened) {\n this.inputElement.nativeElement.focus();\n }\n }, 200);\n }\n }\n\n @Input({ transform: coerceBooleanProperty })\n get thyDisabled(): boolean {\n return this.disabled;\n }\n\n set thyDisabled(value: boolean) {\n this.disabled = value;\n this.setSelectControlClass();\n }\n\n @Input()\n customDisplayTemplate: TemplateRef<any>;\n\n @Input({ transform: coerceBooleanProperty })\n thyAllowClear = false;\n\n @Input()\n thyPlaceholder = '';\n\n @Input()\n get thySize(): SelectControlSize {\n return this.size;\n }\n\n set thySize(value: SelectControlSize) {\n this.size = value;\n this.setSelectControlClass();\n\n if (value === 'xs' || value === 'sm') {\n this.tagSize = 'sm';\n } else if (value === 'lg') {\n this.tagSize = 'lg';\n } else {\n this.tagSize = 'md';\n }\n }\n\n @Input({ transform: numberAttribute }) thyMaxTagCount = 0;\n\n @Input({ transform: coerceBooleanProperty }) thyBorderless = false;\n\n @Input() thyPreset: string = '';\n\n @Output()\n thyOnSearch = new EventEmitter<string>();\n\n @Output()\n public thyOnRemove = new EventEmitter<{ item: SelectOptionBase; $eventOrigin: Event }>();\n\n @Output()\n public thyOnClear = new EventEmitter<Event>();\n\n @Output()\n public thyOnBlur = new EventEmitter<Event>();\n\n @ViewChild('inputElement')\n inputElement: ElementRef;\n\n get selectedValueStyle(): { [key: string]: string } {\n let showSelectedValue = false;\n if (this.showSearch) {\n if (this.panelOpened) {\n showSelectedValue = !(this.isComposing || this.inputValue);\n } else {\n showSelectedValue = true;\n }\n } else {\n showSelectedValue = true;\n }\n return { display: showSelectedValue ? 'flex' : 'none' };\n }\n\n get placeholderStyle(): { [key: string]: string } {\n let placeholder = true;\n if (this.isSelectedValue) {\n placeholder = false;\n }\n if (!this.thyPlaceholder) {\n placeholder = false;\n }\n if (this.isComposing || this.inputValue) {\n placeholder = false;\n }\n return { display: placeholder ? 'block' : 'none' };\n }\n\n get selectedValue(): any {\n return this.thySelectedOptions;\n }\n\n get multipleSelectedValue(): any {\n return this.thySelectedOptions;\n }\n\n get maxSelectedTags() {\n if (this.thyMaxTagCount > 0 && this.thySelectedOptions instanceof Array && this.thySelectedOptions.length > this.thyMaxTagCount) {\n return this.thySelectedOptions.slice(0, this.thyMaxTagCount - 1);\n }\n return this.thySelectedOptions as SelectOptionBase[];\n }\n\n get showClearIcon(): boolean {\n return this.thyAllowClear && this.isSelectedValue;\n }\n\n get isSelectedValue(): boolean {\n return (\n (!this.isMultiple && !isUndefinedOrNull(this.thySelectedOptions)) ||\n (this.isMultiple && (<SelectOptionBase[]>this.thySelectedOptions).length > 0)\n );\n }\n\n ngOnInit() {\n this.setSelectControlClass();\n }\n\n setSelectControlClass() {\n const modeType = this.isMultiple ? 'multiple' : 'single';\n const selectControlClass = {\n [`form-control`]: true,\n [`form-control-${this.thySize}`]: !!this.thySize,\n [`form-control-custom`]: true,\n [`select-control`]: true,\n [`select-control-${modeType}`]: true,\n [`select-control-show-search`]: this.showSearch,\n [`panel-is-opened`]: this.panelOpened,\n [`disabled`]: this.disabled\n };\n this.hostRenderer.updateClassByMap(selectControlClass);\n this.searchInputControlClass = {\n [`form-control`]: true,\n [`form-control-${this.thySize}`]: !!this.thySize,\n [`search-input-field`]: true,\n [`hidden`]: !this.thyShowSearch\n };\n }\n\n setInputValue(value: string) {\n if (value !== this.inputValue) {\n this.inputValue = value;\n this.updateWidth();\n this.thyOnSearch.emit(this.inputValue);\n }\n }\n\n handleBackspace(event: Event) {\n if ((event as KeyboardEvent).isComposing) {\n return;\n }\n if (!this.inputValue?.length && this.selectedOptions instanceof Array) {\n if (this.selectedOptions.length > 0) {\n this.removeHandle(this.selectedOptions[this.selectedOptions.length - 1], event);\n }\n }\n }\n\n updateWidth() {\n if (this.isMultiple && this.thyShowSearch) {\n if (this.inputValue || this.isComposing) {\n this.renderer.setStyle(this.inputElement.nativeElement, 'width', `${this.inputElement.nativeElement.scrollWidth}px`);\n } else {\n this.renderer.removeStyle(this.inputElement.nativeElement, 'width');\n }\n }\n }\n\n removeHandle(item: SelectOptionBase, $event: Event) {\n this.thyOnRemove.emit({ item: item, $eventOrigin: $event });\n }\n\n clearHandle($event: Event) {\n this.thyOnClear.emit($event);\n }\n\n trackValue(_index: number, option: SelectOptionBase): any {\n return option.thyValue;\n }\n\n onBlur(event: Event) {\n this.thyOnBlur.emit(event);\n }\n}\n","<ng-template #inputTemplate>\n <input\n #inputElement\n [tabindex]=\"-1\"\n (compositionstart)=\"isComposing = true\"\n (compositionend)=\"isComposing = false\"\n autocomplete=\"something-new\"\n [ngClass]=\"searchInputControlClass\"\n (input)=\"updateWidth()\"\n [ngModel]=\"inputValue\"\n (ngModelChange)=\"setInputValue($event)\"\n (keydown.backspace)=\"handleBackspace($event)\"\n [disabled]=\"thyDisabled\"\n (blur)=\"onBlur($event)\" />\n</ng-template>\n\n<div class=\"select-control-rendered\">\n @if (!isSelectedValue) {\n <div class=\"text-placeholder text-truncate\" [ngStyle]=\"placeholderStyle\">\n {{ thyPlaceholder }}\n </div>\n }\n @if (isMultiple) {\n <div thyFlex thyWrap=\"wrap\" thyGap=\"4\" thyAlignItems=\"center\" class=\"w-100\">\n @if (thyPreset === 'tag') {\n @for (item of maxSelectedTags; track trackValue($index, item)) {\n <div thyFlexItem class=\"custom-choice-item text-truncate\">\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\">\n </ng-template>\n @if (!disabled) {\n <div class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n }\n </div>\n }\n } @else {\n @for (item of maxSelectedTags; track trackValue($index, item)) {\n <div\n thyFlexItem\n thyTag\n class=\"choice-item\"\n [ngClass]=\"{ disabled: disabled === true }\"\n [thySize]=\"tagSize\"\n >\n <div class=\"text-truncate h-100\">\n @if (!customDisplayTemplate) {\n {{ item.thyLabelText }}\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\"></ng-template>\n }\n </div>\n @if (!disabled) {\n <div class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n }\n </div>\n }\n }\n @if (thyMaxTagCount && multipleSelectedValue.length > thyMaxTagCount) {\n <div\n thyFlexItem\n class=\"choice-item max-tag-count-choice\"\n thyTag\n [thySize]=\"tagSize\"\n [ngClass]=\"{ disabled: disabled === true }\">\n <div class=\"text-truncate\">+{{ multipleSelectedValue.length - thyMaxTagCount + 1 }}...</div>\n </div>\n }\n <div thyFlexItem class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </div>\n } @else {\n @if (isSelectedValue) {\n <div class=\"selected-value text-truncate\" [ngStyle]=\"selectedValueStyle\">\n @if (!customDisplayTemplate) {\n <span class=\"text-truncate\">{{ selectedValue?.thyLabelText }}</span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: selectedValue.thyRawValue || selectedValue.thyValue || selectedValue\n }\"></ng-template>\n }\n </div>\n }\n <div class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n }\n</div>\n<span class=\"select-control-arrow\">\n <thy-icon thyIconName=\"angle-down\" class=\"font-size-base\"></thy-icon>\n</span>\n@if (showClearIcon) {\n <span class=\"select-control-clear remove-link\" (click)=\"clearHandle($event)\">\n <thy-icon class=\"remove-link-icon font-size-base\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n </span>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTagModule } from 'ngx-tethys/tag';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThySelectControl } from './select-control/select-control.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyIconModule, ThyTagModule, ThySelectControl],\n exports: [ThySelectControl]\n})\nexport class ThySelectCommonModule {}\n","import { ElementRef, InjectionToken } from '@angular/core';\nimport { ThyListLayout } from '../shared.type';\n\nexport interface IThyOptionParentComponent {\n isMultiple: boolean;\n}\n\nexport interface IThyOptionGroupComponent {\n hidden: boolean;\n}\n\nexport interface IThyOptionComponent {\n thyValue: any;\n disabled?: boolean;\n element: ElementRef<HTMLElement>;\n}\n\nexport interface IThyListOptionParentComponent {\n multiple?: boolean;\n layout?: ThyListLayout;\n // 选择,取消选择 option\n toggleOption(option: IThyOptionComponent, event?: Event): void;\n // 设置当前选项为激活状态,即 hover 状态\n setActiveOption(option: IThyOptionComponent, event?: Event): void;\n // 滚动到当前的选项\n scrollIntoView(option: IThyOptionComponent): void;\n isSelected(option: IThyOptionComponent): boolean;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const THY_OPTION_PARENT_COMPONENT = new InjectionToken<IThyOptionParentComponent>('THY_OPTION_PARENT_COMPONENT');\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const THY_LIST_OPTION_PARENT_COMPONENT = new InjectionToken<IThyListOptionParentComponent>('THY_LIST_OPTION_PARENT_COMPONENT');\n","import { Component, Input, HostBinding, ElementRef, ChangeDetectorRef, HostListener, inject } from '@angular/core';\nimport { Highlightable } from '@angular/cdk/a11y';\nimport { IThyOptionComponent, THY_LIST_OPTION_PARENT_COMPONENT } from '../option.token';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nlet _uniqueIdCounter = 0;\n\n/**\n * @private\n * @order 30\n */\n@Component({\n selector: 'thy-list-option,[thy-list-option]',\n templateUrl: './list-option.component.html',\n imports: [ThyIcon]\n})\nexport class ThyListOption implements IThyOptionComponent, Highlightable {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n private changeDetector = inject(ChangeDetectorRef);\n parentSelectionList = inject(THY_LIST_OPTION_PARENT_COMPONENT, { optional: true })!;\n\n @HostBinding(`class.thy-list-option`)\n get _isListOption() {\n return this.parentSelectionList.layout === 'list';\n }\n\n @HostBinding(`class.thy-grid-option`)\n get _parentLayout() {\n return this.parentSelectionList.layout === 'grid';\n }\n\n @HostBinding(`attr.role`) _role = 'option';\n\n @HostBinding(`attr.tabindex`) _tabIndex = -1;\n\n @Input() id = `thy-list-option-${_uniqueIdCounter++}`;\n\n @Input() thyValue: any;\n\n @Input({ transform: coerceBooleanProperty })\n set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n @HostBinding(`class.disabled`) disabled?: boolean;\n\n /** Whether the option is selected. */\n @HostBinding(`class.active`)\n get selected() {\n return this.parentSelectionList.isSelected(this);\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.parentSelectionList.multiple || !this.parentSelectionList.isSelected(this)) {\n this.parentSelectionList.toggleOption(this, event);\n this.parentSelectionList.setActiveOption(this);\n }\n }\n\n // @HostListener('focus', ['$event'])\n // onFocus(event: Event) {\n // this.parentSelectionList.setFocusedOption(this, event);\n // }\n\n /** Allows for programmatic focusing of the option. */\n // focus(origin?: FocusOrigin): void {\n // this.element.nativeElement.focus();\n // }\n\n setActiveStyles(): void {\n this.element.nativeElement.classList.add('hover');\n this.parentSelectionList.scrollIntoView(this);\n }\n\n setInactiveStyles(): void {\n this.element.nativeElement.classList.remove('hover');\n }\n\n /**\n * Returns the list item's text label. Implemented as a part of the FocusKeyManager.\n * @docs-private\n */\n getLabel() {\n return '';\n }\n}\n","<ng-content></ng-content>\n@if (parentSelectionList.multiple && parentSelectionList.layout === 'list') {\n <span class=\"checked-icon\">\n <thy-icon thyIconName=\"check\"></thy-icon>\n </span>\n}\n@if (parentSelectionList.layout === 'grid') {\n <span class=\"checked-icon\">\n <thy-icon thyIconName=\"check-circle-fill\"></thy-icon>\n </span>\n}\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { ThyCanDisable, mixinDisabled, ThyCanDisableCtor, MixinBase } from 'ngx-tethys/core';\n\nconst _MixinBase: ThyCanDisableCtor & typeof MixinBase = mixinDisabled(MixinBase);\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-list-option-group,[thy-list-option-group]',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyOptionGroup extends _MixinBase implements ThyCanDisable {\n set thyDisabled(value: any) {\n this.thyDisabled = value;\n }\n}\n","export abstract class SelectOptionBase {\n thyLabelText: string;\n thyRawValue: any;\n thyValue: any;\n}\n","import {\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ChangeDetectionStrategy,\n HostBinding,\n HostListener,\n ElementRef,\n ChangeDetectorRef,\n EventEmitter,\n OnDestroy,\n Output,\n inject\n} from '@angular/core';\nimport { Highlightable } from '@angular/cdk/a11y';\nimport { SelectOptionBase } from './select-option-base';\nimport { ENTER, SPACE, coerceBooleanProperty, hasModifierKey } from 'ngx-tethys/util';\nimport { THY_OPTION_PARENT_COMPONENT } from './option.token';\n\nimport { ThyIcon } from 'ngx-tethys/icon';\n\nexport class ThyOptionSelectionChangeEvent {\n constructor(\n public option: ThyOption,\n public isUserInput = false\n ) {}\n}\n\nexport class ThyOptionVisibleChangeEvent {\n option: ThyOption;\n}\n\n/**\n * @private\n * @order 20\n */\n@Component({\n selector: 'thy-option',\n templateUrl: './option.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyIcon]\n})\nexport class ThyOption extends SelectOptionBase implements OnDestroy, Highlightable {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n parent = inject(THY_OPTION_PARENT_COMPONENT, { optional: true })!;\n private cdr = inject(ChangeDetectorRef);\n\n private _selected = false;\n private _hidden = false;\n private _disabled = false;\n\n @Input() thyValue: any;\n\n @Input() thyRawValue: any;\n\n @Input() thyLabelText: string;\n\n @Input() thyShowOptionCustom: boolean;\n\n @Input() thySearchKey: string;\n\n @HostBinding('class.thy-option-item') _isOptionItem = true;\n\n @ViewChild(TemplateRef, { static: true }) template: TemplateRef<any>;\n\n @Input({ transform: coerceBooleanProperty })\n @HostBinding(`class.disabled`)\n set thyDisabled(value: boolean) {\n this._disabled = value;\n }\n\n get thyDisabled(): boolean {\n return this._disabled;\n }\n\n get disabled(): boolean {\n return this.hidden || this._disabled;\n }\n\n @HostBinding('class.hidden')\n get hidden(): boolean {\n return this._hidden;\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n @HostBinding(`class.active`)\n get selected(): boolean {\n return this._selected;\n }\n\n @Output() readonly selectionChange: EventEmitter<ThyOptionSelectionChangeEvent> = new EventEmitter();\n @Output() readonly visibleChange: EventEmitter<ThyOptionVisibleChangeEvent> = new EventEmitter();\n\n constructor() {\n super();\n }\n\n getHostElement(): HTMLElement {\n return this.element.nativeElement;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.selectViaInteraction();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n selectViaInteraction(): void {\n if (!this.disabled) {\n this._selected = this.parent.isMultiple ? !this._selected : true;\n this.cdr.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n }\n\n select(event?: Event): void {\n if (!this.disabled) {\n if (!this._selected) {\n this._selected = true;\n this.emitSelectionChangeEvent();\n this.cdr.markForCheck();\n }\n }\n }\n\n deselect(): void {\n if (this._selected || this.disabled) {\n this._selected = false;\n this.emitSelectionChangeEvent();\n this.cdr.markForCheck();\n }\n }\n\n hideOption() {\n if (!this._hidden) {\n this._hidden = true;\n this.visibleChange.emit({ option: this });\n this.cdr.markForCheck();\n }\n }\n\n showOption() {\n if (this._hidden) {\n this._hidden = false;\n this.visibleChange.emit({ option: this });\n this.cdr.markForCheck();\n }\n }\n\n matchSearchText(searchText: string): boolean {\n if (this.thySearchKey) {\n if (this.thySearchKey.toLowerCase().indexOf(searchText.toLowerCase()) >= 0) {\n return true;\n } else {\n return false;\n }\n } else {\n if (this.thyLabelText.toLowerCase().indexOf(searchText.toLowerCase()) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n setActiveStyles(): void {\n this.getHostElement().classList.add('hover');\n this.cdr.markForCheck();\n }\n\n setInactiveStyles(): void {\n this.getHostElement().classList.remove('hover');\n this.cdr.markForCheck();\n }\n\n getLabel(): string {\n return '';\n }\n\n private emitSelectionChangeEvent(isUserInput = false): void {\n this.selectionChange.emit(new ThyOptionSelectionChangeEvent(this, isUserInput));\n }\n\n ngOnDestroy() {}\n}\n","@if (thyShowOptionCustom) {\n <ng-content></ng-content>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n} @else {\n <span class=\"text-truncate\">{{ thyLabelText }}</span>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n}\n","import {\n Component,\n HostBinding,\n Input,\n ContentChildren,\n QueryList,\n NgZone,\n OnDestroy,\n AfterContentInit,\n ChangeDetectorRef,\n inject\n} from '@angular/core';\nimport { Observable, defer, Subject, merge } from 'rxjs';\nimport { ThyOptionVisibleChangeEvent, ThyOption } from '../option.component';\nimport { take, switchMap, startWith, takeUntil, debounceTime, map } from 'rxjs/operators';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-option-group',\n templateUrl: './option-group.component.html'\n})\nexport class ThySelectOptionGroup implements OnDestroy, AfterContentInit {\n private _ngZone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n _hidden = false;\n @Input({ transform: coerceBooleanProperty })\n @HostBinding(`class.disabled`)\n thyDisabled: boolean;\n\n @HostBinding('class.thy-option-item-group') _isOptionGroup = true;\n\n @HostBinding('class.thy-select-option-group-hidden')\n get hidden(): boolean {\n return this._hidden;\n }\n\n @Input() thyGroupLabel: string;\n\n @ContentChildren(ThyOption) options: QueryList<ThyOption>;\n\n _destroy$: Subject<void> = new Subject<void>();\n\n optionVisibleChanges: Observable<ThyOptionVisibleChangeEvent> = defer(() => {\n if (this.options) {\n return merge(...this.options.map(option => option.visibleChange));\n }\n return this._ngZone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.optionVisibleChanges)\n );\n }) as Observable<ThyOptionVisibleChangeEvent>;\n\n ngAfterContentInit() {\n this.options.changes.pipe(startWith(null), takeUntil(this._destroy$)).subscribe(() => {\n this._resetOptions();\n });\n }\n\n _resetOptions() {\n const changedOrDestroyed$ = merge(this.options.changes, this._destroy$);\n merge(...this.options.map(option => option.visibleChange))\n .pipe(\n takeUntil(changedOrDestroyed$),\n debounceTime(10),\n map((event: ThyOptionVisibleChangeEvent) => {\n const hasOption = this.options.find(option => {\n if (!option.hidden) {\n return true;\n }\n });\n if (hasOption) {\n return false;\n } else {\n return true;\n }\n })\n )\n .subscribe((data: boolean) => {\n this._hidden = data;\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<span class=\"group-name text-truncate\">{{ thyGroupLabel }}</span>\n<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'thy-options-container',\n template: `\n <ng-template #options>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyOptionsContainer implements OnInit {\n @ViewChild('options') optionsTemplate: TemplateRef<any>;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ThyListOption } from './list-option/list-option.component';\nimport { ThyOptionGroup } from './option-group.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyOption } from './option.component';\nimport { ThySelectOptionGroup } from './group/option-group.component';\nimport { ThyOptionsContainer } from './options-container.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyListOption, ThyOptionGroup, ThyOption, ThySelectOptionGroup, ThyOptionsContainer],\n exports: [ThyListOption, ThyOptionGroup, ThyOption, ThySelectOptionGroup, ThyOptionsContainer]\n})\nexport class ThyOptionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-shared.mjs","sources":["../../../src/shared/ng-transclude.directive.ts","../../../src/shared/directives/thy-autofocus.directive.ts","../../../src/shared/directives/thy-enter.directive.ts","../../../src/shared/directives/thy-ctrl-enter.directive.ts","../../../src/shared/directives/thy-show.ts","../../../src/shared/directives/thy-stop-propagation.directive.ts","../../../src/shared/directives/thy-contextmenu.directive.ts","../../../src/shared/directives/thy-scroll.directive.ts","../../../src/shared/directives/thy-drag-drop.directive.ts","../../../src/shared/directives/string-or-template-outlet.directive.ts","../../../src/shared/directives/view-outlet.directive.ts","../../../src/shared/shared.module.ts","../../../src/shared/base-form-check.component.ts","../../../src/shared/select/select-control/select-control.component.ts","../../../src/shared/select/select-control/select-control.component.html","../../../src/shared/select/module.ts","../../../src/shared/option/option.token.ts","../../../src/shared/option/list-option/list-option.component.ts","../../../src/shared/option/list-option/list-option.component.html","../../../src/shared/option/option-group.component.ts","../../../src/shared/option/select-option-base.ts","../../../src/shared/option/option.component.ts","../../../src/shared/option/option.component.html","../../../src/shared/option/group/option-group.component.ts","../../../src/shared/option/group/option-group.component.html","../../../src/shared/option/options-container.component.ts","../../../src/shared/option/module.ts","../../../src/shared/ngx-tethys-shared.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, ViewContainerRef, inject } from '@angular/core';\n\n/**\n * @private\n */\n@Directive({\n selector: '[thyTransclude]'\n})\nexport class ThyTranscludeDirective {\n viewRef: ViewContainerRef;\n\n protected _viewRef: ViewContainerRef;\n protected _ngTransclude: TemplateRef<any>;\n\n @Input()\n set thyTransclude(templateRef: TemplateRef<any>) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n\n get thyTransclude(): TemplateRef<any> {\n return this._ngTransclude;\n }\n\n constructor() {\n const viewRef = inject(ViewContainerRef);\n\n this.viewRef = viewRef;\n }\n}\n","import { Directive, Input, ElementRef, NgZone, inject } from '@angular/core';\nimport { reqAnimFrame } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n/**\n * 自动聚焦指令\n * @name input[thyAutofocus],textarea[thyAutofocus]\n */\n@Directive({\n selector: 'input[thyAutofocus],textarea[thyAutofocus]'\n})\nexport class ThyAutofocusDirective {\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n\n // 自动选择,用于只读的 input 输入框,方便复制粘贴\n private _autoSelect = false;\n\n /**\n * 是否自动聚焦\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyAutofocus(value: boolean) {\n if (value) {\n // Note: this is being run outside of the Angular zone because `element.focus()` doesn't require\n // running change detection.\n this.ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n reqAnimFrame(() => {\n this.elementRef.nativeElement.focus();\n if (this._autoSelect && this.elementRef.nativeElement.select) {\n this.elementRef.nativeElement.select();\n }\n })\n );\n }\n }\n\n /**\n * 是否自动选择\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyAutoSelect(value: boolean) {\n this._autoSelect = value;\n }\n}\n","import { Directive, Output, EventEmitter, OnInit, NgZone, ElementRef, Renderer2, OnDestroy, inject } from '@angular/core';\nimport { keycodes } from 'ngx-tethys/util';\n\n/**\n * 与 (keydown.enter) 区别是支持组合键,当按 Ctrl + Enter 或者 Command + Enter 也会触发\n * @name thyEnter\n */\n@Directive({\n selector: '[thyEnter]'\n})\nexport class ThyEnterDirective implements OnInit, OnDestroy {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n @Output() thyEnter = new EventEmitter();\n\n onKeydown = (event: KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n if (keyCode === keycodes.ENTER) {\n this.ngZone.run(() => {\n this.thyEnter.emit(event);\n });\n }\n };\n\n private removeKeydownListenerFn: VoidFunction;\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this.removeKeydownListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'keydown', this.onKeydown);\n });\n }\n\n ngOnDestroy(): void {\n this.removeKeydownListenerFn();\n }\n}\n","import { Directive, Output, ElementRef, EventEmitter, OnInit, NgZone, Renderer2, OnDestroy, inject } from '@angular/core';\nimport { keycodes } from 'ngx-tethys/util';\n\n/**\n * @name thyCtrlEnter\n */\n@Directive({\n selector: '[thyCtrlEnter]'\n})\nexport class ThyCtrlEnterDirective implements OnInit, OnDestroy {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n @Output() thyCtrlEnter = new EventEmitter();\n\n private removeKeydownListenerFn: VoidFunction;\n\n onKeydown = (event: KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n if ((event.ctrlKey || event.metaKey) && keyCode === keycodes.ENTER) {\n event.preventDefault();\n this.ngZone.run(() => {\n this.thyCtrlEnter.emit(event);\n });\n }\n };\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n this.removeKeydownListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'keydown', this.onKeydown);\n });\n }\n\n ngOnDestroy(): void {\n this.removeKeydownListenerFn();\n }\n}\n","import { Directive, Renderer2, Input, ElementRef, Output, EventEmitter, OnDestroy, NgZone, inject } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thyShow\n */\n@Directive({\n selector: '[thyShow]'\n})\nexport class ThyShowDirective implements OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private ngZone = inject(NgZone);\n\n @Output() thyShowChange = new EventEmitter();\n\n private hostRenderer = useHostRenderer();\n\n private unListenEvent: () => void;\n\n private unListenDocument() {\n if (this.unListenEvent) {\n this.unListenEvent();\n this.unListenEvent = null;\n }\n }\n\n @Input({ transform: coerceBooleanProperty })\n set thyShow(condition: boolean) {\n if (condition) {\n this.hostRenderer.setStyle('display', 'block');\n this.ngZone.runOutsideAngular(() =>\n setTimeout(() => {\n this.unListenEvent = this.renderer.listen('document', 'click', event => {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n if (this.thyShowChange.observers.length) {\n this.ngZone.run(() => this.thyShowChange.emit(false));\n }\n this.unListenDocument();\n }\n });\n })\n );\n } else {\n this.hostRenderer.setStyle('display', 'none');\n this.unListenDocument();\n }\n }\n\n ngOnDestroy() {\n this.unListenDocument();\n }\n}\n","import { Directive, ElementRef, Input, NgZone, OnDestroy, inject } from '@angular/core';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { startWith, switchMap, takeUntil } from 'rxjs/operators';\n\n/**\n * 阻止事件冒泡\n * @name thyStopPropagation\n */\n@Directive({\n selector: '[thyStopPropagation]'\n})\nexport class ThyStopPropagationDirective implements OnDestroy {\n private _eventName = 'click';\n\n private _shouldStopPropagation = true;\n\n @Input()\n set thyStopPropagation(value: string | boolean) {\n if (value === false || value === 'false') {\n this._shouldStopPropagation = false;\n } else {\n this._shouldStopPropagation = true;\n if (!value || value === true || value === 'true') {\n this._eventName = 'click';\n } else {\n this._eventName = value as string;\n }\n }\n\n this._changes$.next();\n }\n\n private _changes$ = new Subject<void>();\n private _destroy$ = new Subject<void>();\n\n constructor() {\n const _host = inject<ElementRef<HTMLElement>>(ElementRef);\n const _ngZone = inject(NgZone);\n\n this._changes$\n .pipe(\n // Note: we start the stream immediately since the `thyStopPropagation` setter may never be reached.\n startWith<null, null>(null),\n switchMap(\n () =>\n new Observable<Event>(subscriber =>\n _ngZone.runOutsideAngular(() => fromEvent(_host.nativeElement, this._eventName).subscribe(subscriber))\n )\n ),\n takeUntil(this._destroy$)\n )\n .subscribe(event => {\n if (this._shouldStopPropagation) {\n event.stopPropagation();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n }\n}\n","import { Directive, Output, ElementRef, EventEmitter, OnInit, NgZone, Renderer2, HostListener, OnDestroy, inject } from '@angular/core';\n\n/**\n * @name thyContextMenu\n */\n@Directive({\n selector: '[thyContextMenu]'\n})\nexport class ThyContextMenuDirective implements OnInit, OnDestroy {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n @Output() thyContextMenu = new EventEmitter();\n\n private removeContextListenerFn: VoidFunction;\n\n rightClick = (event: Event) => {\n event.preventDefault();\n this.ngZone.run(() => {\n this.thyContextMenu.emit(event);\n });\n };\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n this.removeContextListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'contextmenu', this.rightClick);\n });\n }\n\n ngOnDestroy(): void {\n this.removeContextListenerFn();\n }\n}\n","import { Directive, ElementRef, OnInit, NgZone, OnDestroy, Output, EventEmitter, Input, inject } from '@angular/core';\nimport { Subject, Observable, Observer, fromEvent, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * @name thyScroll\n */\n@Directive({\n selector: '[thyScroll]'\n})\nexport class ThyScrollDirective implements OnInit, OnDestroy {\n private elementRef = inject<ElementRef<any>>(ElementRef);\n private ngZone = inject(NgZone);\n\n private _destroyed = new Subject<void>();\n private _enable = true;\n private _initialled = false;\n private _subscription: Subscription;\n\n private _elementScrolled: Observable<Event> = new Observable((observer: Observer<Event>) =>\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.elementRef.nativeElement, 'scroll', passiveEventListenerOptions)\n .pipe(takeUntil(this._destroyed))\n .subscribe(observer)\n )\n );\n\n @Input({ transform: coerceBooleanProperty })\n set thyEnable(value: boolean) {\n this._enable = value;\n if (this._initialled) {\n if (this._enable && this._subscription === null) {\n this._subscription = this._elementScrolled.subscribe(() => this.thyOnScrolled.emit(this.elementRef));\n } else {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n }\n }\n\n /**\n * @description\n *\n * Note: the `thyOnScrolled` emits outside of the Angular zone since the `scroll` listener\n * is installed within the `<root>` zone.\n *\n * Consumers need to re-enter the Angular zone theirselves when the change detection is needeed to be run:\n * ```ts\n * @Component({\n * template: '<div thyScroll (thyOnScrolled)=\"onScrolled()\"></div>'\n * })\n * class ThyScrollComponent {\n * onScrolled(): void {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * }\n * }\n * ```\n */\n @Output() thyOnScrolled: EventEmitter<ElementRef> = new EventEmitter<ElementRef>();\n\n ngOnInit() {\n if (this._enable) {\n this._subscription = this._elementScrolled.subscribe(() => this.thyOnScrolled.emit(this.elementRef));\n }\n this._initialled = true;\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n getElementRef(): ElementRef<HTMLElement> {\n return this.elementRef;\n }\n}\n","import { Directive, AfterContentInit, ContentChildren, QueryList, OnDestroy } from '@angular/core';\nimport { CdkDrag } from '@angular/cdk/drag-drop';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil, startWith } from 'rxjs/operators';\n\n/**\n * @private\n */\n@Directive({\n selector: '[thyDragDrop]'\n})\nexport class ThyDragDropDirective implements AfterContentInit, OnDestroy {\n @ContentChildren(CdkDrag, { descendants: true }) draggables: QueryList<CdkDrag>;\n\n private ngUnsubscribe$ = new Subject<void>();\n\n constructor() {}\n\n ngAfterContentInit() {\n if (this.draggables) {\n this.draggables.changes.pipe(startWith(this.draggables)).subscribe(() => {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n\n this.ngUnsubscribe$ = new Subject();\n merge(\n ...this.draggables.toArray().map(dragRef => {\n return dragRef.started;\n })\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n document.body.classList.add('thy-dragging-body');\n });\n\n merge(...this.draggables.toArray().map(dragRef => dragRef.released))\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n document.body.classList.remove('thy-dragging-body');\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { isTemplateRef } from 'ngx-tethys/util';\n\n/**\n * @name thyStringOrTemplateOutlet\n */\n@Directive({\n selector: '[thyStringOrTemplateOutlet]',\n exportAs: 'thyStringOrTemplateOutlet'\n})\nexport class ThyStringOrTemplateOutletDirective implements OnChanges {\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n\n private viewRef: EmbeddedViewRef<any>;\n\n private textNode: Text;\n\n @Input() thyStringOrTemplateOutletContext: any;\n\n @Input() thyStringOrTemplateOutlet: any | TemplateRef<any>;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['thyStringOrTemplateOutlet']) {\n this.updateView();\n } else if (this.viewRef && changes['thyStringOrTemplateOutletContext'] && this.thyStringOrTemplateOutletContext) {\n this.viewRef.context = this.thyStringOrTemplateOutletContext;\n }\n }\n\n private updateView() {\n this.clear();\n\n if (this.thyStringOrTemplateOutlet) {\n if (isTemplateRef(this.thyStringOrTemplateOutlet)) {\n this.viewRef = this.viewContainerRef.createEmbeddedView(\n this.thyStringOrTemplateOutlet,\n this.thyStringOrTemplateOutletContext\n );\n } else {\n this.textNode = this.renderer.createText(this.thyStringOrTemplateOutlet + '');\n const element = this.viewContainerRef.element.nativeElement as HTMLElement;\n this.renderer.insertBefore(element.parentNode, this.textNode, element);\n }\n } else {\n this.viewRef = null;\n }\n }\n\n private clear() {\n this.viewContainerRef.clear();\n if (this.textNode) {\n this.renderer.removeChild(this.textNode.parentNode, this.textNode);\n }\n }\n}\n","import {\n ComponentRef,\n Directive,\n Input,\n ChangeDetectorRef,\n EmbeddedViewRef,\n OnChanges,\n SimpleChanges,\n Type,\n ViewContainerRef,\n TemplateRef,\n KeyValueDiffer,\n KeyValueDiffers,\n inject\n} from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\n\nfunction hasInput(componentRef: ComponentRef<unknown>, inputKey: string) {\n return componentRef['_tNode'].inputs?.[inputKey];\n}\n\n/**\n * 视图 Outlet 组件,取代 NgComponentOutlet 和 NgTemplateOutlet\n * @name thyViewOutlet\n * @order 10\n */\n@Directive({\n selector: '[thyViewOutlet]'\n})\nexport class ThyViewOutletDirective implements OnChanges {\n private viewContainerRef = inject(ViewContainerRef);\n private keyValueDiffers = inject(KeyValueDiffers);\n\n private componentRef: ComponentRef<SafeAny> | undefined;\n\n private embeddedViewRef: EmbeddedViewRef<SafeAny> | undefined;\n\n /**\n * 组件或者模板 TemplateRef\n */\n @Input() thyViewOutlet: Type<SafeAny> | TemplateRef<SafeAny> | null = null;\n\n /**\n * 组件和模板上下文传递数据\n */\n @Input() thyViewOutletContext?: SafeAny;\n\n private keyValueDiffer: KeyValueDiffer<SafeAny, SafeAny>;\n\n ngOnChanges(changes: SimpleChanges) {\n const { viewContainerRef: viewContainerRef } = this;\n if (changes['thyViewOutlet']) {\n viewContainerRef.clear();\n this.componentRef = undefined;\n this.embeddedViewRef = undefined;\n\n if (this.thyViewOutlet) {\n if (this.thyViewOutlet instanceof TemplateRef) {\n this.embeddedViewRef = viewContainerRef.createEmbeddedView(this.thyViewOutlet, this.thyViewOutletContext);\n } else {\n this.componentRef = viewContainerRef.createComponent(this.thyViewOutlet, {\n index: viewContainerRef.length\n });\n }\n }\n }\n\n if (changes['thyViewOutletContext']) {\n let updatedKeys: string[] = [];\n if (changes['thyViewOutletContext'].isFirstChange()) {\n this.keyValueDiffer = this.keyValueDiffers.find(this.thyViewOutletContext).create();\n this.keyValueDiffer.diff(this.thyViewOutletContext);\n updatedKeys = Object.keys(this.thyViewOutletContext);\n } else {\n const diffChanges = this.keyValueDiffer.diff(this.thyViewOutletContext);\n diffChanges?.forEachChangedItem(item => {\n updatedKeys.push(item.key);\n });\n }\n if (this.componentRef) {\n this.updateContext(this.componentRef.instance, updatedKeys);\n this.componentRef.injector.get(ChangeDetectorRef).markForCheck();\n } else if (this.embeddedViewRef) {\n this.updateContext(this.embeddedViewRef.context, updatedKeys);\n this.embeddedViewRef.markForCheck();\n }\n }\n }\n\n private updateContext(context: SafeAny, updatedKeys: string[]) {\n updatedKeys.forEach(key => {\n // 兼容组件输入属性没有通过 @Input,设置了 @Input 采用 setInput,否则直接赋值,setInput 会触发 Angular 组件的 onChanges\n if (this.componentRef && hasInput(this.componentRef, key)) {\n this.componentRef.setInput(key, this.thyViewOutletContext[key]);\n } else {\n context[key] = this.thyViewOutletContext[key];\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyTranscludeDirective } from './ng-transclude.directive';\nimport { ThyAutofocusDirective } from './directives/thy-autofocus.directive';\nimport { ThyEnterDirective } from './directives/thy-enter.directive';\nimport { ThyCtrlEnterDirective } from './directives/thy-ctrl-enter.directive';\nimport { ThyShowDirective } from './directives/thy-show';\nimport { ThyStopPropagationDirective } from './directives/thy-stop-propagation.directive';\nimport { ThyContextMenuDirective } from './directives/thy-contextmenu.directive';\nimport { ThyScrollDirective } from './directives/thy-scroll.directive';\nimport { ThyDragDropDirective } from './directives/thy-drag-drop.directive';\nimport { ThyStringOrTemplateOutletDirective } from './directives/string-or-template-outlet.directive';\nimport { ThyViewOutletDirective } from './directives/view-outlet.directive';\n\n@NgModule({\n imports: [\n ThyViewOutletDirective,\n ThyTranscludeDirective,\n ThyAutofocusDirective,\n ThyEnterDirective,\n ThyCtrlEnterDirective,\n ThyShowDirective,\n ThyStopPropagationDirective,\n ThyContextMenuDirective,\n ThyScrollDirective,\n ThyDragDropDirective,\n ThyStringOrTemplateOutletDirective\n ],\n exports: [\n ThyTranscludeDirective,\n ThyAutofocusDirective,\n ThyEnterDirective,\n ThyCtrlEnterDirective,\n ThyShowDirective,\n ThyStopPropagationDirective,\n ThyContextMenuDirective,\n ThyScrollDirective,\n ThyDragDropDirective,\n ThyStringOrTemplateOutletDirective,\n ThyViewOutletDirective\n ],\n providers: []\n})\nexport class ThySharedModule {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { HostBinding, Input, ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { ThyTranslate, TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst noop = () => {};\n\n/**\n * @private\n */\n@Directive()\nexport class ThyFormCheckBaseComponent extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor {\n protected thyTranslate = inject(ThyTranslate);\n protected changeDetectorRef? = inject(ChangeDetectorRef);\n\n // The internal data model\n _innerValue: boolean = null;\n\n _disabled = false;\n\n private onTouchedCallback: () => void = noop;\n\n private onChangeCallback: (_: any) => void = noop;\n\n _labelText: string;\n\n @HostBinding('class.form-check') _isFormCheck = true;\n\n @HostBinding('class.form-check-inline') _isFormCheckInline = false;\n\n @HostBinding('class.form-check-checked') _isChecked = false;\n\n @HostBinding('class.form-check-inline-no-label-text') get _isNoText() {\n return this._isFormCheckInline && !this._labelText;\n }\n\n /**\n * 是否同一行展示\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyInline(value: boolean) {\n this._isFormCheckInline = value;\n }\n\n /**\n * Label 展示文本\n */\n @Input()\n set thyLabelText(value: string) {\n this._labelText = value;\n }\n\n /**\n * Label 文本多语言 key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n if (value) {\n this._labelText = this.thyTranslate.instant(value);\n } else {\n this._labelText = '';\n }\n }\n\n disabled = false;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.setDisabledState(this.disabled);\n }\n\n override get thyDisabled() {\n return this.disabled;\n }\n\n writeValue(obj: boolean): void {\n if (obj !== this._innerValue) {\n this._innerValue = obj;\n this._isChecked = !!this._innerValue;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.markForCheck();\n }\n\n updateValue(value: boolean): void {\n this._innerValue = value;\n this._isChecked = !!this._innerValue;\n this.onChangeCallback(value);\n this.markForCheck();\n }\n\n constructor() {\n super();\n }\n\n change() {\n this.updateValue(!this._innerValue);\n }\n\n markForCheck() {\n if (this.changeDetectorRef) {\n this.changeDetectorRef.markForCheck();\n }\n }\n}\n","import { ThyTagSize } from 'ngx-tethys/tag';\nimport { coerceBooleanProperty, isUndefinedOrNull } from 'ngx-tethys/util';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n numberAttribute,\n inject\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyTag } from 'ngx-tethys/tag';\nimport { SelectOptionBase } from '../../option/select-option-base';\n\nexport type SelectControlSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-select-control,[thySelectControl]',\n templateUrl: './select-control.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, NgClass, NgStyle, ThyTag, NgTemplateOutlet, ThyIcon, ThyGridModule],\n host: {\n '[class.select-control-borderless]': 'thyBorderless'\n }\n})\nexport class ThySelectControl implements OnInit {\n private renderer = inject(Renderer2);\n\n inputValue = '';\n\n isComposing = false;\n\n panelOpened = false;\n\n isMultiple = false;\n\n showSearch = false;\n\n disabled = false;\n\n size: SelectControlSize;\n\n selectedOptions: SelectOptionBase | SelectOptionBase[];\n\n searchInputControlClass: { [key: string]: boolean };\n\n tagSize: ThyTagSize;\n\n private hostRenderer = useHostRenderer();\n\n @Input({ transform: coerceBooleanProperty })\n get thyPanelOpened(): boolean {\n return this.panelOpened;\n }\n\n set thyPanelOpened(value: boolean) {\n this.panelOpened = value;\n if (this.panelOpened && this.thyShowSearch) {\n Promise.resolve(null).then(() => {\n this.inputElement.nativeElement.focus();\n });\n }\n if (!this.panelOpened && this.thyShowSearch) {\n new Promise(resolve => setTimeout(resolve, 100)).then(() => {\n this.inputValue = '';\n this.updateWidth();\n this.thyOnSearch.emit(this.inputValue);\n });\n }\n this.setSelectControlClass();\n }\n\n @Input({ transform: coerceBooleanProperty })\n get thyIsMultiple(): boolean {\n return this.isMultiple;\n }\n\n set thyIsMultiple(value: boolean) {\n this.isMultiple = value;\n this.setSelectControlClass();\n }\n\n @Input({ transform: coerceBooleanProperty })\n get thyShowSearch(): boolean {\n return this.showSearch;\n }\n\n set thyShowSearch(value: boolean) {\n this.showSearch = value;\n this.setSelectControlClass();\n }\n\n @Input()\n get thySelectedOptions(): SelectOptionBase | SelectOptionBase[] {\n return this.selectedOptions;\n }\n\n set thySelectedOptions(value: SelectOptionBase | SelectOptionBase[]) {\n let sameValue = false;\n const oldValue = this.selectedOptions;\n if (this.isMultiple) {\n if (oldValue instanceof Array && value instanceof Array && oldValue.length === value.length) {\n sameValue = value.every((option, index) => option.thyValue === oldValue[index].thyValue);\n }\n } else {\n if (oldValue && value) {\n sameValue = (oldValue as SelectOptionBase).thyValue === (value as SelectOptionBase).thyValue;\n }\n }\n this.selectedOptions = value;\n if (this.panelOpened && this.thyShowSearch) {\n if (!sameValue) {\n Promise.resolve(null).then(() => {\n this.inputValue = '';\n this.updateWidth();\n });\n }\n //等待组件渲染好再聚焦\n setTimeout(() => {\n if (this.panelOpened) {\n this.inputElement.nativeElement.focus();\n }\n }, 200);\n }\n }\n\n @Input({ transform: coerceBooleanProperty })\n get thyDisabled(): boolean {\n return this.disabled;\n }\n\n set thyDisabled(value: boolean) {\n this.disabled = value;\n this.setSelectControlClass();\n }\n\n @Input()\n customDisplayTemplate: TemplateRef<any>;\n\n @Input({ transform: coerceBooleanProperty })\n thyAllowClear = false;\n\n @Input()\n thyPlaceholder = '';\n\n @Input()\n get thySize(): SelectControlSize {\n return this.size;\n }\n\n set thySize(value: SelectControlSize) {\n this.size = value;\n this.setSelectControlClass();\n\n if (value === 'xs' || value === 'sm') {\n this.tagSize = 'sm';\n } else if (value === 'lg') {\n this.tagSize = 'lg';\n } else {\n this.tagSize = 'md';\n }\n }\n\n @Input({ transform: numberAttribute }) thyMaxTagCount = 0;\n\n @Input({ transform: coerceBooleanProperty }) thyBorderless = false;\n\n @Input() thyPreset: string = '';\n\n @Output()\n thyOnSearch = new EventEmitter<string>();\n\n @Output()\n public thyOnRemove = new EventEmitter<{ item: SelectOptionBase; $eventOrigin: Event }>();\n\n @Output()\n public thyOnClear = new EventEmitter<Event>();\n\n @Output()\n public thyOnBlur = new EventEmitter<Event>();\n\n @ViewChild('inputElement')\n inputElement: ElementRef;\n\n get selectedValueStyle(): { [key: string]: string } {\n let showSelectedValue = false;\n if (this.showSearch) {\n if (this.panelOpened) {\n showSelectedValue = !(this.isComposing || this.inputValue);\n } else {\n showSelectedValue = true;\n }\n } else {\n showSelectedValue = true;\n }\n return { display: showSelectedValue ? 'flex' : 'none' };\n }\n\n get placeholderStyle(): { [key: string]: string } {\n let placeholder = true;\n if (this.isSelectedValue) {\n placeholder = false;\n }\n if (!this.thyPlaceholder) {\n placeholder = false;\n }\n if (this.isComposing || this.inputValue) {\n placeholder = false;\n }\n return { display: placeholder ? 'block' : 'none' };\n }\n\n get selectedValue(): any {\n return this.thySelectedOptions;\n }\n\n get multipleSelectedValue(): any {\n return this.thySelectedOptions;\n }\n\n get maxSelectedTags() {\n if (this.thyMaxTagCount > 0 && this.thySelectedOptions instanceof Array && this.thySelectedOptions.length > this.thyMaxTagCount) {\n return this.thySelectedOptions.slice(0, this.thyMaxTagCount - 1);\n }\n return this.thySelectedOptions as SelectOptionBase[];\n }\n\n get showClearIcon(): boolean {\n return this.thyAllowClear && this.isSelectedValue;\n }\n\n get isSelectedValue(): boolean {\n return (\n (!this.isMultiple && !isUndefinedOrNull(this.thySelectedOptions)) ||\n (this.isMultiple && (<SelectOptionBase[]>this.thySelectedOptions).length > 0)\n );\n }\n\n ngOnInit() {\n this.setSelectControlClass();\n }\n\n setSelectControlClass() {\n const modeType = this.isMultiple ? 'multiple' : 'single';\n const selectControlClass = {\n [`form-control`]: true,\n [`form-control-${this.thySize}`]: !!this.thySize,\n [`form-control-custom`]: true,\n [`select-control`]: true,\n [`select-control-${modeType}`]: true,\n [`select-control-show-search`]: this.showSearch,\n [`panel-is-opened`]: this.panelOpened,\n [`disabled`]: this.disabled\n };\n this.hostRenderer.updateClassByMap(selectControlClass);\n this.searchInputControlClass = {\n [`form-control`]: true,\n [`form-control-${this.thySize}`]: !!this.thySize,\n [`search-input-field`]: true,\n [`hidden`]: !this.thyShowSearch,\n [`disabled`]: this.thyDisabled\n };\n }\n\n setInputValue(value: string) {\n if (value !== this.inputValue) {\n this.inputValue = value;\n this.updateWidth();\n this.thyOnSearch.emit(this.inputValue);\n }\n }\n\n handleBackspace(event: Event) {\n if ((event as KeyboardEvent).isComposing) {\n return;\n }\n if (!this.inputValue?.length && this.selectedOptions instanceof Array) {\n if (this.selectedOptions.length > 0) {\n this.removeHandle(this.selectedOptions[this.selectedOptions.length - 1], event);\n }\n }\n }\n\n updateWidth() {\n if (this.isMultiple && this.thyShowSearch) {\n if (this.inputValue || this.isComposing) {\n this.renderer.setStyle(this.inputElement.nativeElement, 'width', `${this.inputElement.nativeElement.scrollWidth}px`);\n } else {\n this.renderer.removeStyle(this.inputElement.nativeElement, 'width');\n }\n }\n }\n\n removeHandle(item: SelectOptionBase, $event: Event) {\n this.thyOnRemove.emit({ item: item, $eventOrigin: $event });\n }\n\n clearHandle($event: Event) {\n this.thyOnClear.emit($event);\n }\n\n trackValue(_index: number, option: SelectOptionBase): any {\n return option.thyValue;\n }\n\n onBlur(event: Event) {\n this.thyOnBlur.emit(event);\n }\n}\n","<ng-template #inputTemplate>\n <input\n #inputElement\n [tabindex]=\"-1\"\n (compositionstart)=\"isComposing = true\"\n (compositionend)=\"isComposing = false\"\n autocomplete=\"something-new\"\n [ngClass]=\"searchInputControlClass\"\n (input)=\"updateWidth()\"\n [ngModel]=\"inputValue\"\n (ngModelChange)=\"setInputValue($event)\"\n (keydown.backspace)=\"handleBackspace($event)\"\n [disabled]=\"thyDisabled\"\n (blur)=\"onBlur($event)\" />\n</ng-template>\n\n<div class=\"select-control-rendered\">\n @if (!isSelectedValue) {\n <div class=\"text-placeholder text-truncate\" [ngStyle]=\"placeholderStyle\">\n {{ thyPlaceholder }}\n </div>\n }\n @if (isMultiple) {\n <div thyFlex thyWrap=\"wrap\" thyGap=\"4\" thyAlignItems=\"center\" class=\"w-100\">\n @if (thyPreset === 'tag') {\n @for (item of maxSelectedTags; track trackValue($index, item)) {\n <div thyFlexItem class=\"custom-choice-item text-truncate\">\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\">\n </ng-template>\n @if (!disabled) {\n <div class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n }\n </div>\n }\n } @else {\n @for (item of maxSelectedTags; track trackValue($index, item)) {\n <div\n thyFlexItem\n thyTag\n class=\"choice-item\"\n [ngClass]=\"{ disabled: disabled === true }\"\n [thySize]=\"tagSize\"\n >\n <div class=\"text-truncate h-100\">\n @if (!customDisplayTemplate) {\n {{ item.thyLabelText }}\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\"></ng-template>\n }\n </div>\n @if (!disabled) {\n <div class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n }\n </div>\n }\n }\n @if (thyMaxTagCount && multipleSelectedValue.length > thyMaxTagCount) {\n <div\n thyFlexItem\n class=\"choice-item max-tag-count-choice\"\n thyTag\n [thySize]=\"tagSize\"\n [ngClass]=\"{ disabled: disabled === true }\">\n <div class=\"text-truncate\">+{{ multipleSelectedValue.length - thyMaxTagCount + 1 }}...</div>\n </div>\n }\n <div thyFlexItem class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </div>\n } @else {\n @if (isSelectedValue) {\n <div class=\"selected-value text-truncate\" [ngStyle]=\"selectedValueStyle\">\n @if (!customDisplayTemplate) {\n <span class=\"text-truncate\">{{ selectedValue?.thyLabelText }}</span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: selectedValue.thyRawValue || selectedValue.thyValue || selectedValue\n }\"></ng-template>\n }\n </div>\n }\n <div class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n }\n</div>\n<span class=\"select-control-arrow\">\n <thy-icon thyIconName=\"angle-down\" class=\"font-size-base\"></thy-icon>\n</span>\n@if (showClearIcon) {\n <span class=\"select-control-clear remove-link\" (click)=\"clearHandle($event)\">\n <thy-icon class=\"remove-link-icon font-size-base\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n </span>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTagModule } from 'ngx-tethys/tag';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThySelectControl } from './select-control/select-control.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyIconModule, ThyTagModule, ThySelectControl],\n exports: [ThySelectControl]\n})\nexport class ThySelectCommonModule {}\n","import { ElementRef, InjectionToken } from '@angular/core';\nimport { ThyListLayout } from '../shared.type';\n\nexport interface IThyOptionParentComponent {\n isMultiple: boolean;\n}\n\nexport interface IThyOptionGroupComponent {\n hidden: boolean;\n}\n\nexport interface IThyOptionComponent {\n thyValue: any;\n disabled?: boolean;\n element: ElementRef<HTMLElement>;\n}\n\nexport interface IThyListOptionParentComponent {\n multiple?: boolean;\n layout?: ThyListLayout;\n // 选择,取消选择 option\n toggleOption(option: IThyOptionComponent, event?: Event): void;\n // 设置当前选项为激活状态,即 hover 状态\n setActiveOption(option: IThyOptionComponent, event?: Event): void;\n // 滚动到当前的选项\n scrollIntoView(option: IThyOptionComponent): void;\n isSelected(option: IThyOptionComponent): boolean;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const THY_OPTION_PARENT_COMPONENT = new InjectionToken<IThyOptionParentComponent>('THY_OPTION_PARENT_COMPONENT');\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const THY_LIST_OPTION_PARENT_COMPONENT = new InjectionToken<IThyListOptionParentComponent>('THY_LIST_OPTION_PARENT_COMPONENT');\n","import { Component, Input, HostBinding, ElementRef, ChangeDetectorRef, HostListener, inject } from '@angular/core';\nimport { Highlightable } from '@angular/cdk/a11y';\nimport { IThyOptionComponent, THY_LIST_OPTION_PARENT_COMPONENT } from '../option.token';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nlet _uniqueIdCounter = 0;\n\n/**\n * @private\n * @order 30\n */\n@Component({\n selector: 'thy-list-option,[thy-list-option]',\n templateUrl: './list-option.component.html',\n imports: [ThyIcon]\n})\nexport class ThyListOption implements IThyOptionComponent, Highlightable {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n private changeDetector = inject(ChangeDetectorRef);\n parentSelectionList = inject(THY_LIST_OPTION_PARENT_COMPONENT, { optional: true })!;\n\n @HostBinding(`class.thy-list-option`)\n get _isListOption() {\n return this.parentSelectionList.layout === 'list';\n }\n\n @HostBinding(`class.thy-grid-option`)\n get _parentLayout() {\n return this.parentSelectionList.layout === 'grid';\n }\n\n @HostBinding(`attr.role`) _role = 'option';\n\n @HostBinding(`attr.tabindex`) _tabIndex = -1;\n\n @Input() id = `thy-list-option-${_uniqueIdCounter++}`;\n\n @Input() thyValue: any;\n\n @Input({ transform: coerceBooleanProperty })\n set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n @HostBinding(`class.disabled`) disabled?: boolean;\n\n /** Whether the option is selected. */\n @HostBinding(`class.active`)\n get selected() {\n return this.parentSelectionList.isSelected(this);\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.parentSelectionList.multiple || !this.parentSelectionList.isSelected(this)) {\n this.parentSelectionList.toggleOption(this, event);\n this.parentSelectionList.setActiveOption(this);\n }\n }\n\n // @HostListener('focus', ['$event'])\n // onFocus(event: Event) {\n // this.parentSelectionList.setFocusedOption(this, event);\n // }\n\n /** Allows for programmatic focusing of the option. */\n // focus(origin?: FocusOrigin): void {\n // this.element.nativeElement.focus();\n // }\n\n setActiveStyles(): void {\n this.element.nativeElement.classList.add('hover');\n this.parentSelectionList.scrollIntoView(this);\n }\n\n setInactiveStyles(): void {\n this.element.nativeElement.classList.remove('hover');\n }\n\n /**\n * Returns the list item's text label. Implemented as a part of the FocusKeyManager.\n * @docs-private\n */\n getLabel() {\n return '';\n }\n}\n","<ng-content></ng-content>\n@if (parentSelectionList.multiple && parentSelectionList.layout === 'list') {\n <span class=\"checked-icon\">\n <thy-icon thyIconName=\"check\"></thy-icon>\n </span>\n}\n@if (parentSelectionList.layout === 'grid') {\n <span class=\"checked-icon\">\n <thy-icon thyIconName=\"check-circle-fill\"></thy-icon>\n </span>\n}\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { ThyCanDisable, mixinDisabled, ThyCanDisableCtor, MixinBase } from 'ngx-tethys/core';\n\nconst _MixinBase: ThyCanDisableCtor & typeof MixinBase = mixinDisabled(MixinBase);\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-list-option-group,[thy-list-option-group]',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyOptionGroup extends _MixinBase implements ThyCanDisable {\n set thyDisabled(value: any) {\n this.thyDisabled = value;\n }\n}\n","export abstract class SelectOptionBase {\n thyLabelText: string;\n thyRawValue: any;\n thyValue: any;\n}\n","import {\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ChangeDetectionStrategy,\n HostBinding,\n HostListener,\n ElementRef,\n ChangeDetectorRef,\n EventEmitter,\n OnDestroy,\n Output,\n inject\n} from '@angular/core';\nimport { Highlightable } from '@angular/cdk/a11y';\nimport { SelectOptionBase } from './select-option-base';\nimport { ENTER, SPACE, coerceBooleanProperty, hasModifierKey } from 'ngx-tethys/util';\nimport { THY_OPTION_PARENT_COMPONENT } from './option.token';\n\nimport { ThyIcon } from 'ngx-tethys/icon';\n\nexport class ThyOptionSelectionChangeEvent {\n constructor(\n public option: ThyOption,\n public isUserInput = false\n ) {}\n}\n\nexport class ThyOptionVisibleChangeEvent {\n option: ThyOption;\n}\n\n/**\n * @private\n * @order 20\n */\n@Component({\n selector: 'thy-option',\n templateUrl: './option.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyIcon]\n})\nexport class ThyOption extends SelectOptionBase implements OnDestroy, Highlightable {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n parent = inject(THY_OPTION_PARENT_COMPONENT, { optional: true })!;\n private cdr = inject(ChangeDetectorRef);\n\n private _selected = false;\n private _hidden = false;\n private _disabled = false;\n\n @Input() thyValue: any;\n\n @Input() thyRawValue: any;\n\n @Input() thyLabelText: string;\n\n @Input() thyShowOptionCustom: boolean;\n\n @Input() thySearchKey: string;\n\n @HostBinding('class.thy-option-item') _isOptionItem = true;\n\n @ViewChild(TemplateRef, { static: true }) template: TemplateRef<any>;\n\n @Input({ transform: coerceBooleanProperty })\n @HostBinding(`class.disabled`)\n set thyDisabled(value: boolean) {\n this._disabled = value;\n }\n\n get thyDisabled(): boolean {\n return this._disabled;\n }\n\n get disabled(): boolean {\n return this.hidden || this._disabled;\n }\n\n @HostBinding('class.hidden')\n get hidden(): boolean {\n return this._hidden;\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n @HostBinding(`class.active`)\n get selected(): boolean {\n return this._selected;\n }\n\n @Output() readonly selectionChange: EventEmitter<ThyOptionSelectionChangeEvent> = new EventEmitter();\n @Output() readonly visibleChange: EventEmitter<ThyOptionVisibleChangeEvent> = new EventEmitter();\n\n constructor() {\n super();\n }\n\n getHostElement(): HTMLElement {\n return this.element.nativeElement;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.selectViaInteraction();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n selectViaInteraction(): void {\n if (!this.disabled) {\n this._selected = this.parent.isMultiple ? !this._selected : true;\n this.cdr.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n }\n\n select(event?: Event): void {\n if (!this.disabled) {\n if (!this._selected) {\n this._selected = true;\n this.emitSelectionChangeEvent();\n this.cdr.markForCheck();\n }\n }\n }\n\n deselect(): void {\n if (this._selected || this.disabled) {\n this._selected = false;\n this.emitSelectionChangeEvent();\n this.cdr.markForCheck();\n }\n }\n\n hideOption() {\n if (!this._hidden) {\n this._hidden = true;\n this.visibleChange.emit({ option: this });\n this.cdr.markForCheck();\n }\n }\n\n showOption() {\n if (this._hidden) {\n this._hidden = false;\n this.visibleChange.emit({ option: this });\n this.cdr.markForCheck();\n }\n }\n\n matchSearchText(searchText: string): boolean {\n if (this.thySearchKey) {\n if (this.thySearchKey.toLowerCase().indexOf(searchText.toLowerCase()) >= 0) {\n return true;\n } else {\n return false;\n }\n } else {\n if (this.thyLabelText.toLowerCase().indexOf(searchText.toLowerCase()) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n setActiveStyles(): void {\n this.getHostElement().classList.add('hover');\n this.cdr.markForCheck();\n }\n\n setInactiveStyles(): void {\n this.getHostElement().classList.remove('hover');\n this.cdr.markForCheck();\n }\n\n getLabel(): string {\n return '';\n }\n\n private emitSelectionChangeEvent(isUserInput = false): void {\n this.selectionChange.emit(new ThyOptionSelectionChangeEvent(this, isUserInput));\n }\n\n ngOnDestroy() {}\n}\n","@if (thyShowOptionCustom) {\n <ng-content></ng-content>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n} @else {\n <span class=\"text-truncate\">{{ thyLabelText }}</span>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n}\n","import {\n Component,\n HostBinding,\n Input,\n ContentChildren,\n QueryList,\n NgZone,\n OnDestroy,\n AfterContentInit,\n ChangeDetectorRef,\n inject\n} from '@angular/core';\nimport { Observable, defer, Subject, merge } from 'rxjs';\nimport { ThyOptionVisibleChangeEvent, ThyOption } from '../option.component';\nimport { take, switchMap, startWith, takeUntil, debounceTime, map } from 'rxjs/operators';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-option-group',\n templateUrl: './option-group.component.html'\n})\nexport class ThySelectOptionGroup implements OnDestroy, AfterContentInit {\n private _ngZone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n _hidden = false;\n @Input({ transform: coerceBooleanProperty })\n @HostBinding(`class.disabled`)\n thyDisabled: boolean;\n\n @HostBinding('class.thy-option-item-group') _isOptionGroup = true;\n\n @HostBinding('class.thy-select-option-group-hidden')\n get hidden(): boolean {\n return this._hidden;\n }\n\n @Input() thyGroupLabel: string;\n\n @ContentChildren(ThyOption) options: QueryList<ThyOption>;\n\n _destroy$: Subject<void> = new Subject<void>();\n\n optionVisibleChanges: Observable<ThyOptionVisibleChangeEvent> = defer(() => {\n if (this.options) {\n return merge(...this.options.map(option => option.visibleChange));\n }\n return this._ngZone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.optionVisibleChanges)\n );\n }) as Observable<ThyOptionVisibleChangeEvent>;\n\n ngAfterContentInit() {\n this.options.changes.pipe(startWith(null), takeUntil(this._destroy$)).subscribe(() => {\n this._resetOptions();\n });\n }\n\n _resetOptions() {\n const changedOrDestroyed$ = merge(this.options.changes, this._destroy$);\n merge(...this.options.map(option => option.visibleChange))\n .pipe(\n takeUntil(changedOrDestroyed$),\n debounceTime(10),\n map((event: ThyOptionVisibleChangeEvent) => {\n const hasOption = this.options.find(option => {\n if (!option.hidden) {\n return true;\n }\n });\n if (hasOption) {\n return false;\n } else {\n return true;\n }\n })\n )\n .subscribe((data: boolean) => {\n this._hidden = data;\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<span class=\"group-name text-truncate\">{{ thyGroupLabel }}</span>\n<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'thy-options-container',\n template: `\n <ng-template #options>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyOptionsContainer implements OnInit {\n @ViewChild('options') optionsTemplate: TemplateRef<any>;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ThyListOption } from './list-option/list-option.component';\nimport { ThyOptionGroup } from './option-group.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyOption } from './option.component';\nimport { ThySelectOptionGroup } from './group/option-group.component';\nimport { ThyOptionsContainer } from './options-container.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyListOption, ThyOptionGroup, ThyOption, ThySelectOptionGroup, ThyOptionsContainer],\n exports: [ThyListOption, ThyOptionGroup, ThyOption, ThySelectOptionGroup, ThyOptionsContainer]\n})\nexport class ThyOptionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -95,8 +95,8 @@ const MIME_Map = {
|
|
|
95
95
|
'.z': 'application/x-compress',
|
|
96
96
|
'.zip': 'application/x-zip-compressed',
|
|
97
97
|
'.ico': 'image/vnd.microsoft.icon',
|
|
98
|
-
'.md': 'text/markdown',
|
|
99
|
-
'.markdown': 'text/markdown',
|
|
98
|
+
'.md': 'text/markdown,.md',
|
|
99
|
+
'.markdown': 'text/markdown,.markdown',
|
|
100
100
|
'': '*/*'
|
|
101
101
|
};
|
|
102
102
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-upload.mjs","sources":["../../../src/upload/upload.config.ts","../../../src/upload/constant.ts","../../../src/upload/util.ts","../../../src/upload/file-select-base.ts","../../../src/upload/file-drop.directive.ts","../../../src/upload/file-select.component.ts","../../../src/upload/file-select.component.html","../../../src/upload/upload.service.ts","../../../src/upload/module.ts","../../../src/upload/ngx-tethys-upload.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { ThyFileSizeExceedsContext, ThySizeExceedsHandler } from './types';\n\nexport interface ThyUploadConfig {\n sizeThreshold?: number;\n sizeExceedsHandler?: ThySizeExceedsHandler;\n acceptType?: string;\n}\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS = new InjectionToken<ThyUploadConfig>('thy-uploader-default-options');\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_UPLOAD_DEFAULT_OPTIONS,\n useValue: {\n acceptType: '',\n sizeThreshold: 0,\n sizeExceedsHandler: sizeExceedsHandler\n }\n};\n\nexport function sizeExceedsHandler(event: ThyFileSizeExceedsContext): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const exceedsFilesMessage = event.exceedsFiles\n .map(item => {\n return `file: ${item.name}, size: ${item.size}`;\n })\n .join(',');\n console.error(`some files(${exceedsFilesMessage}) size exceeds threshold ${event.sizeThreshold}`);\n }\n}\n","// Multipurpose Internet Mail Extensions\nexport const MIME_Map = {\n '.3gp': 'video/3gpp',\n '.apk': 'application/vnd.android.package-archive',\n '.asf': 'video/x-ms-asf',\n '.avi': 'video/x-msvideo',\n '.bin': 'application/octet-stream',\n '.bmp': 'image/bmp',\n '.c': 'text/plain',\n '.class': 'application/octet-stream',\n '.conf': 'text/plain',\n '.cpp': 'text/plain',\n '.doc': 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword',\n '.xls': 'application/vnd.ms-excel,.xls,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx',\n '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx,application/vnd.ms-excel,.xls',\n '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',\n '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n '.exe': 'application/octet-stream',\n '.gif': 'image/gif',\n '.gtar': 'application/x-gtar',\n '.gz': 'application/x-gzip',\n '.h': 'text/plain',\n '.htm': 'text/html',\n '.html': 'text/html',\n '.jar': 'application/java-archive',\n '.jpeg': 'image/jpeg',\n '.jpg': 'image/jpeg',\n '.js': 'application/x-javascript',\n '.json': 'application/json',\n '.log': 'text/plain',\n '.m3u': 'audio/x-mpegurl',\n '.m4a': 'audio/mp4a-latm',\n '.m4b': 'audio/mp4a-latm',\n '.m4p': 'audio/mp4a-latm',\n '.m4u': 'video/vnd.mpegurl',\n '.m4v': 'video/x-m4v',\n '.mov': 'video/quicktime',\n '.mp2': 'audio/x-mpeg',\n '.mp3': 'audio/x-mpeg',\n '.mp4': 'video/mp4',\n '.mpc': 'application/vnd.mpohun.certificate',\n '.mpe': 'video/mpeg',\n '.mpeg': 'video/mpeg',\n '.mpg': 'video/mpeg',\n '.mpg4': 'video/mp4',\n '.mpga': 'audio/mpeg',\n '.msg': 'application/vnd.ms-outlook',\n '.ogg': 'audio/ogg',\n '.pdf': 'application/pdf',\n '.png': 'image/png',\n '.pps': 'application/vnd.ms-powerpoint',\n '.ppt': 'application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation',\n '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-powerpoint',\n '.prop': 'text/plain',\n '.rc': 'text/plain',\n '.rmvb': 'audio/x-pn-realaudio',\n '.rtf': 'application/rtf',\n '.sh': 'text/plain',\n '.tar': 'application/x-tar',\n '.tgz': 'application/x-compressed',\n '.txt': 'text/plain',\n '.wav': 'audio/x-wav',\n '.wma': 'audio/x-ms-wma',\n '.wmv': 'audio/x-ms-wmv',\n '.wps': 'application/vnd.ms-works',\n '.z': 'application/x-compress',\n '.zip': 'application/x-zip-compressed',\n '.ico': 'image/vnd.microsoft.icon',\n '.md': 'text/markdown',\n '.markdown': 'text/markdown',\n '': '*/*'\n};\n","import { isString, isArray } from 'ngx-tethys/util';\nimport { MIME_Map } from './constant';\n\nexport function mimeTypeConvert(value: Array<string> | string): string {\n let inputTypes: Array<string>;\n const acceptTypes: Array<string> = [];\n if (isArray(value)) {\n inputTypes = value as Array<string>;\n } else if (isString(value)) {\n inputTypes = value.split(',');\n } else {\n inputTypes = [];\n }\n\n if (inputTypes.length > 0) {\n inputTypes.forEach(n => {\n if (MIME_Map[n]) {\n acceptTypes.push(MIME_Map[n]);\n } else {\n acceptTypes.push(n);\n }\n });\n }\n return acceptTypes.join(',');\n}\n","import { isNumber } from 'ngx-tethys/util';\nimport { Directive, ElementRef, EventEmitter, Input, NgZone, numberAttribute, inject, Inject, Renderer2 } from '@angular/core';\nimport { ThyFileSelectEvent, ThySizeExceedsHandler } from './types';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { mimeTypeConvert } from './util';\n\n/**\n * @private\n */\n@Directive()\nexport class FileSelectBaseDirective {\n acceptType: string;\n sizeThreshold: number;\n sizeExceedsHandler: ThySizeExceedsHandler;\n\n @Input({ transform: numberAttribute })\n set thySizeThreshold(value: number) {\n const sizeThreshold = value;\n if (isNumber(sizeThreshold)) {\n this.sizeThreshold = sizeThreshold;\n }\n }\n\n @Input() set thySizeExceedsHandler(value: ThySizeExceedsHandler) {\n if (value) {\n this.sizeExceedsHandler = value;\n }\n }\n\n /**\n * 指定文件后缀类型(MIME_Map),例如\".xls,xlsx\",\"[\".doc\",\".docx\"]\"\n */\n @Input()\n set thyAcceptType(value: Array<string> | string) {\n this.acceptType = mimeTypeConvert(value);\n }\n\n constructor(\n public elementRef: ElementRef,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig\n ) {\n this.sizeThreshold = defaultConfig.sizeThreshold;\n this.sizeExceedsHandler = defaultConfig.sizeExceedsHandler;\n this.acceptType = mimeTypeConvert(defaultConfig.acceptType);\n }\n\n handleSizeExceeds(event: Event, files: File[]) {\n let sizeExceedsFiles = files.filter(item => item.size / 1024 > this.sizeThreshold);\n if (sizeExceedsFiles.length > 0) {\n const sizeExceedContext = {\n files: files,\n exceedsFiles: sizeExceedsFiles,\n nativeEvent: event,\n sizeThreshold: this.sizeThreshold\n };\n return this.sizeExceedsHandler(sizeExceedContext);\n }\n return files;\n }\n\n selectFiles(event: Event, files: File[], eventEmitter: EventEmitter<ThyFileSelectEvent>) {\n let successFiles: File[] | void = files;\n if (this.sizeThreshold && this.sizeThreshold > 0) {\n successFiles = this.handleSizeExceeds(event, files);\n }\n if (successFiles) {\n eventEmitter.emit({\n files: successFiles,\n nativeEvent: event\n });\n }\n }\n}\n","import { isEmpty, isString } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, takeUntil, tap } from 'rxjs/operators';\n\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n inject\n} from '@angular/core';\n\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\n\n/**\n * @name thyFileDrop\n */\n@Directive({\n selector: '[thyFileDrop]'\n})\nexport class ThyFileDropDirective extends FileSelectBaseDirective implements OnInit, OnDestroy {\n @HostBinding('class.drop-over')\n @HostBinding('class.thy-drop-over')\n isDragOver = false;\n private dragOverCustomClass: string;\n\n @Input() set thyFileDropClassName(value: string) {\n this.dragOverCustomClass = value;\n }\n\n @Output() thyOnDrop = new EventEmitter();\n\n /**\n * 当拖拽的文件中有不符合 thyAcceptType 中定义的类型时触发\n * @description.en-us It is triggered when there are files in the dragged files that do not conform to the types defined in thyAcceptType.\n */\n @Output() thyFilesReject = new EventEmitter<File[]>();\n\n private ngUnsubscribe$ = new Subject<void>();\n\n constructor(\n public elementRef: ElementRef,\n public renderer: Renderer2,\n public ngZone: NgZone,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig\n ) {\n super(elementRef, defaultConfig);\n }\n\n public ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.elementRef.nativeElement, 'dragenter')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n tap((event: DragEvent) => {\n event.preventDefault();\n }),\n filter(event => event.dataTransfer.items && event.dataTransfer.items.length > 0)\n )\n .subscribe((event: DragEvent) => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const files = this.filterFilesOrItems(Array.from(event.dataTransfer.items));\n if (!isEmpty(files)) {\n this.ngZone.run(() => {\n this.isDragOver = true;\n this.toggleDropOverClassName();\n });\n }\n }\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragover')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: any) => {\n event.preventDefault();\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragleave')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: any) => {\n this.ngZone.run(() => {\n if (!this.elementRef.nativeElement.contains(event.fromElement)) {\n this.resetDragOver();\n this.toggleDropOverClassName();\n }\n });\n });\n\n fromEvent(this.elementRef.nativeElement, 'drop')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n tap((event: DragEvent) => {\n event.preventDefault();\n })\n )\n .subscribe((event: DragEvent) => {\n this.ngZone.run(() => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const originFiles = event.dataTransfer ? Array.from(event.dataTransfer.files) : [];\n const files = this.filterFilesOrItems(originFiles) as File[];\n\n if (files.length !== originFiles.length) {\n const differentFiles = originFiles.filter(item => !files.includes(item));\n this.thyFilesReject.emit(differentFiles);\n }\n if (!isEmpty(files)) {\n this.selectFiles(event, files, this.thyOnDrop);\n }\n }\n this.resetDragOver();\n this.toggleDropOverClassName();\n });\n });\n });\n }\n\n private checkRejectFolderAndHtmlElement(event: DragEvent) {\n // 排除文件夹和HTML元素拖拽\n const items: DataTransferItemList | DataTransferItem[] = event.dataTransfer ? event.dataTransfer.items : [];\n let res = true;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const entry = this.getAsEntry(item);\n if (item.kind !== 'file' || (entry && !entry.isFile)) {\n res = false;\n // console.error(`file extensions not support drag upload, kind: ${item.kind}, type: ${item.type}`);\n }\n }\n return res;\n }\n\n private getAsEntry(item: DataTransferItem): FileSystemEntry {\n let entry: FileSystemEntry;\n if ((item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']) {\n // https://wiki.whatwg.org/wiki/DragAndDropEntries\n entry = (item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']();\n } else if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n }\n return entry;\n }\n\n private filterFilesOrItems(items: Array<DataTransferItem | File>): Array<DataTransferItem | File> {\n if (this.acceptType && this.acceptType != '*/*') {\n return items.filter(item => {\n const isValidType = isString(item.type) && item.type.length > 0;\n return isValidType && this.acceptType.includes(item.type);\n });\n } else {\n return Array.from(items);\n }\n }\n\n private toggleDropOverClassName() {\n if (this.dragOverCustomClass) {\n if (this.isDragOver) {\n this.renderer.addClass(this.elementRef.nativeElement, this.dragOverCustomClass);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, this.dragOverCustomClass);\n }\n }\n }\n\n private setDragOverState(isDragOver: boolean) {\n this.isDragOver = isDragOver;\n }\n\n private resetDragOver() {\n this.setDragOverState(false);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n inject,\n Inject\n} from '@angular/core';\n\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { mimeTypeConvert } from './util';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 文件上传组件\n * @name thy-file-select,[thyFileSelect]\n * @order 10\n */\n@Component({\n selector: '[thyFileSelect],thy-file-select',\n templateUrl: './file-select.component.html'\n})\nexport class ThyFileSelect extends FileSelectBaseDirective implements OnChanges, OnDestroy {\n /**\n * 文件选择事件\n */\n @Output() thyOnFileSelect = new EventEmitter();\n\n @ViewChild('fileInput', { static: true }) fileInput: ElementRef<HTMLInputElement>;\n\n /**\n * 文件是否多选\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple: boolean;\n\n @Input({ transform: coerceBooleanProperty }) thyAcceptFolder: boolean;\n\n /**\n * 指定文件后缀类型(MIME_Map),例如\".xls,xlsx\",\"[\".doc\",\".docx\"]\"\n * @type Array<string> | string\n */\n @Input()\n set thyAcceptType(value: Array<string> | string) {\n this.acceptType = mimeTypeConvert(value);\n }\n\n /**\n * 文件上传大小限制,单位`kb`,`0`表示没有任何限制\n */\n @Input({ transform: numberAttribute })\n set thySizeThreshold(value: number) {\n this.sizeThreshold = value;\n }\n\n private destroy$ = new Subject<void>();\n\n constructor(\n public elementRef: ElementRef,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig,\n private ngZone: NgZone\n ) {\n super(elementRef, defaultConfig);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.fileInput.nativeElement.click();\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyMultiple) {\n if (changes.thyMultiple.currentValue) {\n this.fileInput.nativeElement.setAttribute('multiple', '');\n } else {\n this.fileInput.nativeElement.removeAttribute('multiple');\n }\n }\n\n if (changes.thyAcceptFolder) {\n if (changes.thyAcceptFolder.currentValue) {\n this.fileInput.nativeElement.setAttribute('webkitdirectory', '');\n } else {\n this.fileInput.nativeElement.removeAttribute('webkitdirectory');\n }\n }\n }\n\n selectFile($event: Event) {\n const files = this.fileInput.nativeElement.files;\n if (files && files.length > 0) {\n this.selectFiles($event, Array.from(files), this.thyOnFileSelect);\n this.fileInput.nativeElement.value = '';\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n}\n","<ng-content></ng-content>\n<input\n style=\"width: 0; height: 0\"\n thyStopPropagation=\"true\"\n [hidden]=\"'true'\"\n #fileInput\n type=\"file\"\n (change)=\"selectFile($event)\"\n [attr.accept]=\"acceptType\"\n/>\n","import { coerceArray, humanizeBytes, TinyDate } from 'ngx-tethys/util';\nimport { from, Observable, Subscriber } from 'rxjs';\nimport { map, mergeMap, tap } from 'rxjs/operators';\n\nimport { XhrFactory } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\nexport enum ThyUploadStatus {\n pending = 'pending',\n started = 'started',\n uploading = 'uploading',\n done = 'done'\n}\n\nexport interface ThyUploadResponse {\n status: ThyUploadStatus;\n uploadFile?: ThyUploadFile;\n}\n\n/**\n * 文件上传进度\n * @public\n * @order 40\n */\nexport interface ThyUploadFileProgress {\n /**\n * 上传状态\n * @default pending\n */\n status: ThyUploadStatus;\n\n /**\n * 进度百分比\n */\n percentage: number;\n\n /**\n * 上传速度\n */\n speed?: number;\n\n /**\n * 人类可读的上传速度,比如: 120 kb/s\n */\n speedHuman?: string;\n\n /**\n * 开始上传时间\n */\n startTime: number | null;\n\n /**\n * 结束上传时间\n */\n endTime?: number | null;\n\n /**\n * 上传时间\n */\n estimatedTime?: number | null;\n\n /**\n * 人类可读的上传时间,比如: 00:12:23\n */\n estimatedTimeHuman?: string | null;\n}\n\n/**\n * 文件上传对象\n * @public\n * @order 30\n */\nexport interface ThyUploadFile {\n /**\n * 文件唯一标识\n */\n identifier?: string;\n\n /**\n * 上传方法\n */\n method: string;\n\n /**\n * 远程上传地址\n */\n url: string;\n\n /**\n * 是否携带认证信息\n */\n withCredentials?: boolean;\n\n /**\n * 原始文件\n */\n nativeFile: File;\n\n /**\n * 文件字段\n */\n fileField?: string;\n\n /**\n * 文件名\n */\n fileName?: string;\n\n /**\n * 请求头\n */\n headers?: Record<string, string>;\n\n /**\n * 请求数据\n */\n data?: Record<string, string>;\n\n /**\n * 响应状态\n */\n responseStatus?: any;\n\n /**\n * 上传响应结果\n */\n response?: any;\n\n /**\n * 响应头\n */\n responseHeaders?: any;\n\n /**\n * 上传进度\n */\n progress?: ThyUploadFileProgress;\n}\n\nexport interface ThyUploadFilesOptions {\n onStarted?: (item: ThyUploadFile) => void;\n onDone?: (item: ThyUploadFile) => void;\n}\n\n/**\n * 文件远程上传服务\n * @order 20\n */\n@Injectable()\nexport class ThyUploadService {\n private xhrFactory = inject(XhrFactory);\n\n private secondsToHuman(sec: number): string {\n return new TinyDate(sec * 1000).nativeDate.toISOString().slice(11, 19);\n }\n\n private normalizeUploadFiles(uploadFiles: ThyUploadFile | ThyUploadFile[]) {\n coerceArray(uploadFiles).forEach(uploadFile => {\n if (!uploadFile.progress) {\n uploadFile.progress = {\n status: ThyUploadStatus.pending,\n percentage: 0,\n startTime: 0\n };\n }\n });\n }\n\n private uploadByXhr(observer: Subscriber<ThyUploadResponse>, uploadFile: ThyUploadFile) {\n const xhr = this.xhrFactory.build();\n const time: number = new TinyDate().getTime();\n let speed = 0;\n let estimatedTime: number | null = null;\n\n uploadFile.progress = {\n status: ThyUploadStatus.started,\n percentage: 0,\n startTime: time\n };\n\n const onProgress = (event: ProgressEvent): void => {\n if (event.lengthComputable) {\n let percentage = Math.round((event.loaded * 100) / event.total);\n if (percentage === 100) {\n percentage = 99;\n }\n const diff = new TinyDate().getTime() - time;\n speed = Math.round((event.loaded / diff) * 1000);\n const progressStartTime = (uploadFile.progress && uploadFile.progress.startTime) || new TinyDate().getTime();\n estimatedTime = Math.ceil((event.total - event.loaded) / speed);\n\n uploadFile.progress.status = ThyUploadStatus.uploading;\n uploadFile.progress.percentage = percentage;\n uploadFile.progress.speed = speed;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.startTime = progressStartTime;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime);\n\n observer.next({ status: ThyUploadStatus.uploading, uploadFile: uploadFile });\n }\n };\n\n const onError = (error: ErrorEvent) => observer.error(error);\n\n const onReadyStateChange = () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n const speedTime = (new TinyDate().getTime() - uploadFile.progress.startTime) * 1000;\n const speedAverage = Math.round(uploadFile.nativeFile.size / speedTime);\n\n uploadFile.progress.status = ThyUploadStatus.done;\n uploadFile.progress.percentage = 100;\n uploadFile.progress.speed = speedAverage;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime || 0);\n\n uploadFile.responseStatus = xhr.status;\n\n try {\n uploadFile.response = JSON.parse(xhr.response);\n } catch (e) {\n uploadFile.response = xhr.response;\n }\n\n // file.responseHeaders = this.parseResponseHeaders(xhr.getAllResponseHeaders());\n\n observer.next({ status: ThyUploadStatus.done, uploadFile: uploadFile });\n\n observer.complete();\n }\n };\n\n xhr.upload.addEventListener('progress', onProgress, false);\n xhr.upload.addEventListener('error', onError);\n // When using the [timeout attribute](https://xhr.spec.whatwg.org/#the-timeout-attribute) and an XHR\n // request times out, browsers trigger the `timeout` event (and executes the XHR's `ontimeout`\n // callback). Additionally, Safari 9 handles timed-out requests in the same way, even if no `timeout`\n // has been explicitly set on the XHR.\n xhr.upload.addEventListener('timeout', onError);\n xhr.addEventListener('timeout', onError);\n xhr.addEventListener('readystatechange', onReadyStateChange);\n\n xhr.open(uploadFile.method, uploadFile.url, true);\n xhr.withCredentials = uploadFile.withCredentials ? true : false;\n\n try {\n const formData = new FormData();\n\n Object.keys(uploadFile.data || {}).forEach(key => formData.append(key, uploadFile.data[key]));\n Object.keys(uploadFile.headers || {}).forEach(key => xhr.setRequestHeader(key, uploadFile.headers[key]));\n\n formData.append(uploadFile.fileField || 'file', uploadFile.nativeFile, uploadFile.fileName);\n\n observer.next({ status: ThyUploadStatus.started, uploadFile: uploadFile });\n xhr.send(formData);\n } catch (error) {\n observer.error(error);\n }\n\n return {\n xhr,\n cleanup: () => {\n xhr.upload.removeEventListener('progress', onProgress);\n xhr.upload.removeEventListener('error', onError);\n xhr.upload.removeEventListener('timeout', onError);\n xhr.removeEventListener('timeout', onError);\n xhr.removeEventListener('readystatechange', onReadyStateChange);\n }\n };\n }\n\n private ensureFileName(uploadFile: ThyUploadFile) {\n uploadFile.fileName = uploadFile.fileName || uploadFile.nativeFile.name;\n }\n\n /**\n * 上传单个文件\n * @param uploadFile 上传文件对象\n */\n upload(uploadFile: ThyUploadFile): Observable<ThyUploadResponse> {\n this.ensureFileName(uploadFile);\n\n return new Observable(observer => {\n const { xhr, cleanup } = this.uploadByXhr(observer, uploadFile);\n return () => {\n cleanup();\n\n if (xhr.readyState !== xhr.DONE) {\n xhr.abort();\n }\n };\n });\n }\n\n /**\n * 并发上传多个文件\n * @param uploadFiles 上传文件列表\n * @param concurrent 并发上传数, 默认 5\n * @param options onStared, onDone 回调\n */\n uploadBulk(uploadFiles: ThyUploadFile[], concurrent = 5, options?: ThyUploadFilesOptions): Observable<ThyUploadResponse> {\n this.normalizeUploadFiles(uploadFiles);\n const result = from(uploadFiles).pipe(\n mergeMap(uploadFile => {\n return this.upload(uploadFile).pipe(\n tap(uploadResponse => {\n if (options && options.onStarted && uploadResponse.status === ThyUploadStatus.started) {\n options.onStarted(uploadResponse.uploadFile);\n }\n if (options && options.onDone && uploadResponse.status === ThyUploadStatus.done) {\n options.onDone(uploadResponse.uploadFile);\n }\n })\n );\n }, concurrent),\n map(response => {\n return response;\n })\n );\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyFileDropDirective } from './file-drop.directive';\nimport { ThyFileSelect } from './file-select.component';\nimport { THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER } from './upload.config';\nimport { ThyUploadService } from './upload.service';\n\n// import { ThyDirectiveModule } from 'ngx-tethys/directive';\n\n@NgModule({\n exports: [ThyFileSelect, ThyFileDropDirective],\n imports: [CommonModule, ThyFileSelect, ThyFileDropDirective],\n providers: [ThyUploadService, THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER]\n})\nexport class ThyUploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-upload.mjs","sources":["../../../src/upload/upload.config.ts","../../../src/upload/constant.ts","../../../src/upload/util.ts","../../../src/upload/file-select-base.ts","../../../src/upload/file-drop.directive.ts","../../../src/upload/file-select.component.ts","../../../src/upload/file-select.component.html","../../../src/upload/upload.service.ts","../../../src/upload/module.ts","../../../src/upload/ngx-tethys-upload.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { ThyFileSizeExceedsContext, ThySizeExceedsHandler } from './types';\n\nexport interface ThyUploadConfig {\n sizeThreshold?: number;\n sizeExceedsHandler?: ThySizeExceedsHandler;\n acceptType?: string;\n}\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS = new InjectionToken<ThyUploadConfig>('thy-uploader-default-options');\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_UPLOAD_DEFAULT_OPTIONS,\n useValue: {\n acceptType: '',\n sizeThreshold: 0,\n sizeExceedsHandler: sizeExceedsHandler\n }\n};\n\nexport function sizeExceedsHandler(event: ThyFileSizeExceedsContext): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const exceedsFilesMessage = event.exceedsFiles\n .map(item => {\n return `file: ${item.name}, size: ${item.size}`;\n })\n .join(',');\n console.error(`some files(${exceedsFilesMessage}) size exceeds threshold ${event.sizeThreshold}`);\n }\n}\n","// Multipurpose Internet Mail Extensions\nexport const MIME_Map = {\n '.3gp': 'video/3gpp',\n '.apk': 'application/vnd.android.package-archive',\n '.asf': 'video/x-ms-asf',\n '.avi': 'video/x-msvideo',\n '.bin': 'application/octet-stream',\n '.bmp': 'image/bmp',\n '.c': 'text/plain',\n '.class': 'application/octet-stream',\n '.conf': 'text/plain',\n '.cpp': 'text/plain',\n '.doc': 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword',\n '.xls': 'application/vnd.ms-excel,.xls,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx',\n '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx,application/vnd.ms-excel,.xls',\n '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',\n '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n '.exe': 'application/octet-stream',\n '.gif': 'image/gif',\n '.gtar': 'application/x-gtar',\n '.gz': 'application/x-gzip',\n '.h': 'text/plain',\n '.htm': 'text/html',\n '.html': 'text/html',\n '.jar': 'application/java-archive',\n '.jpeg': 'image/jpeg',\n '.jpg': 'image/jpeg',\n '.js': 'application/x-javascript',\n '.json': 'application/json',\n '.log': 'text/plain',\n '.m3u': 'audio/x-mpegurl',\n '.m4a': 'audio/mp4a-latm',\n '.m4b': 'audio/mp4a-latm',\n '.m4p': 'audio/mp4a-latm',\n '.m4u': 'video/vnd.mpegurl',\n '.m4v': 'video/x-m4v',\n '.mov': 'video/quicktime',\n '.mp2': 'audio/x-mpeg',\n '.mp3': 'audio/x-mpeg',\n '.mp4': 'video/mp4',\n '.mpc': 'application/vnd.mpohun.certificate',\n '.mpe': 'video/mpeg',\n '.mpeg': 'video/mpeg',\n '.mpg': 'video/mpeg',\n '.mpg4': 'video/mp4',\n '.mpga': 'audio/mpeg',\n '.msg': 'application/vnd.ms-outlook',\n '.ogg': 'audio/ogg',\n '.pdf': 'application/pdf',\n '.png': 'image/png',\n '.pps': 'application/vnd.ms-powerpoint',\n '.ppt': 'application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation',\n '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-powerpoint',\n '.prop': 'text/plain',\n '.rc': 'text/plain',\n '.rmvb': 'audio/x-pn-realaudio',\n '.rtf': 'application/rtf',\n '.sh': 'text/plain',\n '.tar': 'application/x-tar',\n '.tgz': 'application/x-compressed',\n '.txt': 'text/plain',\n '.wav': 'audio/x-wav',\n '.wma': 'audio/x-ms-wma',\n '.wmv': 'audio/x-ms-wmv',\n '.wps': 'application/vnd.ms-works',\n '.z': 'application/x-compress',\n '.zip': 'application/x-zip-compressed',\n '.ico': 'image/vnd.microsoft.icon',\n '.md': 'text/markdown,.md',\n '.markdown': 'text/markdown,.markdown',\n '': '*/*'\n};\n","import { isString, isArray } from 'ngx-tethys/util';\nimport { MIME_Map } from './constant';\n\nexport function mimeTypeConvert(value: Array<string> | string): string {\n let inputTypes: Array<string>;\n const acceptTypes: Array<string> = [];\n if (isArray(value)) {\n inputTypes = value as Array<string>;\n } else if (isString(value)) {\n inputTypes = value.split(',');\n } else {\n inputTypes = [];\n }\n\n if (inputTypes.length > 0) {\n inputTypes.forEach(n => {\n if (MIME_Map[n]) {\n acceptTypes.push(MIME_Map[n]);\n } else {\n acceptTypes.push(n);\n }\n });\n }\n return acceptTypes.join(',');\n}\n","import { isNumber } from 'ngx-tethys/util';\nimport { Directive, ElementRef, EventEmitter, Input, NgZone, numberAttribute, inject, Inject, Renderer2 } from '@angular/core';\nimport { ThyFileSelectEvent, ThySizeExceedsHandler } from './types';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { mimeTypeConvert } from './util';\n\n/**\n * @private\n */\n@Directive()\nexport class FileSelectBaseDirective {\n acceptType: string;\n sizeThreshold: number;\n sizeExceedsHandler: ThySizeExceedsHandler;\n\n @Input({ transform: numberAttribute })\n set thySizeThreshold(value: number) {\n const sizeThreshold = value;\n if (isNumber(sizeThreshold)) {\n this.sizeThreshold = sizeThreshold;\n }\n }\n\n @Input() set thySizeExceedsHandler(value: ThySizeExceedsHandler) {\n if (value) {\n this.sizeExceedsHandler = value;\n }\n }\n\n /**\n * 指定文件后缀类型(MIME_Map),例如\".xls,xlsx\",\"[\".doc\",\".docx\"]\"\n */\n @Input()\n set thyAcceptType(value: Array<string> | string) {\n this.acceptType = mimeTypeConvert(value);\n }\n\n constructor(\n public elementRef: ElementRef,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig\n ) {\n this.sizeThreshold = defaultConfig.sizeThreshold;\n this.sizeExceedsHandler = defaultConfig.sizeExceedsHandler;\n this.acceptType = mimeTypeConvert(defaultConfig.acceptType);\n }\n\n handleSizeExceeds(event: Event, files: File[]) {\n let sizeExceedsFiles = files.filter(item => item.size / 1024 > this.sizeThreshold);\n if (sizeExceedsFiles.length > 0) {\n const sizeExceedContext = {\n files: files,\n exceedsFiles: sizeExceedsFiles,\n nativeEvent: event,\n sizeThreshold: this.sizeThreshold\n };\n return this.sizeExceedsHandler(sizeExceedContext);\n }\n return files;\n }\n\n selectFiles(event: Event, files: File[], eventEmitter: EventEmitter<ThyFileSelectEvent>) {\n let successFiles: File[] | void = files;\n if (this.sizeThreshold && this.sizeThreshold > 0) {\n successFiles = this.handleSizeExceeds(event, files);\n }\n if (successFiles) {\n eventEmitter.emit({\n files: successFiles,\n nativeEvent: event\n });\n }\n }\n}\n","import { isEmpty, isString } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, takeUntil, tap } from 'rxjs/operators';\n\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n inject\n} from '@angular/core';\n\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\n\n/**\n * @name thyFileDrop\n */\n@Directive({\n selector: '[thyFileDrop]'\n})\nexport class ThyFileDropDirective extends FileSelectBaseDirective implements OnInit, OnDestroy {\n @HostBinding('class.drop-over')\n @HostBinding('class.thy-drop-over')\n isDragOver = false;\n private dragOverCustomClass: string;\n\n @Input() set thyFileDropClassName(value: string) {\n this.dragOverCustomClass = value;\n }\n\n @Output() thyOnDrop = new EventEmitter();\n\n /**\n * 当拖拽的文件中有不符合 thyAcceptType 中定义的类型时触发\n * @description.en-us It is triggered when there are files in the dragged files that do not conform to the types defined in thyAcceptType.\n */\n @Output() thyFilesReject = new EventEmitter<File[]>();\n\n private ngUnsubscribe$ = new Subject<void>();\n\n constructor(\n public elementRef: ElementRef,\n public renderer: Renderer2,\n public ngZone: NgZone,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig\n ) {\n super(elementRef, defaultConfig);\n }\n\n public ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.elementRef.nativeElement, 'dragenter')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n tap((event: DragEvent) => {\n event.preventDefault();\n }),\n filter(event => event.dataTransfer.items && event.dataTransfer.items.length > 0)\n )\n .subscribe((event: DragEvent) => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const files = this.filterFilesOrItems(Array.from(event.dataTransfer.items));\n if (!isEmpty(files)) {\n this.ngZone.run(() => {\n this.isDragOver = true;\n this.toggleDropOverClassName();\n });\n }\n }\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragover')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: any) => {\n event.preventDefault();\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragleave')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: any) => {\n this.ngZone.run(() => {\n if (!this.elementRef.nativeElement.contains(event.fromElement)) {\n this.resetDragOver();\n this.toggleDropOverClassName();\n }\n });\n });\n\n fromEvent(this.elementRef.nativeElement, 'drop')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n tap((event: DragEvent) => {\n event.preventDefault();\n })\n )\n .subscribe((event: DragEvent) => {\n this.ngZone.run(() => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const originFiles = event.dataTransfer ? Array.from(event.dataTransfer.files) : [];\n const files = this.filterFilesOrItems(originFiles) as File[];\n\n if (files.length !== originFiles.length) {\n const differentFiles = originFiles.filter(item => !files.includes(item));\n this.thyFilesReject.emit(differentFiles);\n }\n if (!isEmpty(files)) {\n this.selectFiles(event, files, this.thyOnDrop);\n }\n }\n this.resetDragOver();\n this.toggleDropOverClassName();\n });\n });\n });\n }\n\n private checkRejectFolderAndHtmlElement(event: DragEvent) {\n // 排除文件夹和HTML元素拖拽\n const items: DataTransferItemList | DataTransferItem[] = event.dataTransfer ? event.dataTransfer.items : [];\n let res = true;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const entry = this.getAsEntry(item);\n if (item.kind !== 'file' || (entry && !entry.isFile)) {\n res = false;\n // console.error(`file extensions not support drag upload, kind: ${item.kind}, type: ${item.type}`);\n }\n }\n return res;\n }\n\n private getAsEntry(item: DataTransferItem): FileSystemEntry {\n let entry: FileSystemEntry;\n if ((item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']) {\n // https://wiki.whatwg.org/wiki/DragAndDropEntries\n entry = (item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']();\n } else if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n }\n return entry;\n }\n\n private filterFilesOrItems(items: Array<DataTransferItem | File>): Array<DataTransferItem | File> {\n if (this.acceptType && this.acceptType != '*/*') {\n return items.filter(item => {\n const isValidType = isString(item.type) && item.type.length > 0;\n return isValidType && this.acceptType.includes(item.type);\n });\n } else {\n return Array.from(items);\n }\n }\n\n private toggleDropOverClassName() {\n if (this.dragOverCustomClass) {\n if (this.isDragOver) {\n this.renderer.addClass(this.elementRef.nativeElement, this.dragOverCustomClass);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, this.dragOverCustomClass);\n }\n }\n }\n\n private setDragOverState(isDragOver: boolean) {\n this.isDragOver = isDragOver;\n }\n\n private resetDragOver() {\n this.setDragOverState(false);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n inject,\n Inject\n} from '@angular/core';\n\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { mimeTypeConvert } from './util';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 文件上传组件\n * @name thy-file-select,[thyFileSelect]\n * @order 10\n */\n@Component({\n selector: '[thyFileSelect],thy-file-select',\n templateUrl: './file-select.component.html'\n})\nexport class ThyFileSelect extends FileSelectBaseDirective implements OnChanges, OnDestroy {\n /**\n * 文件选择事件\n */\n @Output() thyOnFileSelect = new EventEmitter();\n\n @ViewChild('fileInput', { static: true }) fileInput: ElementRef<HTMLInputElement>;\n\n /**\n * 文件是否多选\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple: boolean;\n\n @Input({ transform: coerceBooleanProperty }) thyAcceptFolder: boolean;\n\n /**\n * 指定文件后缀类型(MIME_Map),例如\".xls,xlsx\",\"[\".doc\",\".docx\"]\"\n * @type Array<string> | string\n */\n @Input()\n set thyAcceptType(value: Array<string> | string) {\n this.acceptType = mimeTypeConvert(value);\n }\n\n /**\n * 文件上传大小限制,单位`kb`,`0`表示没有任何限制\n */\n @Input({ transform: numberAttribute })\n set thySizeThreshold(value: number) {\n this.sizeThreshold = value;\n }\n\n private destroy$ = new Subject<void>();\n\n constructor(\n public elementRef: ElementRef,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig,\n private ngZone: NgZone\n ) {\n super(elementRef, defaultConfig);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.fileInput.nativeElement.click();\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyMultiple) {\n if (changes.thyMultiple.currentValue) {\n this.fileInput.nativeElement.setAttribute('multiple', '');\n } else {\n this.fileInput.nativeElement.removeAttribute('multiple');\n }\n }\n\n if (changes.thyAcceptFolder) {\n if (changes.thyAcceptFolder.currentValue) {\n this.fileInput.nativeElement.setAttribute('webkitdirectory', '');\n } else {\n this.fileInput.nativeElement.removeAttribute('webkitdirectory');\n }\n }\n }\n\n selectFile($event: Event) {\n const files = this.fileInput.nativeElement.files;\n if (files && files.length > 0) {\n this.selectFiles($event, Array.from(files), this.thyOnFileSelect);\n this.fileInput.nativeElement.value = '';\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n}\n","<ng-content></ng-content>\n<input\n style=\"width: 0; height: 0\"\n thyStopPropagation=\"true\"\n [hidden]=\"'true'\"\n #fileInput\n type=\"file\"\n (change)=\"selectFile($event)\"\n [attr.accept]=\"acceptType\"\n/>\n","import { coerceArray, humanizeBytes, TinyDate } from 'ngx-tethys/util';\nimport { from, Observable, Subscriber } from 'rxjs';\nimport { map, mergeMap, tap } from 'rxjs/operators';\n\nimport { XhrFactory } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\nexport enum ThyUploadStatus {\n pending = 'pending',\n started = 'started',\n uploading = 'uploading',\n done = 'done'\n}\n\nexport interface ThyUploadResponse {\n status: ThyUploadStatus;\n uploadFile?: ThyUploadFile;\n}\n\n/**\n * 文件上传进度\n * @public\n * @order 40\n */\nexport interface ThyUploadFileProgress {\n /**\n * 上传状态\n * @default pending\n */\n status: ThyUploadStatus;\n\n /**\n * 进度百分比\n */\n percentage: number;\n\n /**\n * 上传速度\n */\n speed?: number;\n\n /**\n * 人类可读的上传速度,比如: 120 kb/s\n */\n speedHuman?: string;\n\n /**\n * 开始上传时间\n */\n startTime: number | null;\n\n /**\n * 结束上传时间\n */\n endTime?: number | null;\n\n /**\n * 上传时间\n */\n estimatedTime?: number | null;\n\n /**\n * 人类可读的上传时间,比如: 00:12:23\n */\n estimatedTimeHuman?: string | null;\n}\n\n/**\n * 文件上传对象\n * @public\n * @order 30\n */\nexport interface ThyUploadFile {\n /**\n * 文件唯一标识\n */\n identifier?: string;\n\n /**\n * 上传方法\n */\n method: string;\n\n /**\n * 远程上传地址\n */\n url: string;\n\n /**\n * 是否携带认证信息\n */\n withCredentials?: boolean;\n\n /**\n * 原始文件\n */\n nativeFile: File;\n\n /**\n * 文件字段\n */\n fileField?: string;\n\n /**\n * 文件名\n */\n fileName?: string;\n\n /**\n * 请求头\n */\n headers?: Record<string, string>;\n\n /**\n * 请求数据\n */\n data?: Record<string, string>;\n\n /**\n * 响应状态\n */\n responseStatus?: any;\n\n /**\n * 上传响应结果\n */\n response?: any;\n\n /**\n * 响应头\n */\n responseHeaders?: any;\n\n /**\n * 上传进度\n */\n progress?: ThyUploadFileProgress;\n}\n\nexport interface ThyUploadFilesOptions {\n onStarted?: (item: ThyUploadFile) => void;\n onDone?: (item: ThyUploadFile) => void;\n}\n\n/**\n * 文件远程上传服务\n * @order 20\n */\n@Injectable()\nexport class ThyUploadService {\n private xhrFactory = inject(XhrFactory);\n\n private secondsToHuman(sec: number): string {\n return new TinyDate(sec * 1000).nativeDate.toISOString().slice(11, 19);\n }\n\n private normalizeUploadFiles(uploadFiles: ThyUploadFile | ThyUploadFile[]) {\n coerceArray(uploadFiles).forEach(uploadFile => {\n if (!uploadFile.progress) {\n uploadFile.progress = {\n status: ThyUploadStatus.pending,\n percentage: 0,\n startTime: 0\n };\n }\n });\n }\n\n private uploadByXhr(observer: Subscriber<ThyUploadResponse>, uploadFile: ThyUploadFile) {\n const xhr = this.xhrFactory.build();\n const time: number = new TinyDate().getTime();\n let speed = 0;\n let estimatedTime: number | null = null;\n\n uploadFile.progress = {\n status: ThyUploadStatus.started,\n percentage: 0,\n startTime: time\n };\n\n const onProgress = (event: ProgressEvent): void => {\n if (event.lengthComputable) {\n let percentage = Math.round((event.loaded * 100) / event.total);\n if (percentage === 100) {\n percentage = 99;\n }\n const diff = new TinyDate().getTime() - time;\n speed = Math.round((event.loaded / diff) * 1000);\n const progressStartTime = (uploadFile.progress && uploadFile.progress.startTime) || new TinyDate().getTime();\n estimatedTime = Math.ceil((event.total - event.loaded) / speed);\n\n uploadFile.progress.status = ThyUploadStatus.uploading;\n uploadFile.progress.percentage = percentage;\n uploadFile.progress.speed = speed;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.startTime = progressStartTime;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime);\n\n observer.next({ status: ThyUploadStatus.uploading, uploadFile: uploadFile });\n }\n };\n\n const onError = (error: ErrorEvent) => observer.error(error);\n\n const onReadyStateChange = () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n const speedTime = (new TinyDate().getTime() - uploadFile.progress.startTime) * 1000;\n const speedAverage = Math.round(uploadFile.nativeFile.size / speedTime);\n\n uploadFile.progress.status = ThyUploadStatus.done;\n uploadFile.progress.percentage = 100;\n uploadFile.progress.speed = speedAverage;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime || 0);\n\n uploadFile.responseStatus = xhr.status;\n\n try {\n uploadFile.response = JSON.parse(xhr.response);\n } catch (e) {\n uploadFile.response = xhr.response;\n }\n\n // file.responseHeaders = this.parseResponseHeaders(xhr.getAllResponseHeaders());\n\n observer.next({ status: ThyUploadStatus.done, uploadFile: uploadFile });\n\n observer.complete();\n }\n };\n\n xhr.upload.addEventListener('progress', onProgress, false);\n xhr.upload.addEventListener('error', onError);\n // When using the [timeout attribute](https://xhr.spec.whatwg.org/#the-timeout-attribute) and an XHR\n // request times out, browsers trigger the `timeout` event (and executes the XHR's `ontimeout`\n // callback). Additionally, Safari 9 handles timed-out requests in the same way, even if no `timeout`\n // has been explicitly set on the XHR.\n xhr.upload.addEventListener('timeout', onError);\n xhr.addEventListener('timeout', onError);\n xhr.addEventListener('readystatechange', onReadyStateChange);\n\n xhr.open(uploadFile.method, uploadFile.url, true);\n xhr.withCredentials = uploadFile.withCredentials ? true : false;\n\n try {\n const formData = new FormData();\n\n Object.keys(uploadFile.data || {}).forEach(key => formData.append(key, uploadFile.data[key]));\n Object.keys(uploadFile.headers || {}).forEach(key => xhr.setRequestHeader(key, uploadFile.headers[key]));\n\n formData.append(uploadFile.fileField || 'file', uploadFile.nativeFile, uploadFile.fileName);\n\n observer.next({ status: ThyUploadStatus.started, uploadFile: uploadFile });\n xhr.send(formData);\n } catch (error) {\n observer.error(error);\n }\n\n return {\n xhr,\n cleanup: () => {\n xhr.upload.removeEventListener('progress', onProgress);\n xhr.upload.removeEventListener('error', onError);\n xhr.upload.removeEventListener('timeout', onError);\n xhr.removeEventListener('timeout', onError);\n xhr.removeEventListener('readystatechange', onReadyStateChange);\n }\n };\n }\n\n private ensureFileName(uploadFile: ThyUploadFile) {\n uploadFile.fileName = uploadFile.fileName || uploadFile.nativeFile.name;\n }\n\n /**\n * 上传单个文件\n * @param uploadFile 上传文件对象\n */\n upload(uploadFile: ThyUploadFile): Observable<ThyUploadResponse> {\n this.ensureFileName(uploadFile);\n\n return new Observable(observer => {\n const { xhr, cleanup } = this.uploadByXhr(observer, uploadFile);\n return () => {\n cleanup();\n\n if (xhr.readyState !== xhr.DONE) {\n xhr.abort();\n }\n };\n });\n }\n\n /**\n * 并发上传多个文件\n * @param uploadFiles 上传文件列表\n * @param concurrent 并发上传数, 默认 5\n * @param options onStared, onDone 回调\n */\n uploadBulk(uploadFiles: ThyUploadFile[], concurrent = 5, options?: ThyUploadFilesOptions): Observable<ThyUploadResponse> {\n this.normalizeUploadFiles(uploadFiles);\n const result = from(uploadFiles).pipe(\n mergeMap(uploadFile => {\n return this.upload(uploadFile).pipe(\n tap(uploadResponse => {\n if (options && options.onStarted && uploadResponse.status === ThyUploadStatus.started) {\n options.onStarted(uploadResponse.uploadFile);\n }\n if (options && options.onDone && uploadResponse.status === ThyUploadStatus.done) {\n options.onDone(uploadResponse.uploadFile);\n }\n })\n );\n }, concurrent),\n map(response => {\n return response;\n })\n );\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyFileDropDirective } from './file-drop.directive';\nimport { ThyFileSelect } from './file-select.component';\nimport { THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER } from './upload.config';\nimport { ThyUploadService } from './upload.service';\n\n// import { ThyDirectiveModule } from 'ngx-tethys/directive';\n\n@NgModule({\n exports: [ThyFileSelect, ThyFileDropDirective],\n imports: [CommonModule, ThyFileSelect, ThyFileDropDirective],\n providers: [ThyUploadService, THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER]\n})\nexport class ThyUploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/ngx-tethys.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.0.
|
|
1
|
+
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.0.16');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS;;ACF5C;;AAEG;;;;"}
|
package/package.json
CHANGED
package/schematics/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "19.0.
|
|
1
|
+
export declare const VERSION = "19.0.16";
|
package/schematics/version.js
CHANGED