@abp/ng.components 10.7.0-rc.3 → 10.7.0-rc.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-lookup.mjs","sources":["../../../../packages/components/lookup/src/lib/lookup-search.component.ts","../../../../packages/components/lookup/src/lib/lookup-search.component.html","../../../../packages/components/lookup/src/abp-ng.components-lookup.ts"],"sourcesContent":["import {\r\n Component,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n TemplateRef,\r\n contentChild,\r\n DestroyRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { Subject, Observable, debounceTime, distinctUntilChanged, of, finalize } from 'rxjs';\r\n\r\nexport interface LookupItem {\r\n key: string;\r\n displayName: string;\r\n [key: string]: unknown;\r\n}\r\n\r\nexport type LookupSearchFn<T = LookupItem> = (filter: string) => Observable<T[]>;\r\n\r\n@Component({\r\n selector: 'abp-lookup-search',\r\n templateUrl: './lookup-search.component.html',\r\n styleUrl: './lookup-search.component.scss',\r\n imports: [FormsModule, LocalizationPipe, NgTemplateOutlet],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LookupSearchComponent<T extends LookupItem = LookupItem> implements OnInit {\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n readonly label = input<string>();\r\n readonly placeholder = input<string>('');\r\n readonly debounceTime = input<number>(300);\r\n readonly minSearchLength = input<number>(0);\r\n readonly displayKey = input<keyof T>('displayName' as keyof T);\r\n readonly valueKey = input<keyof T>('key' as keyof T);\r\n readonly disabled = input<boolean>(false);\r\n\r\n readonly searchFn = input<LookupSearchFn<T>>(() => of([]));\r\n\r\n readonly selectedValue = model<string>('');\r\n readonly displayValue = model<string>('');\r\n\r\n readonly itemSelected = output<T>();\r\n readonly searchChanged = output<string>();\r\n\r\n readonly itemTemplate = contentChild<TemplateRef<{ $implicit: T }>>('itemTemplate');\r\n readonly noResultsTemplate = contentChild<TemplateRef<void>>('noResultsTemplate');\r\n\r\n readonly searchResults = signal<T[]>([]);\r\n readonly showDropdown = signal(true);\r\n readonly isLoading = signal(false);\r\n\r\n private readonly searchSubject = new Subject<string>();\r\n\r\n ngOnInit() {\r\n this.searchSubject\r\n .pipe(\r\n debounceTime(this.debounceTime()),\r\n distinctUntilChanged(),\r\n takeUntilDestroyed(this.destroyRef),\r\n )\r\n .subscribe(filter => {\r\n this.performSearch(filter);\r\n });\r\n }\r\n\r\n onSearchInput(filter: string) {\r\n this.displayValue.set(filter);\r\n this.showDropdown.set(true);\r\n this.searchChanged.emit(filter);\r\n\r\n if (filter.length >= this.minSearchLength()) {\r\n this.searchSubject.next(filter);\r\n } else {\r\n this.searchResults.set([]);\r\n }\r\n }\r\n\r\n onSearchFocus() {\r\n this.showDropdown.set(true);\r\n const currentFilter = this.displayValue() || '';\r\n if (currentFilter.length >= this.minSearchLength()) {\r\n this.performSearch(currentFilter);\r\n }\r\n }\r\n\r\n onSearchBlur(event: FocusEvent) {\r\n const relatedTarget = event.relatedTarget as HTMLElement;\r\n if (!relatedTarget?.closest('.abp-lookup-dropdown')) {\r\n this.showDropdown.set(false);\r\n }\r\n }\r\n\r\n selectItem(item: T) {\r\n const displayKeyValue = String(item[this.displayKey()] ?? '');\r\n const valueKeyValue = String(item[this.valueKey()] ?? '');\r\n\r\n this.displayValue.set(displayKeyValue);\r\n this.selectedValue.set(valueKeyValue);\r\n this.searchResults.set([]);\r\n this.showDropdown.set(false);\r\n this.itemSelected.emit(item);\r\n }\r\n\r\n clearSelection() {\r\n this.displayValue.set('');\r\n this.selectedValue.set('');\r\n this.searchResults.set([]);\r\n }\r\n\r\n private performSearch(filter: string) {\r\n this.isLoading.set(true);\r\n\r\n this.searchFn()(filter)\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n finalize(() => this.isLoading.set(false)),\r\n )\r\n .subscribe({\r\n next: results => {\r\n this.searchResults.set(results);\r\n },\r\n error: () => {\r\n this.searchResults.set([]);\r\n },\r\n });\r\n }\r\n\r\n getDisplayValue(item: T): string {\r\n return String(item[this.displayKey()] ?? item[this.valueKey()] ?? '');\r\n }\r\n}\r\n","<div class=\"abp-lookup-container position-relative\">\r\n @if (label()) {\r\n <label class=\"form-label\">{{ label() | abpLocalization }}</label>\r\n }\r\n\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [placeholder]=\"placeholder() | abpLocalization\"\r\n [ngModel]=\"displayValue()\"\r\n (ngModelChange)=\"onSearchInput($event)\"\r\n (focus)=\"onSearchFocus()\"\r\n (blur)=\"onSearchBlur($event)\"\r\n [disabled]=\"disabled()\"\r\n />\r\n @if (displayValue() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-secondary\"\r\n (mousedown)=\"clearSelection()\"\r\n tabindex=\"-1\"\r\n >\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showDropdown() && !disabled()) {\r\n <div class=\"abp-lookup-dropdown list-group position-absolute w-100\">\r\n @if (isLoading()) {\r\n <div class=\"list-group-item text-center py-3\">\r\n <i class=\"fa fa-spinner fa-spin me-2\"></i>\r\n {{ 'AbpUi::Loading' | abpLocalization }}\r\n </div>\r\n } @else if (searchResults().length > 0) {\r\n @for (item of searchResults(); track item.key) {\r\n <button\r\n type=\"button\"\r\n class=\"list-group-item list-group-item-action\"\r\n (mousedown)=\"selectItem(item)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: item }\" />\r\n } @else {\r\n {{ getDisplayValue(item) }}\r\n }\r\n </button>\r\n }\r\n } @else if (displayValue()) {\r\n @if (noResultsTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"noResultsTemplate()!\" />\r\n } @else {\r\n <div class=\"list-group-item text-muted\">\r\n {{ 'AbpUi::NoDataAvailableInDatatable' | abpLocalization }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-lookup.mjs","sources":["../../../../packages/components/lookup/src/lib/lookup-search.component.ts","../../../../packages/components/lookup/src/lib/lookup-search.component.html","../../../../packages/components/lookup/src/abp-ng.components-lookup.ts"],"sourcesContent":["import {\r\n Component,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n TemplateRef,\r\n contentChild,\r\n DestroyRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { Subject, Observable, debounceTime, distinctUntilChanged, of, finalize } from 'rxjs';\r\n\r\nexport interface LookupItem {\r\n key: string;\r\n displayName: string;\r\n [key: string]: unknown;\r\n}\r\n\r\nexport type LookupSearchFn<T = LookupItem> = (filter: string) => Observable<T[]>;\r\n\r\n@Component({\r\n selector: 'abp-lookup-search',\r\n templateUrl: './lookup-search.component.html',\r\n styleUrl: './lookup-search.component.scss',\r\n imports: [FormsModule, LocalizationPipe, NgTemplateOutlet],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LookupSearchComponent<T extends LookupItem = LookupItem> implements OnInit {\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n readonly label = input<string>();\r\n readonly placeholder = input<string>('');\r\n readonly debounceTime = input<number>(300);\r\n readonly minSearchLength = input<number>(0);\r\n readonly displayKey = input<keyof T>('displayName' as keyof T);\r\n readonly valueKey = input<keyof T>('key' as keyof T);\r\n readonly disabled = input<boolean>(false);\r\n\r\n readonly searchFn = input<LookupSearchFn<T>>(() => of([]));\r\n\r\n readonly selectedValue = model<string>('');\r\n readonly displayValue = model<string>('');\r\n\r\n readonly itemSelected = output<T>();\r\n readonly searchChanged = output<string>();\r\n\r\n readonly itemTemplate = contentChild<TemplateRef<{ $implicit: T }>>('itemTemplate');\r\n readonly noResultsTemplate = contentChild<TemplateRef<void>>('noResultsTemplate');\r\n\r\n readonly searchResults = signal<T[]>([]);\r\n readonly showDropdown = signal(true);\r\n readonly isLoading = signal(false);\r\n\r\n private readonly searchSubject = new Subject<string>();\r\n\r\n ngOnInit() {\r\n this.searchSubject\r\n .pipe(\r\n debounceTime(this.debounceTime()),\r\n distinctUntilChanged(),\r\n takeUntilDestroyed(this.destroyRef),\r\n )\r\n .subscribe(filter => {\r\n this.performSearch(filter);\r\n });\r\n }\r\n\r\n onSearchInput(filter: string) {\r\n this.displayValue.set(filter);\r\n this.showDropdown.set(true);\r\n this.searchChanged.emit(filter);\r\n\r\n if (filter.length >= this.minSearchLength()) {\r\n this.searchSubject.next(filter);\r\n } else {\r\n this.searchResults.set([]);\r\n }\r\n }\r\n\r\n onSearchFocus() {\r\n this.showDropdown.set(true);\r\n const currentFilter = this.displayValue() || '';\r\n if (currentFilter.length >= this.minSearchLength()) {\r\n this.performSearch(currentFilter);\r\n }\r\n }\r\n\r\n onSearchBlur(event: FocusEvent) {\r\n const relatedTarget = event.relatedTarget as HTMLElement;\r\n if (!relatedTarget?.closest('.abp-lookup-dropdown')) {\r\n this.showDropdown.set(false);\r\n }\r\n }\r\n\r\n selectItem(item: T) {\r\n const displayKeyValue = String(item[this.displayKey()] ?? '');\r\n const valueKeyValue = String(item[this.valueKey()] ?? '');\r\n\r\n this.displayValue.set(displayKeyValue);\r\n this.selectedValue.set(valueKeyValue);\r\n this.searchResults.set([]);\r\n this.showDropdown.set(false);\r\n this.itemSelected.emit(item);\r\n }\r\n\r\n clearSelection() {\r\n this.displayValue.set('');\r\n this.selectedValue.set('');\r\n this.searchResults.set([]);\r\n }\r\n\r\n private performSearch(filter: string) {\r\n this.isLoading.set(true);\r\n\r\n this.searchFn()(filter)\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n finalize(() => this.isLoading.set(false)),\r\n )\r\n .subscribe({\r\n next: results => {\r\n this.searchResults.set(results);\r\n },\r\n error: () => {\r\n this.searchResults.set([]);\r\n },\r\n });\r\n }\r\n\r\n getDisplayValue(item: T): string {\r\n return String(item[this.displayKey()] ?? item[this.valueKey()] ?? '');\r\n }\r\n}\r\n","<div class=\"abp-lookup-container position-relative\">\r\n @if (label()) {\r\n <label class=\"form-label\">{{ label() | abpLocalization }}</label>\r\n }\r\n\r\n <div class=\"input-group\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [placeholder]=\"placeholder() | abpLocalization\"\r\n [ngModel]=\"displayValue()\"\r\n (ngModelChange)=\"onSearchInput($event)\"\r\n (focus)=\"onSearchFocus()\"\r\n (blur)=\"onSearchBlur($event)\"\r\n [disabled]=\"disabled()\"\r\n />\r\n @if (displayValue() && !disabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-secondary\"\r\n (mousedown)=\"clearSelection()\"\r\n tabindex=\"-1\"\r\n >\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showDropdown() && !disabled()) {\r\n <div class=\"abp-lookup-dropdown list-group position-absolute w-100\">\r\n @if (isLoading()) {\r\n <div class=\"list-group-item text-center py-3\">\r\n <i class=\"fa fa-spinner fa-spin me-2\"></i>\r\n {{ 'AbpUi::Loading' | abpLocalization }}\r\n </div>\r\n } @else if (searchResults().length > 0) {\r\n @for (item of searchResults(); track item.key) {\r\n <button\r\n type=\"button\"\r\n class=\"list-group-item list-group-item-action\"\r\n (mousedown)=\"selectItem(item)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: item }\" />\r\n } @else {\r\n {{ getDisplayValue(item) }}\r\n }\r\n </button>\r\n }\r\n } @else if (displayValue()) {\r\n @if (noResultsTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"noResultsTemplate()!\" />\r\n } @else {\r\n <div class=\"list-group-item text-muted\">\r\n {{ 'AbpUi::NoDataAvailableInDatatable' | abpLocalization }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-page.mjs","sources":["../../../../packages/components/page/src/page-part.directive.ts","../../../../packages/components/page/src/page-parts.component.ts","../../../../packages/components/page/src/page.component.ts","../../../../packages/components/page/src/page.component.html","../../../../packages/components/page/src/page.module.ts","../../../../packages/components/page/src/abp-ng.components-page.ts"],"sourcesContent":["import {\r\n Directive,\r\n TemplateRef,\r\n ViewContainerRef,\r\n InjectionToken,\r\n OnInit,\r\n OnDestroy,\r\n Injector,\r\n inject,\r\n input,\r\n effect\r\n} from '@angular/core';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\n\r\nexport interface PageRenderStrategy {\r\n shouldRender(type?: string): boolean | Observable<boolean>;\r\n onInit?(type?: string, injector?: Injector, context?: any): void;\r\n onDestroy?(type?: string, injector?: Injector, context?: any): void;\r\n onContextUpdate?(context?: any): void;\r\n}\r\n\r\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\r\n\r\n@Directive({\r\n selector: '[abpPagePart]',\r\n})\r\nexport class PagePartDirective implements OnInit, OnDestroy {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private viewContainer = inject(ViewContainerRef);\r\n private renderLogic = inject<PageRenderStrategy>(PAGE_RENDER_STRATEGY, { optional: true })!;\r\n private injector = inject(Injector);\r\n\r\n hasRendered = false;\r\n subscription!: Subscription;\r\n\r\n readonly context = input<any>(undefined, { alias: 'abpPagePartContext' });\r\n readonly abpPagePart = input<string>('');\r\n\r\n constructor() {\r\n // Watch for type changes\r\n effect(() => {\r\n const type = this.abpPagePart();\r\n if (type) {\r\n this.createRenderStream(type);\r\n }\r\n });\r\n\r\n // Watch for context changes\r\n effect(() => {\r\n const ctx = this.context();\r\n if (this.renderLogic?.onContextUpdate) {\r\n this.renderLogic.onContextUpdate(ctx);\r\n }\r\n });\r\n }\r\n\r\n render = (shouldRender: boolean) => {\r\n if (shouldRender && !this.hasRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasRendered = true;\r\n } else if (!shouldRender && this.hasRendered) {\r\n this.viewContainer.clear();\r\n this.hasRendered = false;\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n if (this.renderLogic?.onInit) {\r\n this.renderLogic.onInit(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearSubscription();\r\n\r\n if (this.renderLogic?.onDestroy) {\r\n this.renderLogic.onDestroy(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n shouldRender(type: string) {\r\n if (this.renderLogic) {\r\n const willRender = this.renderLogic.shouldRender(type);\r\n return willRender instanceof Observable ? willRender : of(willRender);\r\n }\r\n return of(true);\r\n }\r\n\r\n protected createRenderStream(type: string) {\r\n this.clearSubscription();\r\n\r\n this.subscription = this.shouldRender(type).subscribe(this.render);\r\n }\r\n\r\n protected clearSubscription() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nexport enum PageParts {\r\n title = 'PageTitleContainerComponent',\r\n breadcrumb = 'PageBreadcrumbContainerComponent',\r\n toolbar = 'PageToolbarContainerComponent',\r\n}\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'abp-page-title-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageTitleContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-breadcrumb-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageBreadcrumbContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-toolbar-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageToolbarContainerComponent {}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n input,\r\n effect,\r\n signal,\r\n contentChild,\r\n ChangeDetectionStrategy,\r\n} from '@angular/core';\r\nimport {\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PageParts,\r\n} from './page-parts.component';\r\nimport { BreadcrumbComponent } from '@abp/ng.theme.shared';\r\nimport { PageToolbarComponent } from '@abp/ng.components/extensible';\r\nimport { PagePartDirective } from './page-part.directive';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'abp-page',\r\n templateUrl: './page.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [BreadcrumbComponent, PageToolbarComponent, PagePartDirective],\r\n})\r\nexport class PageComponent {\r\n readonly title = input<string | undefined>(undefined);\r\n readonly toolbarInput = input<any>(undefined, { alias: 'toolbar' });\r\n readonly breadcrumb = input(true);\r\n\r\n protected readonly toolbarVisible = signal(false);\r\n protected readonly toolbarData = signal<any>(undefined);\r\n\r\n pageParts = {\r\n title: PageParts.title,\r\n breadcrumb: PageParts.breadcrumb,\r\n toolbar: PageParts.toolbar,\r\n };\r\n\r\n readonly customTitle = contentChild(PageTitleContainerComponent);\r\n readonly customBreadcrumb = contentChild(PageBreadcrumbContainerComponent);\r\n readonly customToolbar = contentChild(PageToolbarContainerComponent);\r\n\r\n constructor() {\r\n effect(() => {\r\n const toolbar = this.toolbarInput();\r\n if (toolbar !== undefined) {\r\n this.toolbarData.set(toolbar);\r\n this.toolbarVisible.set(true);\r\n }\r\n });\r\n }\r\n\r\n get shouldRenderRow() {\r\n return !!(\r\n this.title() ||\r\n this.toolbarVisible() ||\r\n this.breadcrumb() ||\r\n this.customTitle() ||\r\n this.customBreadcrumb() ||\r\n this.customToolbar() ||\r\n this.pageParts\r\n );\r\n }\r\n}\r\n","@if (shouldRenderRow) {\r\n <div class=\"row entry-row\">\r\n @if (customTitle()) {\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n } @else {\r\n @if (title()) {\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title() }}\r\n </h1>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customBreadcrumb()) {\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n } @else {\r\n @if (breadcrumb()) {\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customToolbar()) {\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n } @else {\r\n @if (toolbarVisible()) {\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData()\">\r\n <abp-page-toolbar [record]=\"toolbarData()\"></abp-page-toolbar>\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { PagePartDirective } from './page-part.directive';\r\nimport {\r\n PageBreadcrumbContainerComponent,\r\n PageTitleContainerComponent,\r\n PageToolbarContainerComponent,\r\n} from './page-parts.component';\r\nimport { PageComponent } from './page.component';\r\n\r\nexport const PAGE_EXPORTS = [\r\n PageComponent,\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PagePartDirective,\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [...PAGE_EXPORTS],\r\n exports: [...PAGE_EXPORTS],\r\n})\r\nexport class PageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-page.mjs","sources":["../../../../packages/components/page/src/page-part.directive.ts","../../../../packages/components/page/src/page-parts.component.ts","../../../../packages/components/page/src/page.component.ts","../../../../packages/components/page/src/page.component.html","../../../../packages/components/page/src/page.module.ts","../../../../packages/components/page/src/abp-ng.components-page.ts"],"sourcesContent":["import {\r\n Directive,\r\n TemplateRef,\r\n ViewContainerRef,\r\n InjectionToken,\r\n OnInit,\r\n OnDestroy,\r\n Injector,\r\n inject,\r\n input,\r\n effect\r\n} from '@angular/core';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\n\r\nexport interface PageRenderStrategy {\r\n shouldRender(type?: string): boolean | Observable<boolean>;\r\n onInit?(type?: string, injector?: Injector, context?: any): void;\r\n onDestroy?(type?: string, injector?: Injector, context?: any): void;\r\n onContextUpdate?(context?: any): void;\r\n}\r\n\r\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\r\n\r\n@Directive({\r\n selector: '[abpPagePart]',\r\n})\r\nexport class PagePartDirective implements OnInit, OnDestroy {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private viewContainer = inject(ViewContainerRef);\r\n private renderLogic = inject<PageRenderStrategy>(PAGE_RENDER_STRATEGY, { optional: true })!;\r\n private injector = inject(Injector);\r\n\r\n hasRendered = false;\r\n subscription!: Subscription;\r\n\r\n readonly context = input<any>(undefined, { alias: 'abpPagePartContext' });\r\n readonly abpPagePart = input<string>('');\r\n\r\n constructor() {\r\n // Watch for type changes\r\n effect(() => {\r\n const type = this.abpPagePart();\r\n if (type) {\r\n this.createRenderStream(type);\r\n }\r\n });\r\n\r\n // Watch for context changes\r\n effect(() => {\r\n const ctx = this.context();\r\n if (this.renderLogic?.onContextUpdate) {\r\n this.renderLogic.onContextUpdate(ctx);\r\n }\r\n });\r\n }\r\n\r\n render = (shouldRender: boolean) => {\r\n if (shouldRender && !this.hasRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasRendered = true;\r\n } else if (!shouldRender && this.hasRendered) {\r\n this.viewContainer.clear();\r\n this.hasRendered = false;\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n if (this.renderLogic?.onInit) {\r\n this.renderLogic.onInit(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearSubscription();\r\n\r\n if (this.renderLogic?.onDestroy) {\r\n this.renderLogic.onDestroy(this.abpPagePart(), this.injector, this.context());\r\n }\r\n }\r\n\r\n shouldRender(type: string) {\r\n if (this.renderLogic) {\r\n const willRender = this.renderLogic.shouldRender(type);\r\n return willRender instanceof Observable ? willRender : of(willRender);\r\n }\r\n return of(true);\r\n }\r\n\r\n protected createRenderStream(type: string) {\r\n this.clearSubscription();\r\n\r\n this.subscription = this.shouldRender(type).subscribe(this.render);\r\n }\r\n\r\n protected clearSubscription() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nexport enum PageParts {\r\n title = 'PageTitleContainerComponent',\r\n breadcrumb = 'PageBreadcrumbContainerComponent',\r\n toolbar = 'PageToolbarContainerComponent',\r\n}\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'abp-page-title-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageTitleContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-breadcrumb-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageBreadcrumbContainerComponent {}\r\n\r\n@Component({\r\n selector: 'abp-page-toolbar-container',\r\n template: ` <ng-content></ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PageToolbarContainerComponent {}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n input,\r\n effect,\r\n signal,\r\n contentChild,\r\n ChangeDetectionStrategy,\r\n} from '@angular/core';\r\nimport {\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PageParts,\r\n} from './page-parts.component';\r\nimport { BreadcrumbComponent } from '@abp/ng.theme.shared';\r\nimport { PageToolbarComponent } from '@abp/ng.components/extensible';\r\nimport { PagePartDirective } from './page-part.directive';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'abp-page',\r\n templateUrl: './page.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [BreadcrumbComponent, PageToolbarComponent, PagePartDirective],\r\n})\r\nexport class PageComponent {\r\n readonly title = input<string | undefined>(undefined);\r\n readonly toolbarInput = input<any>(undefined, { alias: 'toolbar' });\r\n readonly breadcrumb = input(true);\r\n\r\n protected readonly toolbarVisible = signal(false);\r\n protected readonly toolbarData = signal<any>(undefined);\r\n\r\n pageParts = {\r\n title: PageParts.title,\r\n breadcrumb: PageParts.breadcrumb,\r\n toolbar: PageParts.toolbar,\r\n };\r\n\r\n readonly customTitle = contentChild(PageTitleContainerComponent);\r\n readonly customBreadcrumb = contentChild(PageBreadcrumbContainerComponent);\r\n readonly customToolbar = contentChild(PageToolbarContainerComponent);\r\n\r\n constructor() {\r\n effect(() => {\r\n const toolbar = this.toolbarInput();\r\n if (toolbar !== undefined) {\r\n this.toolbarData.set(toolbar);\r\n this.toolbarVisible.set(true);\r\n }\r\n });\r\n }\r\n\r\n get shouldRenderRow() {\r\n return !!(\r\n this.title() ||\r\n this.toolbarVisible() ||\r\n this.breadcrumb() ||\r\n this.customTitle() ||\r\n this.customBreadcrumb() ||\r\n this.customToolbar() ||\r\n this.pageParts\r\n );\r\n }\r\n}\r\n","@if (shouldRenderRow) {\r\n <div class=\"row entry-row\">\r\n @if (customTitle()) {\r\n <ng-content select=\"abp-page-title-container\"></ng-content>\r\n } @else {\r\n @if (title()) {\r\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\r\n <h1 class=\"content-header-title\">\r\n {{ title() }}\r\n </h1>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customBreadcrumb()) {\r\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\r\n } @else {\r\n @if (breadcrumb()) {\r\n <div class=\"col-lg-auto ps-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\r\n <abp-breadcrumb></abp-breadcrumb>\r\n </div>\r\n }\r\n }\r\n\r\n @if (customToolbar()) {\r\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\r\n } @else {\r\n @if (toolbarVisible()) {\r\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData()\">\r\n <abp-page-toolbar [record]=\"toolbarData()\"></abp-page-toolbar>\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { PagePartDirective } from './page-part.directive';\r\nimport {\r\n PageBreadcrumbContainerComponent,\r\n PageTitleContainerComponent,\r\n PageToolbarContainerComponent,\r\n} from './page-parts.component';\r\nimport { PageComponent } from './page.component';\r\n\r\nexport const PAGE_EXPORTS = [\r\n PageComponent,\r\n PageTitleContainerComponent,\r\n PageBreadcrumbContainerComponent,\r\n PageToolbarContainerComponent,\r\n PagePartDirective,\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [...PAGE_EXPORTS],\r\n exports: [...PAGE_EXPORTS],\r\n})\r\nexport class PageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-tree.mjs","sources":["../../../../packages/components/tree/src/lib/disable-tree-style-loading.token.ts","../../../../packages/components/tree/src/lib/templates/tree-node-template.directive.ts","../../../../packages/components/tree/src/lib/templates/expanded-icon-template.directive.ts","../../../../packages/components/tree/src/lib/components/tree.component.ts","../../../../packages/components/tree/src/lib/components/tree.component.html","../../../../packages/components/tree/src/lib/tree.module.ts","../../../../packages/components/tree/src/lib/utils/nz-tree-adapter.ts","../../../../packages/components/tree/src/abp-ng.components-tree.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const DISABLE_TREE_STYLE_LOADING_TOKEN = new InjectionToken<boolean>(\r\n 'DISABLE_TREE_STYLE_LOADING_TOKEN',\r\n);\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',\r\n})\r\nexport class TreeNodeTemplateDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',\r\n})\r\nexport class ExpandedIconTemplateDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChild,\r\n inject,\r\n OnInit,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n input,\r\n output,\r\n signal,\r\n effect,\r\n} from '@angular/core';\r\nimport { NgbDropdown, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n NzFormatBeforeDropEvent,\r\n NzFormatEmitEvent,\r\n NzTreeComponent,\r\n NzTreeNode,\r\n} from 'ng-zorro-antd/tree';\r\nimport {\r\n InitDirective,\r\n LazyLoadService,\r\n LOADING_STRATEGY,\r\n SubscriptionService,\r\n} from '@abp/ng.core';\r\nimport { of } from 'rxjs';\r\nimport { DISABLE_TREE_STYLE_LOADING_TOKEN } from '../disable-tree-style-loading.token';\r\nimport { TreeNodeTemplateDirective } from '../templates/tree-node-template.directive';\r\nimport { ExpandedIconTemplateDirective } from '../templates/expanded-icon-template.directive';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/animation';\r\n\r\nexport type DropEvent = NzFormatEmitEvent & { pos: number };\r\n\r\n@Component({\r\n selector: 'abp-tree',\r\n templateUrl: 'tree.component.html',\r\n styleUrls: ['tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [SubscriptionService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n NgTemplateOutlet,\r\n NzTreeComponent,\r\n NgbDropdown,\r\n NgbDropdownMenu,\r\n NgbDropdownToggle,\r\n InitDirective,\r\n NzNoAnimationDirective,\r\n ],\r\n})\r\nexport class TreeComponent implements OnInit {\r\n private lazyLoadService = inject(LazyLoadService);\r\n private subscriptionService = inject(SubscriptionService);\r\n private disableTreeStyleLoading = inject(DISABLE_TREE_STYLE_LOADING_TOKEN, { optional: true });\r\n\r\n dropPosition!: number;\r\n\r\n dropdowns = {} as { [key: string]: NgbDropdown };\r\n\r\n readonly menu = contentChild<TemplateRef<any>>('menu');\r\n readonly customNodeTemplate = contentChild(TreeNodeTemplateDirective);\r\n readonly expandedIconTemplate = contentChild(ExpandedIconTemplateDirective);\r\n readonly checkedKeysChange = output<any>();\r\n readonly expandedKeysChange = output<string[]>();\r\n readonly selectedNodeChange = output<any>();\r\n readonly dropOver = output<DropEvent>();\r\n readonly nzExpandChange = output<NzFormatEmitEvent>();\r\n\r\n // Input signals\r\n readonly noAnimation = input(true);\r\n readonly draggable = input<boolean | undefined>(undefined);\r\n readonly checkable = input<boolean | undefined>(undefined);\r\n readonly checkStrictly = input<boolean | undefined>(undefined);\r\n readonly checkedKeysInput = input<any[]>([], { alias: 'checkedKeys' });\r\n readonly nodesInput = input<any[]>([], { alias: 'nodes' });\r\n readonly expandedKeysInput = input<string[]>([], { alias: 'expandedKeys' });\r\n readonly selectedNodeInput = input<any>(undefined, { alias: 'selectedNode' });\r\n readonly changeCheckboxWithNode = input<boolean | undefined>(undefined);\r\n readonly isNodeSelectedFn = input<(node: any) => boolean>(\r\n node => this._selectedNode()?.id === node.key,\r\n { alias: 'isNodeSelected' },\r\n );\r\n readonly beforeDropFn = input<(event: NzFormatBeforeDropEvent) => any>(\r\n (event: NzFormatBeforeDropEvent) => {\r\n this.dropPosition = event.pos;\r\n return of(false);\r\n },\r\n { alias: 'beforeDrop' },\r\n );\r\n\r\n // Internal signals for two-way binding\r\n protected readonly _checkedKeys = signal<any[]>([]);\r\n protected readonly _expandedKeys = signal<string[]>([]);\r\n protected readonly _selectedNode = signal<any>(undefined);\r\n protected readonly _nodes = signal<any[]>([]);\r\n\r\n // Getters for template access\r\n get checkedKeys() {\r\n return this._checkedKeys();\r\n }\r\n get expandedKeys() {\r\n return this._expandedKeys();\r\n }\r\n get selectedNode() {\r\n return this._selectedNode();\r\n }\r\n get nodes() {\r\n return this._nodes();\r\n }\r\n get isNodeSelected() {\r\n return this.isNodeSelectedFn();\r\n }\r\n get beforeDrop() {\r\n return this.beforeDropFn();\r\n }\r\n\r\n constructor() {\r\n // Sync input signals to internal signals\r\n effect(() => {\r\n this._checkedKeys.set(this.checkedKeysInput());\r\n this._expandedKeys.set(this.expandedKeysInput());\r\n this._selectedNode.set(this.selectedNodeInput());\r\n this._nodes.set(this.nodesInput());\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.loadStyle();\r\n }\r\n\r\n private loadStyle() {\r\n if (this.disableTreeStyleLoading) {\r\n return;\r\n }\r\n const loaded$ = this.lazyLoadService.load(\r\n LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'),\r\n );\r\n this.subscriptionService.addOne(loaded$);\r\n }\r\n\r\n private findNode(target: any, nodes: any[]): any {\r\n for (const node of nodes) {\r\n if (node.key === target.id) {\r\n return node;\r\n }\r\n if (node.children) {\r\n const res: any = this.findNode(target, node.children);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onSelectedNodeChange(node: NzTreeNode) {\r\n this._selectedNode.set(node.origin.entity);\r\n if (this.changeCheckboxWithNode()) {\r\n const keys = this._checkedKeys();\r\n let newVal;\r\n if (node.isChecked) {\r\n newVal = keys.filter(x => x !== node.key);\r\n } else {\r\n newVal = [...keys, node.key];\r\n }\r\n this.selectedNodeChange.emit(node);\r\n this._checkedKeys.set(newVal);\r\n this.checkedKeysChange.emit(newVal);\r\n } else {\r\n this.selectedNodeChange.emit(node.origin.entity);\r\n }\r\n }\r\n\r\n onCheckboxChange(event: NzFormatEmitEvent) {\r\n this._checkedKeys.set([...(event.keys as any[])]);\r\n this.checkedKeysChange.emit(event.keys as any[]);\r\n }\r\n\r\n onExpandedKeysChange(event: NzFormatEmitEvent) {\r\n this._expandedKeys.set([...(event.keys as string[])]);\r\n this.expandedKeysChange.emit(event.keys as string[]);\r\n this.nzExpandChange.emit(event);\r\n }\r\n\r\n onDrop(event: NzFormatEmitEvent) {\r\n event.event?.stopPropagation();\r\n event.event?.preventDefault();\r\n\r\n this.dropOver.emit({\r\n ...event,\r\n pos: this.dropPosition,\r\n });\r\n }\r\n\r\n initDropdown(key: string, dropdown: NgbDropdown) {\r\n this.dropdowns[key] = dropdown;\r\n }\r\n\r\n onContextMenuChange(event: NzFormatEmitEvent) {\r\n const dropdownKey = event.node?.key;\r\n\r\n Object.entries(this.dropdowns).forEach(([key, dropdown]) => {\r\n if (key !== dropdownKey && dropdown?.isOpen()) {\r\n dropdown.close();\r\n }\r\n });\r\n if (dropdownKey) {\r\n this.dropdowns[dropdownKey]?.toggle();\r\n }\r\n }\r\n\r\n setSelectedNode(node: any) {\r\n const newSelectedNode = this.findNode(node, this._nodes());\r\n this._selectedNode.set({ ...newSelectedNode });\r\n }\r\n}\r\n","<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable()\"\r\n [nzCheckStrictly]=\"checkStrictly()\"\r\n [nzCheckable]=\"checkable()\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate()?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckboxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation()\"\r\n (nzContextMenu)=\"onContextMenuChange($event)\"\r\n/>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\" />\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-flex align-items-center abp-ellipsis-inline\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate() ? customNodeTemplate()?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n />\r\n </div>\r\n\r\n @if (menu()) {\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu(); context: { $implicit: node }\" />\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"\r\n /></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { TreeComponent } from './components/tree.component';\r\nimport { ExpandedIconTemplateDirective } from './templates/expanded-icon-template.directive';\r\nimport { TreeNodeTemplateDirective } from './templates/tree-node-template.directive';\r\n\r\n@NgModule({\r\n imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\r\n exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\r\n declarations: [],\r\n})\r\nexport class TreeModule {}\r\n","export abstract class BaseNode {\r\n name?: string;\r\n displayName?: string;\r\n\r\n constructor(public id: string, public parentId: string | null) {}\r\n}\r\n\r\nexport class TreeNode<T extends BaseNode> extends BaseNode {\r\n title: string | undefined;\r\n key: string;\r\n icon: string | null = null;\r\n children: TreeNode<T>[] = [];\r\n isLeaf = true;\r\n checked = false;\r\n selected = false;\r\n expanded = false;\r\n selectable = true;\r\n disabled = false;\r\n disableCheckbox = false;\r\n parentNode?: TreeNode<T> | null;\r\n\r\n constructor(public entity: T, private nameResolver = ent => ent.displayName || ent.name) {\r\n super(entity.id, entity.parentId);\r\n this.key = entity.id;\r\n this.title = nameResolver(entity);\r\n }\r\n}\r\n\r\nexport class TreeAdapter<T extends BaseNode = BaseNode> {\r\n private tree: TreeNode<T>[];\r\n\r\n constructor(private list: T[] = []) {\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n getList() {\r\n return this.list;\r\n }\r\n\r\n getTree() {\r\n return this.tree;\r\n }\r\n\r\n handleDrop({ key, parentNode }: TreeNode<T>) {\r\n const index = this.list.findIndex(({ id }) => id === key);\r\n this.list[index].parentId = parentNode ? parentNode.key : null;\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n handleRemove({ key }: TreeNode<T>) {\r\n this.updateTreeFromList(this.list.filter(item => item.id !== key));\r\n }\r\n\r\n handleUpdate({ key, children }: { key: string; children: T[] }) {\r\n /**\r\n * When we need to update a node with new children, first we need to remove any descendant nodes.\r\n * If we remove immediate children and create a new tree, any other descendant nodes will be removed\r\n * and we won't need to recursively remove sub children.\r\n * Then, you simply add back the new children and create a new tree.\r\n */\r\n const listWithDescendantNodesRemoved = this.updateTreeFromList(\r\n this.list.filter(item => item.parentId !== key),\r\n );\r\n this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));\r\n }\r\n\r\n updateTreeFromList(list: T[]) {\r\n this.tree = createTreeFromList(list);\r\n this.list = createListFromTree(this.tree);\r\n return this.list;\r\n }\r\n}\r\n\r\n// UTILITY FUNCTIONS\r\n\r\nfunction createTreeFromList<T extends BaseNode>(list: T[]): TreeNode<T>[] {\r\n const map = createMapFromList(list);\r\n const tree: TreeNode<T>[] = [];\r\n\r\n list.forEach(row => {\r\n const parentId = row.parentId;\r\n const node = map.get(row.id);\r\n if (parentId) {\r\n const parent = map.get(parentId);\r\n if (!parent) return;\r\n parent.children.push(node);\r\n parent.isLeaf = false;\r\n } else {\r\n tree.push(node);\r\n }\r\n });\r\n return tree;\r\n}\r\n\r\nfunction createListFromTree<T extends BaseNode>(tree: TreeNode<T>[], list: T[] = []): T[] {\r\n tree.forEach(node => {\r\n list.push({ ...node.entity, parentId: node.parentId });\r\n if (node.children) createListFromTree(node.children, list);\r\n });\r\n\r\n return list;\r\n}\r\n\r\nfunction createMapFromList<T extends BaseNode>(\r\n list: T[],\r\n map = new Map<string, TreeNode<T>>(),\r\n): Map<string, TreeNode<T>> {\r\n list.forEach(row => map.set(row.id, new TreeNode(row)));\r\n\r\n return map;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-tree.mjs","sources":["../../../../packages/components/tree/src/lib/disable-tree-style-loading.token.ts","../../../../packages/components/tree/src/lib/templates/tree-node-template.directive.ts","../../../../packages/components/tree/src/lib/templates/expanded-icon-template.directive.ts","../../../../packages/components/tree/src/lib/components/tree.component.ts","../../../../packages/components/tree/src/lib/components/tree.component.html","../../../../packages/components/tree/src/lib/tree.module.ts","../../../../packages/components/tree/src/lib/utils/nz-tree-adapter.ts","../../../../packages/components/tree/src/abp-ng.components-tree.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const DISABLE_TREE_STYLE_LOADING_TOKEN = new InjectionToken<boolean>(\r\n 'DISABLE_TREE_STYLE_LOADING_TOKEN',\r\n);\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',\r\n})\r\nexport class TreeNodeTemplateDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',\r\n})\r\nexport class ExpandedIconTemplateDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChild,\r\n inject,\r\n OnInit,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n input,\r\n output,\r\n signal,\r\n effect,\r\n} from '@angular/core';\r\nimport { NgbDropdown, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n NzFormatBeforeDropEvent,\r\n NzFormatEmitEvent,\r\n NzTreeComponent,\r\n NzTreeNode,\r\n} from 'ng-zorro-antd/tree';\r\nimport {\r\n InitDirective,\r\n LazyLoadService,\r\n LOADING_STRATEGY,\r\n SubscriptionService,\r\n} from '@abp/ng.core';\r\nimport { of } from 'rxjs';\r\nimport { DISABLE_TREE_STYLE_LOADING_TOKEN } from '../disable-tree-style-loading.token';\r\nimport { TreeNodeTemplateDirective } from '../templates/tree-node-template.directive';\r\nimport { ExpandedIconTemplateDirective } from '../templates/expanded-icon-template.directive';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/animation';\r\n\r\nexport type DropEvent = NzFormatEmitEvent & { pos: number };\r\n\r\n@Component({\r\n selector: 'abp-tree',\r\n templateUrl: 'tree.component.html',\r\n styleUrls: ['tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [SubscriptionService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n NgTemplateOutlet,\r\n NzTreeComponent,\r\n NgbDropdown,\r\n NgbDropdownMenu,\r\n NgbDropdownToggle,\r\n InitDirective,\r\n NzNoAnimationDirective,\r\n ],\r\n})\r\nexport class TreeComponent implements OnInit {\r\n private lazyLoadService = inject(LazyLoadService);\r\n private subscriptionService = inject(SubscriptionService);\r\n private disableTreeStyleLoading = inject(DISABLE_TREE_STYLE_LOADING_TOKEN, { optional: true });\r\n\r\n dropPosition!: number;\r\n\r\n dropdowns = {} as { [key: string]: NgbDropdown };\r\n\r\n readonly menu = contentChild<TemplateRef<any>>('menu');\r\n readonly customNodeTemplate = contentChild(TreeNodeTemplateDirective);\r\n readonly expandedIconTemplate = contentChild(ExpandedIconTemplateDirective);\r\n readonly checkedKeysChange = output<any>();\r\n readonly expandedKeysChange = output<string[]>();\r\n readonly selectedNodeChange = output<any>();\r\n readonly dropOver = output<DropEvent>();\r\n readonly nzExpandChange = output<NzFormatEmitEvent>();\r\n\r\n // Input signals\r\n readonly noAnimation = input(true);\r\n readonly draggable = input<boolean | undefined>(undefined);\r\n readonly checkable = input<boolean | undefined>(undefined);\r\n readonly checkStrictly = input<boolean | undefined>(undefined);\r\n readonly checkedKeysInput = input<any[]>([], { alias: 'checkedKeys' });\r\n readonly nodesInput = input<any[]>([], { alias: 'nodes' });\r\n readonly expandedKeysInput = input<string[]>([], { alias: 'expandedKeys' });\r\n readonly selectedNodeInput = input<any>(undefined, { alias: 'selectedNode' });\r\n readonly changeCheckboxWithNode = input<boolean | undefined>(undefined);\r\n readonly isNodeSelectedFn = input<(node: any) => boolean>(\r\n node => this._selectedNode()?.id === node.key,\r\n { alias: 'isNodeSelected' },\r\n );\r\n readonly beforeDropFn = input<(event: NzFormatBeforeDropEvent) => any>(\r\n (event: NzFormatBeforeDropEvent) => {\r\n this.dropPosition = event.pos;\r\n return of(false);\r\n },\r\n { alias: 'beforeDrop' },\r\n );\r\n\r\n // Internal signals for two-way binding\r\n protected readonly _checkedKeys = signal<any[]>([]);\r\n protected readonly _expandedKeys = signal<string[]>([]);\r\n protected readonly _selectedNode = signal<any>(undefined);\r\n protected readonly _nodes = signal<any[]>([]);\r\n\r\n // Getters for template access\r\n get checkedKeys() {\r\n return this._checkedKeys();\r\n }\r\n get expandedKeys() {\r\n return this._expandedKeys();\r\n }\r\n get selectedNode() {\r\n return this._selectedNode();\r\n }\r\n get nodes() {\r\n return this._nodes();\r\n }\r\n get isNodeSelected() {\r\n return this.isNodeSelectedFn();\r\n }\r\n get beforeDrop() {\r\n return this.beforeDropFn();\r\n }\r\n\r\n constructor() {\r\n // Sync input signals to internal signals\r\n effect(() => {\r\n this._checkedKeys.set(this.checkedKeysInput());\r\n this._expandedKeys.set(this.expandedKeysInput());\r\n this._selectedNode.set(this.selectedNodeInput());\r\n this._nodes.set(this.nodesInput());\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.loadStyle();\r\n }\r\n\r\n private loadStyle() {\r\n if (this.disableTreeStyleLoading) {\r\n return;\r\n }\r\n const loaded$ = this.lazyLoadService.load(\r\n LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'),\r\n );\r\n this.subscriptionService.addOne(loaded$);\r\n }\r\n\r\n private findNode(target: any, nodes: any[]): any {\r\n for (const node of nodes) {\r\n if (node.key === target.id) {\r\n return node;\r\n }\r\n if (node.children) {\r\n const res: any = this.findNode(target, node.children);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onSelectedNodeChange(node: NzTreeNode) {\r\n this._selectedNode.set(node.origin.entity);\r\n if (this.changeCheckboxWithNode()) {\r\n const keys = this._checkedKeys();\r\n let newVal;\r\n if (node.isChecked) {\r\n newVal = keys.filter(x => x !== node.key);\r\n } else {\r\n newVal = [...keys, node.key];\r\n }\r\n this.selectedNodeChange.emit(node);\r\n this._checkedKeys.set(newVal);\r\n this.checkedKeysChange.emit(newVal);\r\n } else {\r\n this.selectedNodeChange.emit(node.origin.entity);\r\n }\r\n }\r\n\r\n onCheckboxChange(event: NzFormatEmitEvent) {\r\n this._checkedKeys.set([...(event.keys as any[])]);\r\n this.checkedKeysChange.emit(event.keys as any[]);\r\n }\r\n\r\n onExpandedKeysChange(event: NzFormatEmitEvent) {\r\n this._expandedKeys.set([...(event.keys as string[])]);\r\n this.expandedKeysChange.emit(event.keys as string[]);\r\n this.nzExpandChange.emit(event);\r\n }\r\n\r\n onDrop(event: NzFormatEmitEvent) {\r\n event.event?.stopPropagation();\r\n event.event?.preventDefault();\r\n\r\n this.dropOver.emit({\r\n ...event,\r\n pos: this.dropPosition,\r\n });\r\n }\r\n\r\n initDropdown(key: string, dropdown: NgbDropdown) {\r\n this.dropdowns[key] = dropdown;\r\n }\r\n\r\n onContextMenuChange(event: NzFormatEmitEvent) {\r\n const dropdownKey = event.node?.key;\r\n\r\n Object.entries(this.dropdowns).forEach(([key, dropdown]) => {\r\n if (key !== dropdownKey && dropdown?.isOpen()) {\r\n dropdown.close();\r\n }\r\n });\r\n if (dropdownKey) {\r\n this.dropdowns[dropdownKey]?.toggle();\r\n }\r\n }\r\n\r\n setSelectedNode(node: any) {\r\n const newSelectedNode = this.findNode(node, this._nodes());\r\n this._selectedNode.set({ ...newSelectedNode });\r\n }\r\n}\r\n","<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable()\"\r\n [nzCheckStrictly]=\"checkStrictly()\"\r\n [nzCheckable]=\"checkable()\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate()?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckboxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation()\"\r\n (nzContextMenu)=\"onContextMenuChange($event)\"\r\n/>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\" />\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-flex align-items-center abp-ellipsis-inline\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate() ? customNodeTemplate()?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n />\r\n </div>\r\n\r\n @if (menu()) {\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu(); context: { $implicit: node }\" />\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"\r\n /></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { TreeComponent } from './components/tree.component';\r\nimport { ExpandedIconTemplateDirective } from './templates/expanded-icon-template.directive';\r\nimport { TreeNodeTemplateDirective } from './templates/tree-node-template.directive';\r\n\r\n@NgModule({\r\n imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\r\n exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\r\n declarations: [],\r\n})\r\nexport class TreeModule {}\r\n","export abstract class BaseNode {\r\n name?: string;\r\n displayName?: string;\r\n\r\n constructor(public id: string, public parentId: string | null) {}\r\n}\r\n\r\nexport class TreeNode<T extends BaseNode> extends BaseNode {\r\n title: string | undefined;\r\n key: string;\r\n icon: string | null = null;\r\n children: TreeNode<T>[] = [];\r\n isLeaf = true;\r\n checked = false;\r\n selected = false;\r\n expanded = false;\r\n selectable = true;\r\n disabled = false;\r\n disableCheckbox = false;\r\n parentNode?: TreeNode<T> | null;\r\n\r\n constructor(public entity: T, private nameResolver = ent => ent.displayName || ent.name) {\r\n super(entity.id, entity.parentId);\r\n this.key = entity.id;\r\n this.title = nameResolver(entity);\r\n }\r\n}\r\n\r\nexport class TreeAdapter<T extends BaseNode = BaseNode> {\r\n private tree: TreeNode<T>[];\r\n\r\n constructor(private list: T[] = []) {\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n getList() {\r\n return this.list;\r\n }\r\n\r\n getTree() {\r\n return this.tree;\r\n }\r\n\r\n handleDrop({ key, parentNode }: TreeNode<T>) {\r\n const index = this.list.findIndex(({ id }) => id === key);\r\n this.list[index].parentId = parentNode ? parentNode.key : null;\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n handleRemove({ key }: TreeNode<T>) {\r\n this.updateTreeFromList(this.list.filter(item => item.id !== key));\r\n }\r\n\r\n handleUpdate({ key, children }: { key: string; children: T[] }) {\r\n /**\r\n * When we need to update a node with new children, first we need to remove any descendant nodes.\r\n * If we remove immediate children and create a new tree, any other descendant nodes will be removed\r\n * and we won't need to recursively remove sub children.\r\n * Then, you simply add back the new children and create a new tree.\r\n */\r\n const listWithDescendantNodesRemoved = this.updateTreeFromList(\r\n this.list.filter(item => item.parentId !== key),\r\n );\r\n this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));\r\n }\r\n\r\n updateTreeFromList(list: T[]) {\r\n this.tree = createTreeFromList(list);\r\n this.list = createListFromTree(this.tree);\r\n return this.list;\r\n }\r\n}\r\n\r\n// UTILITY FUNCTIONS\r\n\r\nfunction createTreeFromList<T extends BaseNode>(list: T[]): TreeNode<T>[] {\r\n const map = createMapFromList(list);\r\n const tree: TreeNode<T>[] = [];\r\n\r\n list.forEach(row => {\r\n const parentId = row.parentId;\r\n const node = map.get(row.id);\r\n if (parentId) {\r\n const parent = map.get(parentId);\r\n if (!parent) return;\r\n parent.children.push(node);\r\n parent.isLeaf = false;\r\n } else {\r\n tree.push(node);\r\n }\r\n });\r\n return tree;\r\n}\r\n\r\nfunction createListFromTree<T extends BaseNode>(tree: TreeNode<T>[], list: T[] = []): T[] {\r\n tree.forEach(node => {\r\n list.push({ ...node.entity, parentId: node.parentId });\r\n if (node.children) createListFromTree(node.children, list);\r\n });\r\n\r\n return list;\r\n}\r\n\r\nfunction createMapFromList<T extends BaseNode>(\r\n list: T[],\r\n map = new Map<string, TreeNode<T>>(),\r\n): Map<string, TreeNode<T>> {\r\n list.forEach(row => map.set(row.id, new TreeNode(row)));\r\n\r\n return map;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@abp/ng.components",
3
- "version": "10.7.0-rc.3",
3
+ "version": "10.7.0-rc.4",
4
4
  "homepage": "https://abp.io",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/abpframework/abp.git"
8
8
  },
9
9
  "peerDependencies": {
10
- "@abp/ng.core": ">=10.7.0-rc.3",
11
- "@abp/ng.theme.shared": ">=10.7.0-rc.3"
10
+ "@abp/ng.core": ">=10.7.0-rc.4",
11
+ "@abp/ng.theme.shared": ">=10.7.0-rc.4"
12
12
  },
13
13
  "dependencies": {
14
14
  "chart.js": "^3.5.1",
@@ -390,6 +390,8 @@ declare class ExtensibleTableComponent<R = any> implements AfterViewInit, OnDest
390
390
  protected get effectiveRowDetailTemplate(): TemplateRef<RowDetailContext<R>> | undefined;
391
391
  protected get effectiveRowDetailHeight(): string | number;
392
392
  protected readonly effectiveRowDetailRowHeight: _angular_core.Signal<number | ((row?: R, index?: number) => number)>;
393
+ private horizontalScrollOffset;
394
+ private hasPendingHorizontalScrollOffset;
393
395
  hasAtLeastOnePermittedAction: boolean;
394
396
  readonly propList: EntityPropList<R>;
395
397
  readonly actionList: EntityActionList<R>;
@@ -412,6 +414,9 @@ declare class ExtensibleTableComponent<R = any> implements AfterViewInit, OnDest
412
414
  getTableHeight(): string;
413
415
  toggleExpandRow(row: R): void;
414
416
  ngAfterViewInit(): void;
417
+ private getBodyElement;
418
+ private rememberHorizontalScrollOffset;
419
+ private restoreHorizontalScrollOffset;
415
420
  ngOnDestroy(): void;
416
421
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ExtensibleTableComponent<any>, never>;
417
422
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ExtensibleTableComponent<any>, "abp-extensible-table", ["abpExtensibleTable"], { "actionsTextInput": { "alias": "actionsText"; "required": false; "isSignal": true; }; "dataInput": { "alias": "data"; "required": false; "isSignal": true; }; "list": { "alias": "list"; "required": true; "isSignal": true; }; "recordsTotal": { "alias": "recordsTotal"; "required": true; "isSignal": true; }; "actionsColumnWidthInput": { "alias": "actionsColumnWidth"; "required": false; "isSignal": true; }; "actionsTemplate": { "alias": "actionsTemplate"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selectionTypeInput": { "alias": "selectionType"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "infiniteScroll": { "alias": "infiniteScroll"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "scrollThreshold": { "alias": "scrollThreshold"; "required": false; "isSignal": true; }; "tableHeight": { "alias": "tableHeight"; "required": false; "isSignal": true; }; "rowDetailTemplate": { "alias": "rowDetailTemplate"; "required": false; "isSignal": true; }; "rowDetailHeight": { "alias": "rowDetailHeight"; "required": false; "isSignal": true; }; }, { "tableActivate": "tableActivate"; "selectionChange": "selectionChange"; "loadMore": "loadMore"; "rowDetailToggle": "rowDetailToggle"; }, ["rowDetailComponent"], never, true, never>;