@alauda-fe/dynamic-plugin-shared 0.0.4-alpha.11 → 0.0.4-alpha.12
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,15 +1,15 @@
|
|
|
1
1
|
import * as i1 from '@alauda/ui';
|
|
2
|
-
import { rgbColor, ThemeService, coerceAttrBoolean, FormItemControlDirective, observeResizeOn, MessageService, NotificationService, DIALOG_DATA, DialogModule, ButtonModule, InputModule, IconModule, FormModule, MultiSelectComponent, handlePixel, isTemplateRef, ThemePickerPipe, TooltipModule, TooltipType, ButtonComponent, IconComponent, TagComponent, TooltipDirective, DateNavRange, InputGroupComponent, InputSuffixDirective, InputComponent, DateRangePickerPanelComponent, TagType, TagModule, TooltipComponent, BaseTooltip, TooltipTrigger, DialogService, INPUT_GROUP_MODULE, SelectModule, FORM_MODULE, DropdownModule, CheckboxModule, CardComponent, TOOLTIP_MODULE, CheckboxComponent, BackTopComponent, SortDirective, SortHeaderComponent, PaginatorComponent, TABLE_MODULE, DROPDOWN_MODULE, DialogRef, DIALOG_MODULE, CARD_MODULE, CHECKBOX_MODULE, TabsModule } from '@alauda/ui';
|
|
3
|
-
import { last, cloneDeep, has, unset, get, isBoolean, sortBy, set, trim, isFunction, range, debounce, uniq, identity, first, isString, isEmpty, isObjectLike } from 'lodash-es';
|
|
2
|
+
import { rgbColor, ThemeService, coerceAttrBoolean, FormItemControlDirective, observeResizeOn, MessageService, NotificationService, DIALOG_DATA, DialogModule, ButtonModule, InputModule, IconModule, FormModule, MultiSelectComponent, handlePixel, isTemplateRef, ThemePickerPipe, TooltipModule, TooltipType, ButtonComponent, IconComponent, TagComponent, TooltipDirective, DateNavRange, InputGroupComponent, InputSuffixDirective, InputComponent, DateRangePickerPanelComponent, TagType, TagModule, TooltipComponent, BaseTooltip, TooltipTrigger, DialogService, INPUT_GROUP_MODULE, SelectModule, FORM_MODULE, DropdownModule, CheckboxModule, CardComponent, TOOLTIP_MODULE, CheckboxComponent, BackTopComponent, SortDirective, SortHeaderComponent, PaginatorComponent, TABLE_MODULE, DROPDOWN_MODULE, DialogRef, DIALOG_MODULE, CARD_MODULE, CHECKBOX_MODULE, TabsModule, DialogSize, MessageType, NOTIFICATION_DEFAULT_CONFIG } from '@alauda/ui';
|
|
3
|
+
import { last, cloneDeep, has, unset, get, isBoolean, sortBy, set, trim, isFunction, range, debounce, uniq, identity, first, isString, isEmpty, isObjectLike, throttle, min, clamp, round, add, subtract } from 'lodash-es';
|
|
4
4
|
import * as i3 from '@alauda-fe/dynamic-plugin-sdk';
|
|
5
|
-
import { parseBase64Type, isBlank, publishRef, TOKEN_BASE_DOMAIN, stringify as stringify$1, isEqual, TimeService, TranslateService, isZhLang, FALLBACK_LANGUAGE, TranslatePipe, ObservableInput, FeatureGateService, FieldNotAvailablePipe, ValueHook, LoadingMaskComponent, PurePipe, StandardTimePipe, RelativeTimePipe, skipError, CURR_ESCAPE_DEACTIVATE_GUARD, ESCAPE_DEACTIVATE_GUARD, parseAll, FIELD_NOT_AVAILABLE_PLACEHOLDER, noop, SafePipe, WatchEvent, K8sUtilService, NAMESPACE as NAMESPACE$1, isFieldNotAvailable, K8S_UTIL_PIPES_MODULE, ResourceSelectorPopupService, ProjectService, ConfigurableField, API_GATEWAY as API_GATEWAY$1, ClusterListComponent, K8sApiService, TRANSLATE_MODULE, KubernetesSchemaService } from '@alauda-fe/dynamic-plugin-sdk';
|
|
6
|
-
import { Observable, finalize, map, startWith, catchError, of, isObservable, switchMap, animationFrameScheduler, fromEvent, auditTime, Subject, takeUntil, distinctUntilChanged, combineLatest, filter, debounceTime, take, merge, pairwise, tap, BehaviorSubject, from, timer, ReplaySubject, delay, withLatestFrom, scan, takeWhile, concat, exhaustMap, EMPTY as EMPTY$1, interval, NEVER, switchScan, shareReplay, mapTo } from 'rxjs';
|
|
5
|
+
import { parseBase64Type, isBlank, publishRef, TOKEN_BASE_DOMAIN, stringify as stringify$1, isEqual, TimeService, TranslateService, isZhLang, FALLBACK_LANGUAGE, TranslatePipe, ObservableInput, FeatureGateService, FieldNotAvailablePipe, ValueHook, LoadingMaskComponent, PurePipe, StandardTimePipe, RelativeTimePipe, skipError, CURR_ESCAPE_DEACTIVATE_GUARD, ESCAPE_DEACTIVATE_GUARD, parseAll, FIELD_NOT_AVAILABLE_PLACEHOLDER, noop, SafePipe, WatchEvent, K8sUtilService, NAMESPACE as NAMESPACE$1, isFieldNotAvailable, K8S_UTIL_PIPES_MODULE, ResourceSelectorPopupService, ProjectService, ConfigurableField, API_GATEWAY as API_GATEWAY$1, ClusterListComponent, K8sApiService, TRANSLATE_MODULE, KubernetesSchemaService, NOTIFY_DURATION_HEADER as NOTIFY_DURATION_HEADER$1, EMPTY as EMPTY$2, FALSE as FALSE$1, isMac } from '@alauda-fe/dynamic-plugin-sdk';
|
|
6
|
+
import { Observable, finalize, map, startWith, catchError, of, isObservable, switchMap, animationFrameScheduler, fromEvent, auditTime, Subject, takeUntil, distinctUntilChanged, combineLatest, filter, debounceTime, take, merge, pairwise, tap, BehaviorSubject, from, timer, ReplaySubject, delay, withLatestFrom, scan, takeWhile, concat, exhaustMap, EMPTY as EMPTY$1, interval, NEVER, switchScan, shareReplay, mapTo, throwError } from 'rxjs';
|
|
7
7
|
import { ActivatedRoute, Router, RouterLink } from '@angular/router';
|
|
8
|
-
import { dissocPath, converge, mergeAll, mergeDeepRight, path, assocPath, identity as identity$1, equals } from 'ramda';
|
|
8
|
+
import { dissocPath, converge, mergeAll, mergeDeepRight, path, assocPath, identity as identity$1, equals, mergeRight } from 'ramda';
|
|
9
9
|
import { compare } from 'compare-versions';
|
|
10
10
|
export { compareVersions as compareVersionToNum, satisfies as satisfiesVersion } from 'compare-versions';
|
|
11
11
|
import * as i0 from '@angular/core';
|
|
12
|
-
import { inject, Directive, NgZone, Injectable, IterableDiffers, isDevMode, Pipe, ChangeDetectorRef, Input, ViewContainerRef, TemplateRef, ɵstringify as _stringify, ElementRef, Injector, HostBinding, ChangeDetectionStrategy, Component, EventEmitter, Output, HostListener, booleanAttribute, forwardRef, ContentChild, Renderer2, ViewEncapsulation, ViewChild, ApplicationRef, ViewChildren, ContentChildren, InjectionToken, input,
|
|
12
|
+
import { inject, Directive, NgZone, Injectable, IterableDiffers, isDevMode, Pipe, ChangeDetectorRef, Input, ViewContainerRef, TemplateRef, ɵstringify as _stringify, ElementRef, Injector, HostBinding, ChangeDetectionStrategy, Component, EventEmitter, Output, HostListener, booleanAttribute, forwardRef, ContentChild, Renderer2, ViewEncapsulation, ViewChild, ApplicationRef, ViewChildren, ContentChildren, InjectionToken, input, computed, numberAttribute } from '@angular/core';
|
|
13
13
|
import parser from 'cron-parser';
|
|
14
14
|
import dayjs from 'dayjs';
|
|
15
15
|
import { marked } from 'marked';
|
|
@@ -26,7 +26,7 @@ import { CdkScrollable, ScrollingModule, CdkVirtualScrollViewport } from '@angul
|
|
|
26
26
|
import { ScrollDispatcher, Overlay } from '@angular/cdk/overlay';
|
|
27
27
|
import { decode, encode } from 'ab64';
|
|
28
28
|
import { DomPortalOutlet, ComponentPortal } from '@angular/cdk/portal';
|
|
29
|
-
import { yamlWriteOptions, createActions, MonacoEditorConfig, viewActions, readonlyOptions, CodeEditorComponent, yamlReadOptions, MonacoLanguageService, yamlWriteMinimapOptions, updateActions } from '@alauda/code-editor';
|
|
29
|
+
import { yamlWriteOptions, createActions, MonacoEditorConfig, viewActions, readonlyOptions, CodeEditorComponent, yamlReadMinimapOptions, yamlReadOptions, MonacoLanguageService, yamlWriteMinimapOptions, updateActions } from '@alauda/code-editor';
|
|
30
30
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
31
31
|
import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
32
32
|
import { BaseResourceFormComponent } from 'ng-resource-form-util';
|
|
@@ -10927,9 +10927,10 @@ class AclTableVirtualComponent {
|
|
|
10927
10927
|
this.height = '400px';
|
|
10928
10928
|
this.trackBy = (index) => index;
|
|
10929
10929
|
this.placeholderActive = false;
|
|
10930
|
+
this.checked$ = new Subject();
|
|
10930
10931
|
this.destroy$ = new Subject();
|
|
10931
10932
|
}
|
|
10932
|
-
|
|
10933
|
+
ngAfterViewChecked() {
|
|
10933
10934
|
// 如果有虚拟滚动视口,优先监听其滚动;否则退回到外层容器滚动。
|
|
10934
10935
|
const container = this.scrollContainerRef?.nativeElement;
|
|
10935
10936
|
const viewportEl = this.viewport?.elementRef?.nativeElement ?? null;
|
|
@@ -10937,17 +10938,26 @@ class AclTableVirtualComponent {
|
|
|
10937
10938
|
fromEvent(viewportEl ?? container, 'scroll');
|
|
10938
10939
|
const containerScrolled$ = fromEvent(container, 'scroll');
|
|
10939
10940
|
const resized$ = fromEvent(window, 'resize');
|
|
10941
|
+
this.checked$.next();
|
|
10940
10942
|
merge(viewportScrolled$, containerScrolled$, resized$)
|
|
10941
|
-
.pipe(startWith(null), takeUntil(this.
|
|
10943
|
+
.pipe(startWith(null), takeUntil(this.checked$))
|
|
10942
10944
|
.subscribe(() => {
|
|
10943
10945
|
this.mutateVerticalScroll();
|
|
10944
10946
|
this.mutateHorizontalScroll();
|
|
10947
|
+
if (this.headerRow && viewportEl) {
|
|
10948
|
+
this.headerRow.nativeElement.scrollLeft = viewportEl.scrollLeft;
|
|
10949
|
+
}
|
|
10945
10950
|
});
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
this.
|
|
10951
|
+
}
|
|
10952
|
+
onHeaderRowScroll(ev) {
|
|
10953
|
+
if (!this.viewport) {
|
|
10954
|
+
return;
|
|
10955
|
+
}
|
|
10956
|
+
this.viewport.elementRef.nativeElement.scrollLeft = ev.target.scrollLeft;
|
|
10949
10957
|
}
|
|
10950
10958
|
ngOnDestroy() {
|
|
10959
|
+
this.checked$.next();
|
|
10960
|
+
this.checked$.complete();
|
|
10951
10961
|
this.destroy$.next();
|
|
10952
10962
|
this.destroy$.complete();
|
|
10953
10963
|
}
|
|
@@ -10981,13 +10991,17 @@ class AclTableVirtualComponent {
|
|
|
10981
10991
|
this.placeClass(scrollLeft < scrollDisX && scrollDisX > 0, 'aui-table__scroll-shadow--before-end');
|
|
10982
10992
|
}
|
|
10983
10993
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AclTableVirtualComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10984
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: AclTableVirtualComponent, isStandalone: true, selector: "acl-table-virtual", inputs: { dataSource: "dataSource", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", height: "height", trackBy: "trackBy", placeholderActive: "placeholderActive" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: AclTableVirtualHeaderDefDirective, descendants: true, read: TemplateRef }, { propertyName: "rowTemplate", first: true, predicate: (AclTableVirtualRowDefDirective), descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: AclTableVirtualPlaceholderDefDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "scrollContainerRef", first: true, predicate: ["scrollContainer"], descendants: true, static: true }], exportAs: ["aclTableVirtual"], ngImport: i0, template: `
|
|
10994
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: AclTableVirtualComponent, isStandalone: true, selector: "acl-table-virtual", inputs: { dataSource: "dataSource", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", height: "height", trackBy: "trackBy", placeholderActive: "placeholderActive" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: AclTableVirtualHeaderDefDirective, descendants: true, read: TemplateRef }, { propertyName: "rowTemplate", first: true, predicate: (AclTableVirtualRowDefDirective), descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: AclTableVirtualPlaceholderDefDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "scrollContainerRef", first: true, predicate: ["scrollContainer"], descendants: true, static: true }, { propertyName: "headerRow", first: true, predicate: ["headerRow"], descendants: true }], exportAs: ["aclTableVirtual"], ngImport: i0, template: `
|
|
10985
10995
|
<div
|
|
10986
10996
|
#scrollContainer
|
|
10987
10997
|
class="aui-table aui-table__scroll-shadow"
|
|
10988
10998
|
>
|
|
10989
10999
|
@if (headerTemplate) {
|
|
10990
|
-
<div
|
|
11000
|
+
<div
|
|
11001
|
+
class="aui-table__header-row"
|
|
11002
|
+
#headerRow
|
|
11003
|
+
(scroll)="onHeaderRowScroll($event)"
|
|
11004
|
+
>
|
|
10991
11005
|
<ng-template [ngTemplateOutlet]="headerTemplate"></ng-template>
|
|
10992
11006
|
</div>
|
|
10993
11007
|
}
|
|
@@ -11026,7 +11040,7 @@ class AclTableVirtualComponent {
|
|
|
11026
11040
|
</cdk-virtual-scroll-viewport>
|
|
11027
11041
|
}
|
|
11028
11042
|
</div>
|
|
11029
|
-
`, isInline: true, styles: [":host{display:block}.aui-table__body-viewport{display:block}cdk-virtual-scroll-viewport::-webkit-scrollbar{width:8px;height:4px}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}cdk-virtual-scroll-viewport::-webkit-scrollbar-corner{background-color:transparent}.aui-table{position:relative;display:block;padding:0 12px 12px}.aui-table{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text))}.aui-table{background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.aui-table__row,.aui-table__header-row{display:flex;align-items:center}.aui-table__row.hasPanel,.aui-table__header-row.hasPanel{flex-wrap:wrap}.aui-table__header-row+.aui-table__row{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row{position:relative;border-width:1px;border-style:solid;border-color:rgb(var(--aui-color-n-8));border-bottom-width:0;background-color:rgb(var(--aui-color-n-10));padding:0 9px;min-height:58px;box-sizing:content-box}.aui-table__row:first-child{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row:last-of-type{border-bottom-width:1px;min-height:58px;border-bottom-left-radius:var(--aui-border-radius-l);border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__row.isDisabled:before{content:\"\";z-index:2;position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgb(var(--aui-color-n-10));opacity:.7;cursor:not-allowed}.aui-table__header-row{background-color:rgb(var(--aui-color-n-9));padding:0 10px}.aui-table__cell,.aui-table__header-cell{display:flex;align-items:center;flex:1;position:relative}.aui-table__cell{padding:15px 10px;background-color:rgb(var(--aui-color-n-10));overflow:hidden}.aui-table__cell--column{flex-direction:column;justify-content:center;align-items:flex-start}.aui-table__header-cell{padding:12px 10px;font-weight:var(--aui-font-weight-bold);background-color:rgb(var(--aui-color-n-9))}.aui-table__column-expand-button{display:flex;align-items:center;max-width:calc(10px * 2 + var(--aui-icon-size-m))}.aui-table__column-expand-button.aui-table__cell{height:58px}.aui-table__column-expand-button .aui-expand-button{display:inline-flex;justify-content:center;align-items:center;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6));border-radius:50%;border:none;cursor:pointer;transition:transform .1s ease-in-out}.aui-table__column-expand-button .aui-expand-button aui-icon{display:flex;justify-content:center;align-items:center;width:var(--aui-icon-size-s);height:var(--aui-icon-size-s);font-size:var(--aui-icon-size-s)}.aui-table__column-expand-button .aui-expand-button:hover{background-color:rgb(var(--aui-color-p-7))}.aui-table__column-expand-button .aui-expand-button:active{background-color:rgb(var(--aui-color-p-5))}.aui-table__column-expand-button .aui-expand-button.isExpanded{transform:rotate(90deg);color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-table__column-expand-button .aui-expand-button.isExpanded:hover{background-color:rgb(var(--aui-color-p-1))}.aui-table__column-expand-button .aui-expand-button.isExpanded:active{background-color:rgb(var(--aui-color-p-0))}.aui-table__column-expand-button .aui-expand-button[disabled],.aui-table__column-expand-button .aui-expand-button.isExpanded[disabled]{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-table__column-expand-panel{margin-top:-6px}.aui-table__column-expand-panel.aui-table__header-cell{display:none}.aui-table__column-expand-panel.aui-table__cell{width:100%;flex-shrink:0;flex-basis:100%;padding:0 10px;overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel{width:100%;border-radius:var(--aui-border-radius-l);overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel-content.hasBackground{padding:16px;background-color:rgb(var(--aui-color-n-9))}.aui-table-column-resizable__handle{display:block;position:absolute;top:0;bottom:0;right:0;width:5px;color:rgb(var(--aui-color-n-7));cursor:col-resize}.aui-table-column-resizable__handle:after{content:\"\";display:block;margin:12px 0 12px auto;width:1px;height:calc(100% - 24px);background-color:currentcolor}.aui-table-column-resizable__handle:hover{color:rgb(var(--aui-color-primary))}.aui-table-column-resizable__mark-line{display:block;position:absolute;top:0;bottom:0;width:1px;background-color:rgb(var(--aui-color-primary));z-index:9999;cursor:col-resize}.aui-table-column-resizable__overlay{display:block;position:absolute;inset:0;z-index:9000;cursor:col-resize}.aui-table__scroll-wrapper{position:relative;display:flex;flex-direction:column;max-height:100%;overflow:hidden;background-color:rgb(var(--aui-color-n-9));padding:0 12px 12px;border-radius:var(--aui-border-radius-l)}.aui-table__scroll-wrapper::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-wrapper::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-wrapper .aui-table{padding:0;border-radius:0}.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableTopShadow:before,.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableBottomShadow:after{transform:none;width:100%;left:0}.aui-table__scroll-shadow.aui-table{overflow:auto}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-shadow.hasTableTopShadow:before{content:\"\";position:sticky;display:block;height:16px;margin:-16px -12px 0;z-index:99;top:28px}:root .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow.hasTableBottomShadow:after{content:\"\";position:sticky;display:block;height:16px;transform:translate3d(0,12px,0);z-index:99;bottom:0;margin:-16px -12px 0}:root .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}.aui-table__scroll-shadow .aui-table__header-row{margin:0;padding:0;align-items:stretch}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:first-of-type{padding-left:20px}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:last-of-type{padding-right:20px}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:first-of-type{border-top-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:last-of-type{border-top-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row{border:none;padding:0;align-items:stretch;min-height:59px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell{border-width:1px 0;border-style:solid;border-color:rgb(var(--aui-color-n-8))}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:first-of-type{border-left-width:1px;padding-left:19px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:last-of-type{border-right-width:1px;padding-right:19px}.aui-table__scroll-shadow .aui-table__row:last-child{min-height:60px}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:first-of-type{border-bottom-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:last-of-type{border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:not(:last-child) .aui-table__cell{border-bottom-width:0}.aui-table__scroll-shadow--has-scroll aui-table-header-cell.aui-table-sticky-border-elem-left .aui-table-column-resizable__handle{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-column-resizable__mark-line.inStickyBorderElemLeft{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{position:absolute;top:0;bottom:-1px;width:20px;transition:box-shadow .3s;content:\"\";pointer-events:none}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{position:absolute;top:0;bottom:-1px;content:\"\";background:linear-gradient(to bottom,rgb(var(--aui-color-n-7)),rgb(var(--aui-color-n-7)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left{padding-right:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after{right:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before{right:10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right{padding-left:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{left:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{left:10px}:root .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}:root .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i1$2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1$2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1$2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11043
|
+
`, isInline: true, styles: ["acl-table-virtual{display:block;max-width:100%;overflow:hidden}.aui-table__body-viewport{display:block}cdk-virtual-scroll-viewport::-webkit-scrollbar{width:8px;height:4px}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}cdk-virtual-scroll-viewport::-webkit-scrollbar-corner{background-color:transparent}.aui-table{position:relative;display:block;padding:0 12px 12px}.aui-table{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text))}.aui-table{background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.aui-table__row,.aui-table__header-row{display:flex;align-items:center;background-color:rgb(var(--aui-color-n-9));padding:0 10px;overflow:scroll}.aui-table__row.hasPanel,.aui-table__header-row.hasPanel{flex-wrap:wrap}.aui-table__header-row+.aui-table__row{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row{position:relative;border-width:1px;border-style:solid;border-color:rgb(var(--aui-color-n-8));border-bottom-width:0;background-color:rgb(var(--aui-color-n-10));padding:0 9px;min-height:58px;box-sizing:content-box}.aui-table__row:first-child{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row:last-of-type{border-bottom-width:1px;min-height:58px;border-bottom-left-radius:var(--aui-border-radius-l);border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__row.isDisabled:before{content:\"\";z-index:2;position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgb(var(--aui-color-n-10));opacity:.7;cursor:not-allowed}.aui-table__cell,.aui-table__header-cell{display:flex;align-items:center;flex:1;position:relative}.aui-table__cell{padding:15px 10px;background-color:rgb(var(--aui-color-n-10));overflow:hidden}.aui-table__cell--column{flex-direction:column;justify-content:center;align-items:flex-start}.aui-table__header-cell{padding:12px 10px;font-weight:var(--aui-font-weight-bold);background-color:rgb(var(--aui-color-n-9))}.aui-table__column-expand-button{display:flex;align-items:center;max-width:calc(10px * 2 + var(--aui-icon-size-m))}.aui-table__column-expand-button.aui-table__cell{height:58px}.aui-table__column-expand-button .aui-expand-button{display:inline-flex;justify-content:center;align-items:center;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6));border-radius:50%;border:none;cursor:pointer;transition:transform .1s ease-in-out}.aui-table__column-expand-button .aui-expand-button aui-icon{display:flex;justify-content:center;align-items:center;width:var(--aui-icon-size-s);height:var(--aui-icon-size-s);font-size:var(--aui-icon-size-s)}.aui-table__column-expand-button .aui-expand-button:hover{background-color:rgb(var(--aui-color-p-7))}.aui-table__column-expand-button .aui-expand-button:active{background-color:rgb(var(--aui-color-p-5))}.aui-table__column-expand-button .aui-expand-button.isExpanded{transform:rotate(90deg);color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-table__column-expand-button .aui-expand-button.isExpanded:hover{background-color:rgb(var(--aui-color-p-1))}.aui-table__column-expand-button .aui-expand-button.isExpanded:active{background-color:rgb(var(--aui-color-p-0))}.aui-table__column-expand-button .aui-expand-button[disabled],.aui-table__column-expand-button .aui-expand-button.isExpanded[disabled]{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-table__column-expand-panel{margin-top:-6px}.aui-table__column-expand-panel.aui-table__header-cell{display:none}.aui-table__column-expand-panel.aui-table__cell{width:100%;flex-shrink:0;flex-basis:100%;padding:0 10px;overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel{width:100%;border-radius:var(--aui-border-radius-l);overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel-content.hasBackground{padding:16px;background-color:rgb(var(--aui-color-n-9))}.aui-table-column-resizable__handle{display:block;position:absolute;top:0;bottom:0;right:0;width:5px;color:rgb(var(--aui-color-n-7));cursor:col-resize}.aui-table-column-resizable__handle:after{content:\"\";display:block;margin:12px 0 12px auto;width:1px;height:calc(100% - 24px);background-color:currentcolor}.aui-table-column-resizable__handle:hover{color:rgb(var(--aui-color-primary))}.aui-table-column-resizable__mark-line{display:block;position:absolute;top:0;bottom:0;width:1px;background-color:rgb(var(--aui-color-primary));z-index:9999;cursor:col-resize}.aui-table-column-resizable__overlay{display:block;position:absolute;inset:0;z-index:9000;cursor:col-resize}.aui-table__scroll-wrapper{position:relative;display:flex;flex-direction:column;max-height:100%;overflow:hidden;background-color:rgb(var(--aui-color-n-9));padding:0 12px 12px;border-radius:var(--aui-border-radius-l)}.aui-table__scroll-wrapper::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-wrapper::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-wrapper .aui-table{padding:0;border-radius:0}.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableTopShadow:before,.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableBottomShadow:after{transform:none;width:100%;left:0}.aui-table__scroll-shadow.aui-table{overflow:auto}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-shadow.hasTableTopShadow:before{content:\"\";position:sticky;display:block;height:16px;margin:-16px -12px 0;z-index:99;top:28px}:root .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow.hasTableBottomShadow:after{content:\"\";position:sticky;display:block;height:16px;transform:translate3d(0,12px,0);z-index:99;bottom:0;margin:-16px -12px 0}:root .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}.aui-table__scroll-shadow .aui-table__header-row{margin:0;padding:0;align-items:stretch}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:first-of-type{padding-left:20px}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:last-of-type{padding-right:20px}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:first-of-type{border-top-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:last-of-type{border-top-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row{border:none;padding:0;align-items:stretch;min-height:59px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell{border-width:1px 0;border-style:solid;border-color:rgb(var(--aui-color-n-8))}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:first-of-type{border-left-width:1px;padding-left:19px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:last-of-type{border-right-width:1px;padding-right:19px}.aui-table__scroll-shadow .aui-table__row:last-child{min-height:60px}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:first-of-type{border-bottom-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:last-of-type{border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:not(:last-child) .aui-table__cell{border-bottom-width:0}.aui-table__scroll-shadow--has-scroll aui-table-header-cell.aui-table-sticky-border-elem-left .aui-table-column-resizable__handle{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-column-resizable__mark-line.inStickyBorderElemLeft{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{position:absolute;top:0;bottom:-1px;width:20px;transition:box-shadow .3s;content:\"\";pointer-events:none}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{position:absolute;top:0;bottom:-1px;content:\"\";background:linear-gradient(to bottom,rgb(var(--aui-color-n-7)),rgb(var(--aui-color-n-7)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left{padding-right:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after{right:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before{right:10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right{padding-left:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{left:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{left:10px}:root .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}:root .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i1$2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1$2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1$2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11030
11044
|
}
|
|
11031
11045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AclTableVirtualComponent, decorators: [{
|
|
11032
11046
|
type: Component,
|
|
@@ -11036,7 +11050,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
11036
11050
|
class="aui-table aui-table__scroll-shadow"
|
|
11037
11051
|
>
|
|
11038
11052
|
@if (headerTemplate) {
|
|
11039
|
-
<div
|
|
11053
|
+
<div
|
|
11054
|
+
class="aui-table__header-row"
|
|
11055
|
+
#headerRow
|
|
11056
|
+
(scroll)="onHeaderRowScroll($event)"
|
|
11057
|
+
>
|
|
11040
11058
|
<ng-template [ngTemplateOutlet]="headerTemplate"></ng-template>
|
|
11041
11059
|
</div>
|
|
11042
11060
|
}
|
|
@@ -11075,7 +11093,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
11075
11093
|
</cdk-virtual-scroll-viewport>
|
|
11076
11094
|
}
|
|
11077
11095
|
</div>
|
|
11078
|
-
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ScrollingModule, NgTemplateOutlet], styles: [":host{display:block}.aui-table__body-viewport{display:block}cdk-virtual-scroll-viewport::-webkit-scrollbar{width:8px;height:4px}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}cdk-virtual-scroll-viewport::-webkit-scrollbar-corner{background-color:transparent}.aui-table{position:relative;display:block;padding:0 12px 12px}.aui-table{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text))}.aui-table{background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.aui-table__row,.aui-table__header-row{display:flex;align-items:center}.aui-table__row.hasPanel,.aui-table__header-row.hasPanel{flex-wrap:wrap}.aui-table__header-row+.aui-table__row{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row{position:relative;border-width:1px;border-style:solid;border-color:rgb(var(--aui-color-n-8));border-bottom-width:0;background-color:rgb(var(--aui-color-n-10));padding:0 9px;min-height:58px;box-sizing:content-box}.aui-table__row:first-child{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row:last-of-type{border-bottom-width:1px;min-height:58px;border-bottom-left-radius:var(--aui-border-radius-l);border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__row.isDisabled:before{content:\"\";z-index:2;position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgb(var(--aui-color-n-10));opacity:.7;cursor:not-allowed}.aui-table__header-row{background-color:rgb(var(--aui-color-n-9));padding:0 10px}.aui-table__cell,.aui-table__header-cell{display:flex;align-items:center;flex:1;position:relative}.aui-table__cell{padding:15px 10px;background-color:rgb(var(--aui-color-n-10));overflow:hidden}.aui-table__cell--column{flex-direction:column;justify-content:center;align-items:flex-start}.aui-table__header-cell{padding:12px 10px;font-weight:var(--aui-font-weight-bold);background-color:rgb(var(--aui-color-n-9))}.aui-table__column-expand-button{display:flex;align-items:center;max-width:calc(10px * 2 + var(--aui-icon-size-m))}.aui-table__column-expand-button.aui-table__cell{height:58px}.aui-table__column-expand-button .aui-expand-button{display:inline-flex;justify-content:center;align-items:center;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6));border-radius:50%;border:none;cursor:pointer;transition:transform .1s ease-in-out}.aui-table__column-expand-button .aui-expand-button aui-icon{display:flex;justify-content:center;align-items:center;width:var(--aui-icon-size-s);height:var(--aui-icon-size-s);font-size:var(--aui-icon-size-s)}.aui-table__column-expand-button .aui-expand-button:hover{background-color:rgb(var(--aui-color-p-7))}.aui-table__column-expand-button .aui-expand-button:active{background-color:rgb(var(--aui-color-p-5))}.aui-table__column-expand-button .aui-expand-button.isExpanded{transform:rotate(90deg);color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-table__column-expand-button .aui-expand-button.isExpanded:hover{background-color:rgb(var(--aui-color-p-1))}.aui-table__column-expand-button .aui-expand-button.isExpanded:active{background-color:rgb(var(--aui-color-p-0))}.aui-table__column-expand-button .aui-expand-button[disabled],.aui-table__column-expand-button .aui-expand-button.isExpanded[disabled]{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-table__column-expand-panel{margin-top:-6px}.aui-table__column-expand-panel.aui-table__header-cell{display:none}.aui-table__column-expand-panel.aui-table__cell{width:100%;flex-shrink:0;flex-basis:100%;padding:0 10px;overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel{width:100%;border-radius:var(--aui-border-radius-l);overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel-content.hasBackground{padding:16px;background-color:rgb(var(--aui-color-n-9))}.aui-table-column-resizable__handle{display:block;position:absolute;top:0;bottom:0;right:0;width:5px;color:rgb(var(--aui-color-n-7));cursor:col-resize}.aui-table-column-resizable__handle:after{content:\"\";display:block;margin:12px 0 12px auto;width:1px;height:calc(100% - 24px);background-color:currentcolor}.aui-table-column-resizable__handle:hover{color:rgb(var(--aui-color-primary))}.aui-table-column-resizable__mark-line{display:block;position:absolute;top:0;bottom:0;width:1px;background-color:rgb(var(--aui-color-primary));z-index:9999;cursor:col-resize}.aui-table-column-resizable__overlay{display:block;position:absolute;inset:0;z-index:9000;cursor:col-resize}.aui-table__scroll-wrapper{position:relative;display:flex;flex-direction:column;max-height:100%;overflow:hidden;background-color:rgb(var(--aui-color-n-9));padding:0 12px 12px;border-radius:var(--aui-border-radius-l)}.aui-table__scroll-wrapper::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-wrapper::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-wrapper .aui-table{padding:0;border-radius:0}.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableTopShadow:before,.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableBottomShadow:after{transform:none;width:100%;left:0}.aui-table__scroll-shadow.aui-table{overflow:auto}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-shadow.hasTableTopShadow:before{content:\"\";position:sticky;display:block;height:16px;margin:-16px -12px 0;z-index:99;top:28px}:root .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow.hasTableBottomShadow:after{content:\"\";position:sticky;display:block;height:16px;transform:translate3d(0,12px,0);z-index:99;bottom:0;margin:-16px -12px 0}:root .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}.aui-table__scroll-shadow .aui-table__header-row{margin:0;padding:0;align-items:stretch}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:first-of-type{padding-left:20px}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:last-of-type{padding-right:20px}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:first-of-type{border-top-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:last-of-type{border-top-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row{border:none;padding:0;align-items:stretch;min-height:59px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell{border-width:1px 0;border-style:solid;border-color:rgb(var(--aui-color-n-8))}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:first-of-type{border-left-width:1px;padding-left:19px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:last-of-type{border-right-width:1px;padding-right:19px}.aui-table__scroll-shadow .aui-table__row:last-child{min-height:60px}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:first-of-type{border-bottom-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:last-of-type{border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:not(:last-child) .aui-table__cell{border-bottom-width:0}.aui-table__scroll-shadow--has-scroll aui-table-header-cell.aui-table-sticky-border-elem-left .aui-table-column-resizable__handle{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-column-resizable__mark-line.inStickyBorderElemLeft{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{position:absolute;top:0;bottom:-1px;width:20px;transition:box-shadow .3s;content:\"\";pointer-events:none}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{position:absolute;top:0;bottom:-1px;content:\"\";background:linear-gradient(to bottom,rgb(var(--aui-color-n-7)),rgb(var(--aui-color-n-7)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left{padding-right:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after{right:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before{right:10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right{padding-left:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{left:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{left:10px}:root .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}:root .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}\n"] }]
|
|
11096
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ScrollingModule, NgTemplateOutlet], styles: ["acl-table-virtual{display:block;max-width:100%;overflow:hidden}.aui-table__body-viewport{display:block}cdk-virtual-scroll-viewport::-webkit-scrollbar{width:8px;height:4px}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}cdk-virtual-scroll-viewport::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}cdk-virtual-scroll-viewport::-webkit-scrollbar-corner{background-color:transparent}.aui-table{position:relative;display:block;padding:0 12px 12px}.aui-table{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text))}.aui-table{background-color:rgb(var(--aui-color-n-9));border-radius:var(--aui-border-radius-l)}.aui-table__row,.aui-table__header-row{display:flex;align-items:center;background-color:rgb(var(--aui-color-n-9));padding:0 10px;overflow:scroll}.aui-table__row.hasPanel,.aui-table__header-row.hasPanel{flex-wrap:wrap}.aui-table__header-row+.aui-table__row{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row{position:relative;border-width:1px;border-style:solid;border-color:rgb(var(--aui-color-n-8));border-bottom-width:0;background-color:rgb(var(--aui-color-n-10));padding:0 9px;min-height:58px;box-sizing:content-box}.aui-table__row:first-child{border-top-left-radius:var(--aui-border-radius-l);border-top-right-radius:var(--aui-border-radius-l)}.aui-table__row:last-of-type{border-bottom-width:1px;min-height:58px;border-bottom-left-radius:var(--aui-border-radius-l);border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__row.isDisabled:before{content:\"\";z-index:2;position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgb(var(--aui-color-n-10));opacity:.7;cursor:not-allowed}.aui-table__cell,.aui-table__header-cell{display:flex;align-items:center;flex:1;position:relative}.aui-table__cell{padding:15px 10px;background-color:rgb(var(--aui-color-n-10));overflow:hidden}.aui-table__cell--column{flex-direction:column;justify-content:center;align-items:flex-start}.aui-table__header-cell{padding:12px 10px;font-weight:var(--aui-font-weight-bold);background-color:rgb(var(--aui-color-n-9))}.aui-table__column-expand-button{display:flex;align-items:center;max-width:calc(10px * 2 + var(--aui-icon-size-m))}.aui-table__column-expand-button.aui-table__cell{height:58px}.aui-table__column-expand-button .aui-expand-button{display:inline-flex;justify-content:center;align-items:center;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6));border-radius:50%;border:none;cursor:pointer;transition:transform .1s ease-in-out}.aui-table__column-expand-button .aui-expand-button aui-icon{display:flex;justify-content:center;align-items:center;width:var(--aui-icon-size-s);height:var(--aui-icon-size-s);font-size:var(--aui-icon-size-s)}.aui-table__column-expand-button .aui-expand-button:hover{background-color:rgb(var(--aui-color-p-7))}.aui-table__column-expand-button .aui-expand-button:active{background-color:rgb(var(--aui-color-p-5))}.aui-table__column-expand-button .aui-expand-button.isExpanded{transform:rotate(90deg);color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-table__column-expand-button .aui-expand-button.isExpanded:hover{background-color:rgb(var(--aui-color-p-1))}.aui-table__column-expand-button .aui-expand-button.isExpanded:active{background-color:rgb(var(--aui-color-p-0))}.aui-table__column-expand-button .aui-expand-button[disabled],.aui-table__column-expand-button .aui-expand-button.isExpanded[disabled]{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-table__column-expand-panel{margin-top:-6px}.aui-table__column-expand-panel.aui-table__header-cell{display:none}.aui-table__column-expand-panel.aui-table__cell{width:100%;flex-shrink:0;flex-basis:100%;padding:0 10px;overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel{width:100%;border-radius:var(--aui-border-radius-l);overflow:hidden}.aui-table__column-expand-panel.aui-table__cell .aui-table__cell-expand-panel-content.hasBackground{padding:16px;background-color:rgb(var(--aui-color-n-9))}.aui-table-column-resizable__handle{display:block;position:absolute;top:0;bottom:0;right:0;width:5px;color:rgb(var(--aui-color-n-7));cursor:col-resize}.aui-table-column-resizable__handle:after{content:\"\";display:block;margin:12px 0 12px auto;width:1px;height:calc(100% - 24px);background-color:currentcolor}.aui-table-column-resizable__handle:hover{color:rgb(var(--aui-color-primary))}.aui-table-column-resizable__mark-line{display:block;position:absolute;top:0;bottom:0;width:1px;background-color:rgb(var(--aui-color-primary));z-index:9999;cursor:col-resize}.aui-table-column-resizable__overlay{display:block;position:absolute;inset:0;z-index:9000;cursor:col-resize}.aui-table__scroll-wrapper{position:relative;display:flex;flex-direction:column;max-height:100%;overflow:hidden;background-color:rgb(var(--aui-color-n-9));padding:0 12px 12px;border-radius:var(--aui-border-radius-l)}.aui-table__scroll-wrapper::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-wrapper::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-wrapper::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-wrapper .aui-table{padding:0;border-radius:0}.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableTopShadow:before,.aui-table__scroll-wrapper .aui-table__scroll-shadow.hasTableBottomShadow:after{transform:none;width:100%;left:0}.aui-table__scroll-shadow.aui-table{overflow:auto}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar{width:8px;height:4px}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.aui-table__scroll-shadow.aui-table::-webkit-scrollbar-corner{background-color:transparent}.aui-table__scroll-shadow.hasTableTopShadow:before{content:\"\";position:sticky;display:block;height:16px;margin:-16px -12px 0;z-index:99;top:28px}:root .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableTopShadow:before{box-shadow:0 10px 10px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow.hasTableBottomShadow:after{content:\"\";position:sticky;display:block;height:16px;transform:translate3d(0,12px,0);z-index:99;bottom:0;margin:-16px -12px 0}:root .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}html[aui-theme-mode=light] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-1),.16) inset}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}}html[aui-theme-mode=dark] .aui-table__scroll-shadow.hasTableBottomShadow:after{box-shadow:0 -10px 10px -4px rgba(var(--aui-color-n-9),.75) inset}.aui-table__scroll-shadow .aui-table__header-row{margin:0;padding:0;align-items:stretch}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:first-of-type{padding-left:20px}.aui-table__scroll-shadow .aui-table__header-row .aui-table__header-cell:last-of-type{padding-right:20px}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:first-of-type{border-top-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__header-row+.aui-table__row .aui-table__cell:last-of-type{border-top-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row{border:none;padding:0;align-items:stretch;min-height:59px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell{border-width:1px 0;border-style:solid;border-color:rgb(var(--aui-color-n-8))}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:first-of-type{border-left-width:1px;padding-left:19px}.aui-table__scroll-shadow .aui-table__row .aui-table__cell:last-of-type{border-right-width:1px;padding-right:19px}.aui-table__scroll-shadow .aui-table__row:last-child{min-height:60px}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:first-of-type{border-bottom-left-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:last-child .aui-table__cell:last-of-type{border-bottom-right-radius:var(--aui-border-radius-l)}.aui-table__scroll-shadow .aui-table__row:not(:last-child) .aui-table__cell{border-bottom-width:0}.aui-table__scroll-shadow--has-scroll aui-table-header-cell.aui-table-sticky-border-elem-left .aui-table-column-resizable__handle{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-column-resizable__mark-line.inStickyBorderElemLeft{transform:translate(-20px)}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{position:absolute;top:0;bottom:-1px;width:20px;transition:box-shadow .3s;content:\"\";pointer-events:none}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before,.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{position:absolute;top:0;bottom:-1px;content:\"\";background:linear-gradient(to bottom,rgb(var(--aui-color-n-7)),rgb(var(--aui-color-n-7)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left{padding-right:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:after{right:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-left:before{right:10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right{padding-left:30px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:after{left:-10px}.aui-table__scroll-shadow--has-scroll .aui-table-sticky-border-elem-right:before{left:10px}:root .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):after{box-shadow:inset 8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--scrolling .aui-table-sticky-border-elem-left:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}:root .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}html[aui-theme-mode=light] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-1),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}}html[aui-theme-mode=dark] .aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):after{box-shadow:inset -8px 0 4px -4px rgba(var(--aui-color-n-9),.75)}.aui-table__scroll-shadow--before-end .aui-table-sticky-border-elem-right:not(.aui-table__header-row):before{background:linear-gradient(to bottom,rgb(var(--aui-color-primary)),rgb(var(--aui-color-primary)) 8px,transparent 6px,transparent);width:1px;background-size:100% 14px;height:100%}\n"] }]
|
|
11079
11097
|
}], propDecorators: { dataSource: [{
|
|
11080
11098
|
type: Input
|
|
11081
11099
|
}], itemSize: [{
|
|
@@ -11105,36 +11123,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
11105
11123
|
}], scrollContainerRef: [{
|
|
11106
11124
|
type: ViewChild,
|
|
11107
11125
|
args: ['scrollContainer', { static: true }]
|
|
11126
|
+
}], headerRow: [{
|
|
11127
|
+
type: ViewChild,
|
|
11128
|
+
args: ['headerRow', { static: false }]
|
|
11108
11129
|
}] } });
|
|
11109
11130
|
|
|
11110
|
-
|
|
11111
|
-
|
|
11112
|
-
|
|
11113
|
-
|
|
11114
|
-
|
|
11115
|
-
|
|
11116
|
-
AclTableVirtualHeaderDefDirective,
|
|
11117
|
-
AclTableVirtualRowDefDirective,
|
|
11118
|
-
AclTableVirtualPlaceholderDefDirective] }); }
|
|
11119
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AclTableVirtualModule, imports: [AclTableVirtualComponent] }); }
|
|
11120
|
-
}
|
|
11121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AclTableVirtualModule, decorators: [{
|
|
11122
|
-
type: NgModule,
|
|
11123
|
-
args: [{
|
|
11124
|
-
imports: [
|
|
11125
|
-
AclTableVirtualComponent,
|
|
11126
|
-
AclTableVirtualHeaderDefDirective,
|
|
11127
|
-
AclTableVirtualRowDefDirective,
|
|
11128
|
-
AclTableVirtualPlaceholderDefDirective,
|
|
11129
|
-
],
|
|
11130
|
-
exports: [
|
|
11131
|
-
AclTableVirtualComponent,
|
|
11132
|
-
AclTableVirtualHeaderDefDirective,
|
|
11133
|
-
AclTableVirtualRowDefDirective,
|
|
11134
|
-
AclTableVirtualPlaceholderDefDirective,
|
|
11135
|
-
],
|
|
11136
|
-
}]
|
|
11137
|
-
}] });
|
|
11131
|
+
const TABLE_VIRTUAL_MODULE = [
|
|
11132
|
+
AclTableVirtualComponent,
|
|
11133
|
+
AclTableVirtualHeaderDefDirective,
|
|
11134
|
+
AclTableVirtualRowDefDirective,
|
|
11135
|
+
AclTableVirtualPlaceholderDefDirective,
|
|
11136
|
+
];
|
|
11138
11137
|
|
|
11139
11138
|
class TerminatingTagComponent {
|
|
11140
11139
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TerminatingTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -11544,6 +11543,7 @@ class ArrayFormTableComponent {
|
|
|
11544
11543
|
this.addDisabled = false;
|
|
11545
11544
|
this.actionColumnDivider = false;
|
|
11546
11545
|
this.showZeroState = true;
|
|
11546
|
+
this.injector = inject(Injector);
|
|
11547
11547
|
this.minRow = 0;
|
|
11548
11548
|
this.minRowTooltip = '';
|
|
11549
11549
|
this.maxRow = Infinity;
|
|
@@ -11558,7 +11558,8 @@ class ArrayFormTableComponent {
|
|
|
11558
11558
|
};
|
|
11559
11559
|
}
|
|
11560
11560
|
get formDirective() {
|
|
11561
|
-
return
|
|
11561
|
+
return (this.injector.get(FormGroupDirective, null) ||
|
|
11562
|
+
this.injector.get(NgForm, null));
|
|
11562
11563
|
}
|
|
11563
11564
|
/**
|
|
11564
11565
|
* 自定义是否展示错误内容
|
|
@@ -12302,68 +12303,6 @@ const logsReadOptions = {
|
|
|
12302
12303
|
renderLineHighlight: 'none',
|
|
12303
12304
|
};
|
|
12304
12305
|
|
|
12305
|
-
class ResourceYamlDisplayComponent {
|
|
12306
|
-
constructor() {
|
|
12307
|
-
this.concise$$ = new BehaviorSubject(false);
|
|
12308
|
-
this.reduce$$ = new BehaviorSubject(true);
|
|
12309
|
-
this.hasWrapper = true;
|
|
12310
|
-
this.conciseEnable = true;
|
|
12311
|
-
this.manageFieldActionEnable = true;
|
|
12312
|
-
this.yamlUtil = inject(YamlUtilService);
|
|
12313
|
-
this.yaml$ = combineLatest([
|
|
12314
|
-
this.resource$,
|
|
12315
|
-
this.concise$$,
|
|
12316
|
-
this.reduce$$.pipe(distinctUntilChanged()),
|
|
12317
|
-
]).pipe(map(([resource, concise, reduce]) => this.yamlUtil.generateFilteredYamlResource(resource, concise, reduce)));
|
|
12318
|
-
this.editorOptions = yamlReadOptions;
|
|
12319
|
-
this.viewActions = viewActions;
|
|
12320
|
-
}
|
|
12321
|
-
conciseChange(value) {
|
|
12322
|
-
this.concise$$.next(value);
|
|
12323
|
-
if (value) {
|
|
12324
|
-
this.reduce$$.next(true);
|
|
12325
|
-
}
|
|
12326
|
-
}
|
|
12327
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ResourceYamlDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12328
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: ResourceYamlDisplayComponent, isStandalone: true, selector: "acl-resource-yaml-display", inputs: { hasWrapper: "hasWrapper", conciseEnable: "conciseEnable", manageFieldActionEnable: "manageFieldActionEnable", resource: "resource" }, ngImport: i0, template: "@if (hasWrapper) {\n <aui-card>\n <ng-container *ngTemplateOutlet=\"content\" />\n </aui-card>\n} @else {\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n}\n<ng-template #content>\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n</ng-template>\n", styles: [":host(:not(.dialog-content)) ::ng-deep .aui-code-editor{min-height:100%}:host(:not(.dialog-content)){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}:host(:not(.dialog-content))>.aui-card{height:100%}:host(:not(.dialog-content))>.aui-card .aui-card__content,:host(:not(.dialog-content))>.aui-card aui-code-editor,:host(:not(.dialog-content))>.aui-card .aui-code-editor{height:100%;min-height:100%}:host{display:block}:host ::ng-deep aui-card,:host ::ng-deep .aui-card,:host ::ng-deep .aui-card__content{height:100%}:host ::ng-deep .aui-checkbox{margin-right:0}:host aui-code-editor{height:100%}\n"], dependencies: [{ kind: "component", type: i1.CardComponent, selector: "aui-card", inputs: ["divider"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.CheckboxComponent, selector: "aui-checkbox", inputs: ["name", "type", "label", "indeterminate"] }, { kind: "component", type: CodeEditorComponent, selector: "aui-code-editor", inputs: ["options", "plain", "showLanguageLabel", "value", "originalValue", "actionsConfig", "previewMode", "diffMode", "modelUri"], outputs: ["editorChange", "editorBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12329
|
-
}
|
|
12330
|
-
__decorate([
|
|
12331
|
-
ObservableInput(),
|
|
12332
|
-
__metadata("design:type", Observable)
|
|
12333
|
-
], ResourceYamlDisplayComponent.prototype, "resource$", void 0);
|
|
12334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ResourceYamlDisplayComponent, decorators: [{
|
|
12335
|
-
type: Component,
|
|
12336
|
-
args: [{ selector: 'acl-resource-yaml-display', preserveWhitespaces: false, standalone: true, imports: [
|
|
12337
|
-
CARD_MODULE,
|
|
12338
|
-
FormsModule,
|
|
12339
|
-
CHECKBOX_MODULE,
|
|
12340
|
-
CodeEditorComponent,
|
|
12341
|
-
TranslatePipe,
|
|
12342
|
-
AsyncPipe,
|
|
12343
|
-
NgTemplateOutlet,
|
|
12344
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (hasWrapper) {\n <aui-card>\n <ng-container *ngTemplateOutlet=\"content\" />\n </aui-card>\n} @else {\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n}\n<ng-template #content>\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n</ng-template>\n", styles: [":host(:not(.dialog-content)) ::ng-deep .aui-code-editor{min-height:100%}:host(:not(.dialog-content)){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}:host(:not(.dialog-content))>.aui-card{height:100%}:host(:not(.dialog-content))>.aui-card .aui-card__content,:host(:not(.dialog-content))>.aui-card aui-code-editor,:host(:not(.dialog-content))>.aui-card .aui-code-editor{height:100%;min-height:100%}:host{display:block}:host ::ng-deep aui-card,:host ::ng-deep .aui-card,:host ::ng-deep .aui-card__content{height:100%}:host ::ng-deep .aui-checkbox{margin-right:0}:host aui-code-editor{height:100%}\n"] }]
|
|
12345
|
-
}], propDecorators: { hasWrapper: [{
|
|
12346
|
-
type: Input
|
|
12347
|
-
}], conciseEnable: [{
|
|
12348
|
-
type: Input
|
|
12349
|
-
}], manageFieldActionEnable: [{
|
|
12350
|
-
type: Input
|
|
12351
|
-
}], resource: [{
|
|
12352
|
-
type: Input
|
|
12353
|
-
}], resource$: [] } });
|
|
12354
|
-
|
|
12355
|
-
class K8sYamlDisplayDialogComponent {
|
|
12356
|
-
constructor() {
|
|
12357
|
-
this.data = inject(DIALOG_DATA);
|
|
12358
|
-
}
|
|
12359
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: K8sYamlDisplayDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12360
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: K8sYamlDisplayDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n @if (data.extra) {\n <span class=\"extra\">{{ data.extra }}</span>\n }\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <acl-resource-yaml-display\n [resource]=\"data.resource\"\n [hasWrapper]=\"false\"\n class=\"dialog-content\"\n ></acl-resource-yaml-display>\n</aui-dialog-content>\n", dependencies: [{ kind: "component", type: i1.DialogHeaderComponent, selector: "aui-dialog-header", inputs: ["divider", "closeable", "result"] }, { kind: "component", type: i1.DialogContentComponent, selector: "aui-dialog-content" }, { kind: "component", type: ResourceYamlDisplayComponent, selector: "acl-resource-yaml-display", inputs: ["hasWrapper", "conciseEnable", "manageFieldActionEnable", "resource"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12361
|
-
}
|
|
12362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: K8sYamlDisplayDialogComponent, decorators: [{
|
|
12363
|
-
type: Component,
|
|
12364
|
-
args: [{ preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DIALOG_MODULE, TranslatePipe, ResourceYamlDisplayComponent], template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n @if (data.extra) {\n <span class=\"extra\">{{ data.extra }}</span>\n }\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <acl-resource-yaml-display\n [resource]=\"data.resource\"\n [hasWrapper]=\"false\"\n class=\"dialog-content\"\n ></acl-resource-yaml-display>\n</aui-dialog-content>\n" }]
|
|
12365
|
-
}] });
|
|
12366
|
-
|
|
12367
12306
|
/**
|
|
12368
12307
|
* 自动折叠 managedFields 字段
|
|
12369
12308
|
* @param monacoEditor Monaco 编辑器实例
|
|
@@ -12511,192 +12450,430 @@ class ManagedFieldsAutoFolder {
|
|
|
12511
12450
|
}
|
|
12512
12451
|
}
|
|
12513
12452
|
|
|
12514
|
-
|
|
12515
|
-
|
|
12516
|
-
|
|
12517
|
-
|
|
12518
|
-
|
|
12519
|
-
|
|
12520
|
-
|
|
12521
|
-
|
|
12522
|
-
|
|
12523
|
-
|
|
12524
|
-
|
|
12525
|
-
|
|
12526
|
-
|
|
12527
|
-
|
|
12528
|
-
|
|
12529
|
-
|
|
12530
|
-
|
|
12531
|
-
|
|
12532
|
-
|
|
12533
|
-
|
|
12534
|
-
|
|
12535
|
-
|
|
12536
|
-
|
|
12537
|
-
|
|
12538
|
-
|
|
12539
|
-
|
|
12540
|
-
|
|
12541
|
-
|
|
12542
|
-
|
|
12543
|
-
|
|
12544
|
-
|
|
12545
|
-
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
|
|
12565
|
-
|
|
12566
|
-
|
|
12567
|
-
|
|
12568
|
-
|
|
12569
|
-
|
|
12570
|
-
|
|
12571
|
-
|
|
12572
|
-
|
|
12573
|
-
|
|
12574
|
-
|
|
12575
|
-
|
|
12576
|
-
|
|
12577
|
-
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
12582
|
-
|
|
12583
|
-
|
|
12584
|
-
|
|
12585
|
-
|
|
12586
|
-
|
|
12587
|
-
|
|
12588
|
-
|
|
12589
|
-
|
|
12590
|
-
|
|
12591
|
-
|
|
12592
|
-
|
|
12593
|
-
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12597
|
-
|
|
12598
|
-
|
|
12599
|
-
|
|
12600
|
-
|
|
12601
|
-
|
|
12602
|
-
|
|
12603
|
-
|
|
12604
|
-
|
|
12605
|
-
|
|
12606
|
-
|
|
12607
|
-
|
|
12608
|
-
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
|
|
12612
|
-
|
|
12613
|
-
|
|
12614
|
-
|
|
12615
|
-
|
|
12616
|
-
|
|
12617
|
-
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
|
|
12626
|
-
|
|
12627
|
-
|
|
12628
|
-
|
|
12629
|
-
|
|
12630
|
-
|
|
12631
|
-
|
|
12632
|
-
|
|
12633
|
-
|
|
12634
|
-
|
|
12635
|
-
|
|
12636
|
-
|
|
12637
|
-
|
|
12638
|
-
|
|
12639
|
-
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
|
|
12646
|
-
|
|
12647
|
-
|
|
12648
|
-
|
|
12649
|
-
|
|
12650
|
-
|
|
12651
|
-
|
|
12652
|
-
|
|
12653
|
-
|
|
12654
|
-
|
|
12655
|
-
|
|
12656
|
-
|
|
12657
|
-
|
|
12658
|
-
|
|
12659
|
-
|
|
12660
|
-
|
|
12661
|
-
|
|
12662
|
-
|
|
12663
|
-
|
|
12664
|
-
|
|
12665
|
-
|
|
12666
|
-
|
|
12667
|
-
|
|
12668
|
-
|
|
12669
|
-
|
|
12670
|
-
|
|
12671
|
-
|
|
12672
|
-
|
|
12673
|
-
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
|
|
12679
|
-
|
|
12680
|
-
|
|
12681
|
-
|
|
12682
|
-
|
|
12683
|
-
|
|
12684
|
-
|
|
12685
|
-
|
|
12686
|
-
|
|
12687
|
-
|
|
12688
|
-
|
|
12689
|
-
|
|
12690
|
-
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12694
|
-
|
|
12695
|
-
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
|
|
12699
|
-
|
|
12453
|
+
class ResourceYamlDisplayComponent {
|
|
12454
|
+
constructor() {
|
|
12455
|
+
this.destroy$ = new Subject();
|
|
12456
|
+
this.concise$$ = new BehaviorSubject(false);
|
|
12457
|
+
this.reduce$$ = new BehaviorSubject(false);
|
|
12458
|
+
this.showSidebar$$ = new BehaviorSubject(false);
|
|
12459
|
+
this.showDebugPanel$$ = new BehaviorSubject(false);
|
|
12460
|
+
this.monacoEditor = null;
|
|
12461
|
+
this.registeredSchemas = new Set();
|
|
12462
|
+
this.pendingSchemas = new Set();
|
|
12463
|
+
this.hasWrapper = true;
|
|
12464
|
+
this.showDebugInfo = false;
|
|
12465
|
+
this.conciseEnable = true;
|
|
12466
|
+
this.manageFieldActionEnable = true;
|
|
12467
|
+
this.sidebarEnable = true;
|
|
12468
|
+
this.schemaEnable = true;
|
|
12469
|
+
this.exampleEnable = true;
|
|
12470
|
+
this.autoFoldManagedFields = true;
|
|
12471
|
+
this.minimap = true;
|
|
12472
|
+
this.yamlReadMinimapOptions = yamlReadMinimapOptions;
|
|
12473
|
+
this.yamlReadOptions = yamlReadOptions;
|
|
12474
|
+
this.hasFolded = false;
|
|
12475
|
+
/**
|
|
12476
|
+
* 自动获取的 schema,当没有手动提供 schema 时使用
|
|
12477
|
+
*/
|
|
12478
|
+
this.autoSchema$ = this.resource$.pipe(switchMap(resource => {
|
|
12479
|
+
if (!resource) {
|
|
12480
|
+
return of(null);
|
|
12481
|
+
}
|
|
12482
|
+
const firstResource = (Array.isArray(resource) ? resource[0] : resource);
|
|
12483
|
+
if (!firstResource?.apiVersion || !firstResource?.kind) {
|
|
12484
|
+
return of(null);
|
|
12485
|
+
}
|
|
12486
|
+
return this.schemaService.getResourceSchema(firstResource.apiVersion, firstResource.kind, '');
|
|
12487
|
+
}), shareReplay(1));
|
|
12488
|
+
/**
|
|
12489
|
+
* 最终使用的 schema,优先使用手动提供的,否则使用自动获取的
|
|
12490
|
+
*/
|
|
12491
|
+
this.finalSchema$ = combineLatest([this.schema$, this.autoSchema$]).pipe(map(([manualSchema, autoSchema]) => manualSchema || autoSchema), distinctUntilChanged(), shareReplay(1));
|
|
12492
|
+
this.yamlUtil = inject(YamlUtilService);
|
|
12493
|
+
this.schemaService = inject(KubernetesSchemaService);
|
|
12494
|
+
this.monacoLanguageService = inject(MonacoLanguageService);
|
|
12495
|
+
this.yaml$ = combineLatest([
|
|
12496
|
+
this.resource$,
|
|
12497
|
+
this.concise$$,
|
|
12498
|
+
this.reduce$$.pipe(distinctUntilChanged()),
|
|
12499
|
+
]).pipe(map(([resource, concise, reduce]) => this.yamlUtil.generateFilteredYamlResource(resource, concise, reduce)));
|
|
12500
|
+
this.viewActions = viewActions;
|
|
12501
|
+
this.yamlSchemaService = this.monacoLanguageService.getYamlSchemaService();
|
|
12502
|
+
// 自动设置 schema
|
|
12503
|
+
combineLatest([this.resource$, this.finalSchema$])
|
|
12504
|
+
.pipe(takeUntil(this.destroy$))
|
|
12505
|
+
.subscribe(([resource, schema]) => {
|
|
12506
|
+
if (resource && schema) {
|
|
12507
|
+
const firstResource = Array.isArray(resource)
|
|
12508
|
+
? resource[0]
|
|
12509
|
+
: resource;
|
|
12510
|
+
if (firstResource && !Array.isArray(firstResource)) {
|
|
12511
|
+
this.setYamlSchema(firstResource, schema);
|
|
12512
|
+
}
|
|
12513
|
+
}
|
|
12514
|
+
});
|
|
12515
|
+
this.autoSchema$.pipe(takeUntil(this.destroy$)).subscribe();
|
|
12516
|
+
}
|
|
12517
|
+
get editorOptions() {
|
|
12518
|
+
return this.minimap ? yamlReadMinimapOptions : yamlReadOptions;
|
|
12519
|
+
}
|
|
12520
|
+
conciseChange(value) {
|
|
12521
|
+
this.concise$$.next(value);
|
|
12522
|
+
}
|
|
12523
|
+
toggleSidebar() {
|
|
12524
|
+
this.showSidebar$$.next(!this.showSidebar$$.value);
|
|
12525
|
+
}
|
|
12526
|
+
toggleDebugInfo() {
|
|
12527
|
+
this.showDebugPanel$$.next(!this.showDebugPanel$$.value);
|
|
12528
|
+
}
|
|
12529
|
+
getCurrentResource() {
|
|
12530
|
+
const resource = this.resource;
|
|
12531
|
+
if (Array.isArray(resource)) {
|
|
12532
|
+
return resource.length > 0 ? resource[0] : null;
|
|
12533
|
+
}
|
|
12534
|
+
return resource || null;
|
|
12535
|
+
}
|
|
12536
|
+
getCurrentSchema() {
|
|
12537
|
+
return this.schema || null;
|
|
12538
|
+
}
|
|
12539
|
+
selfFoldManagedFields() {
|
|
12540
|
+
if (this.hasFolded) {
|
|
12541
|
+
return;
|
|
12542
|
+
}
|
|
12543
|
+
this.hasFolded = true;
|
|
12544
|
+
setTimeout(() => {
|
|
12545
|
+
const editor = this.getEditorInstance();
|
|
12546
|
+
if (editor) {
|
|
12547
|
+
foldManagedFields(editor);
|
|
12548
|
+
}
|
|
12549
|
+
}, 50);
|
|
12550
|
+
}
|
|
12551
|
+
/**
|
|
12552
|
+
* 设置 YAML schema 以提供 hover 提示和自动完成
|
|
12553
|
+
*/
|
|
12554
|
+
setYamlSchema(resource, schema) {
|
|
12555
|
+
if (!schema) {
|
|
12556
|
+
return;
|
|
12557
|
+
}
|
|
12558
|
+
// 使用 apiVersion + kind 组合作为标识
|
|
12559
|
+
const apiVersion = resource?.apiVersion || 'unknown';
|
|
12560
|
+
const kind = resource?.kind || 'unknown';
|
|
12561
|
+
const schemaKey = `${apiVersion}/${kind}`;
|
|
12562
|
+
this.modelUri = `${schemaKey}.yaml`;
|
|
12563
|
+
this.selfFoldManagedFields();
|
|
12564
|
+
// 检查是否已经注册过相同的 schema,避免重复注册
|
|
12565
|
+
if (this.registeredSchemas.has(schemaKey) ||
|
|
12566
|
+
this.pendingSchemas.has(schemaKey)) {
|
|
12567
|
+
return;
|
|
12568
|
+
}
|
|
12569
|
+
this.pendingSchemas.add(schemaKey);
|
|
12570
|
+
const registerSchema = (schemaToRegister) => {
|
|
12571
|
+
this.yamlSchemaService.addSchema({
|
|
12572
|
+
uri: `k8s://${schemaKey}.schema.json`,
|
|
12573
|
+
fileMatch: [this.modelUri],
|
|
12574
|
+
schema: schemaToRegister,
|
|
12575
|
+
});
|
|
12576
|
+
this.registeredSchemas.add(schemaKey);
|
|
12577
|
+
this.pendingSchemas.delete(schemaKey);
|
|
12578
|
+
};
|
|
12579
|
+
const schemaDefinitions = schema?.definitions;
|
|
12580
|
+
if (schemaDefinitions && Object.keys(schemaDefinitions).length > 0) {
|
|
12581
|
+
registerSchema(schema);
|
|
12582
|
+
return;
|
|
12583
|
+
}
|
|
12584
|
+
this.schemaService
|
|
12585
|
+
.getAllResourceDefinitionsCached(this.clusterName)
|
|
12586
|
+
.pipe(take(1), takeUntil(this.destroy$))
|
|
12587
|
+
.subscribe(definitions => {
|
|
12588
|
+
const fullSchema = {
|
|
12589
|
+
...schema,
|
|
12590
|
+
definitions: definitions || schemaDefinitions || {},
|
|
12591
|
+
};
|
|
12592
|
+
registerSchema(fullSchema);
|
|
12593
|
+
});
|
|
12594
|
+
}
|
|
12595
|
+
ngAfterViewInit() {
|
|
12596
|
+
if (this.autoFoldManagedFields &&
|
|
12597
|
+
this.schemaService.getOpenAPISchema(this.clusterName)) {
|
|
12598
|
+
this.selfFoldManagedFields();
|
|
12599
|
+
}
|
|
12600
|
+
}
|
|
12601
|
+
/**
|
|
12602
|
+
* 获取 Monaco Editor 实例
|
|
12603
|
+
*/
|
|
12604
|
+
getEditorInstance() {
|
|
12605
|
+
if (this.codeEditorRef && !this.monacoEditor) {
|
|
12606
|
+
// 尝试从 ViewChild 获取编辑器实例
|
|
12607
|
+
const editorComponent = this.codeEditorRef;
|
|
12608
|
+
if (editorComponent.editor) {
|
|
12609
|
+
this.monacoEditor = editorComponent.editor;
|
|
12610
|
+
}
|
|
12611
|
+
}
|
|
12612
|
+
return this.monacoEditor;
|
|
12613
|
+
}
|
|
12614
|
+
/**
|
|
12615
|
+
* 自动折叠 managedFields 字段
|
|
12616
|
+
*/
|
|
12617
|
+
foldManagedFields() {
|
|
12618
|
+
const editor = this.getEditorInstance();
|
|
12619
|
+
if (editor) {
|
|
12620
|
+
foldManagedFields(editor);
|
|
12621
|
+
}
|
|
12622
|
+
}
|
|
12623
|
+
ngOnDestroy() {
|
|
12624
|
+
this.destroy$.next();
|
|
12625
|
+
this.destroy$.complete();
|
|
12626
|
+
this.monacoEditor = null;
|
|
12627
|
+
}
|
|
12628
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ResourceYamlDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12629
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: ResourceYamlDisplayComponent, isStandalone: true, selector: "acl-resource-yaml-display", inputs: { hasWrapper: "hasWrapper", showDebugInfo: "showDebugInfo", conciseEnable: "conciseEnable", manageFieldActionEnable: "manageFieldActionEnable", sidebarEnable: "sidebarEnable", schemaEnable: "schemaEnable", exampleEnable: "exampleEnable", autoFoldManagedFields: "autoFoldManagedFields", schema: "schema", resource: "resource", minimap: "minimap", clusterName: "clusterName" }, viewQueries: [{ propertyName: "codeEditorRef", first: true, predicate: ["codeEditorRef"], descendants: true }], ngImport: i0, template: "@if (hasWrapper) {\n <aui-card>\n <ng-container *ngTemplateOutlet=\"content\" />\n </aui-card>\n} @else {\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n}\n<ng-template #content>\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n</ng-template>\n", styles: [":host(:not(.dialog-content)) ::ng-deep .aui-code-editor{min-height:100%}:host(:not(.dialog-content)){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}:host(:not(.dialog-content))>.aui-card{height:100%}:host(:not(.dialog-content))>.aui-card .aui-card__content,:host(:not(.dialog-content))>.aui-card aui-code-editor,:host(:not(.dialog-content))>.aui-card .aui-code-editor{height:100%;min-height:100%}:host{display:block}:host ::ng-deep aui-card,:host ::ng-deep .aui-card,:host ::ng-deep .aui-card__content{height:100%}:host ::ng-deep .aui-checkbox{margin-right:0}:host aui-code-editor{height:100%}\n"], dependencies: [{ kind: "component", type: i1.CardComponent, selector: "aui-card", inputs: ["divider"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.CheckboxComponent, selector: "aui-checkbox", inputs: ["name", "type", "label", "indeterminate"] }, { kind: "component", type: CodeEditorComponent, selector: "aui-code-editor", inputs: ["options", "plain", "showLanguageLabel", "value", "originalValue", "actionsConfig", "previewMode", "diffMode", "modelUri"], outputs: ["editorChange", "editorBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12630
|
+
}
|
|
12631
|
+
__decorate([
|
|
12632
|
+
ObservableInput(),
|
|
12633
|
+
__metadata("design:type", Observable)
|
|
12634
|
+
], ResourceYamlDisplayComponent.prototype, "resource$", void 0);
|
|
12635
|
+
__decorate([
|
|
12636
|
+
ObservableInput(),
|
|
12637
|
+
__metadata("design:type", Observable)
|
|
12638
|
+
], ResourceYamlDisplayComponent.prototype, "schema$", void 0);
|
|
12639
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ResourceYamlDisplayComponent, decorators: [{
|
|
12640
|
+
type: Component,
|
|
12641
|
+
args: [{ selector: 'acl-resource-yaml-display', preserveWhitespaces: false, standalone: true, imports: [
|
|
12642
|
+
CARD_MODULE,
|
|
12643
|
+
FormsModule,
|
|
12644
|
+
CHECKBOX_MODULE,
|
|
12645
|
+
CodeEditorComponent,
|
|
12646
|
+
TranslatePipe,
|
|
12647
|
+
AsyncPipe,
|
|
12648
|
+
NgTemplateOutlet,
|
|
12649
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (hasWrapper) {\n <aui-card>\n <ng-container *ngTemplateOutlet=\"content\" />\n </aui-card>\n} @else {\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n}\n<ng-template #content>\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n @if (conciseEnable) {\n <aui-checkbox\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n }\n @if (manageFieldActionEnable) {\n <aui-checkbox\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n }\n </ng-container>\n </aui-code-editor>\n</ng-template>\n", styles: [":host(:not(.dialog-content)) ::ng-deep .aui-code-editor{min-height:100%}:host(:not(.dialog-content)){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}:host(:not(.dialog-content))>.aui-card{height:100%}:host(:not(.dialog-content))>.aui-card .aui-card__content,:host(:not(.dialog-content))>.aui-card aui-code-editor,:host(:not(.dialog-content))>.aui-card .aui-code-editor{height:100%;min-height:100%}:host{display:block}:host ::ng-deep aui-card,:host ::ng-deep .aui-card,:host ::ng-deep .aui-card__content{height:100%}:host ::ng-deep .aui-checkbox{margin-right:0}:host aui-code-editor{height:100%}\n"] }]
|
|
12650
|
+
}], ctorParameters: () => [], propDecorators: { codeEditorRef: [{
|
|
12651
|
+
type: ViewChild,
|
|
12652
|
+
args: ['codeEditorRef']
|
|
12653
|
+
}], hasWrapper: [{
|
|
12654
|
+
type: Input
|
|
12655
|
+
}], showDebugInfo: [{
|
|
12656
|
+
type: Input
|
|
12657
|
+
}], conciseEnable: [{
|
|
12658
|
+
type: Input
|
|
12659
|
+
}], manageFieldActionEnable: [{
|
|
12660
|
+
type: Input
|
|
12661
|
+
}], sidebarEnable: [{
|
|
12662
|
+
type: Input
|
|
12663
|
+
}], schemaEnable: [{
|
|
12664
|
+
type: Input
|
|
12665
|
+
}], exampleEnable: [{
|
|
12666
|
+
type: Input
|
|
12667
|
+
}], autoFoldManagedFields: [{
|
|
12668
|
+
type: Input
|
|
12669
|
+
}], schema: [{
|
|
12670
|
+
type: Input
|
|
12671
|
+
}], resource: [{
|
|
12672
|
+
type: Input
|
|
12673
|
+
}], resource$: [], schema$: [], minimap: [{
|
|
12674
|
+
type: Input
|
|
12675
|
+
}], clusterName: [{
|
|
12676
|
+
type: Input
|
|
12677
|
+
}] } });
|
|
12678
|
+
|
|
12679
|
+
class K8sYamlDisplayDialogComponent {
|
|
12680
|
+
constructor() {
|
|
12681
|
+
this.data = inject(DIALOG_DATA);
|
|
12682
|
+
}
|
|
12683
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: K8sYamlDisplayDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12684
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: K8sYamlDisplayDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n @if (data.extra) {\n <span class=\"extra\">{{ data.extra }}</span>\n }\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <acl-resource-yaml-display\n [resource]=\"data.resource\"\n [hasWrapper]=\"false\"\n class=\"dialog-content\"\n ></acl-resource-yaml-display>\n</aui-dialog-content>\n", dependencies: [{ kind: "component", type: i1.DialogHeaderComponent, selector: "aui-dialog-header", inputs: ["divider", "closeable", "result"] }, { kind: "component", type: i1.DialogContentComponent, selector: "aui-dialog-content" }, { kind: "component", type: ResourceYamlDisplayComponent, selector: "acl-resource-yaml-display", inputs: ["hasWrapper", "showDebugInfo", "conciseEnable", "manageFieldActionEnable", "sidebarEnable", "schemaEnable", "exampleEnable", "autoFoldManagedFields", "schema", "resource", "minimap", "clusterName"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12685
|
+
}
|
|
12686
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: K8sYamlDisplayDialogComponent, decorators: [{
|
|
12687
|
+
type: Component,
|
|
12688
|
+
args: [{ preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DIALOG_MODULE, TranslatePipe, ResourceYamlDisplayComponent], template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n @if (data.extra) {\n <span class=\"extra\">{{ data.extra }}</span>\n }\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <acl-resource-yaml-display\n [resource]=\"data.resource\"\n [hasWrapper]=\"false\"\n class=\"dialog-content\"\n ></acl-resource-yaml-display>\n</aui-dialog-content>\n" }]
|
|
12689
|
+
}] });
|
|
12690
|
+
|
|
12691
|
+
/**
|
|
12692
|
+
* Kubernetes 资源的内置 YAML 示例
|
|
12693
|
+
* 按照 apiVersion.kind 的格式组织
|
|
12694
|
+
*/
|
|
12695
|
+
const BUILT_IN_YAML_EXAMPLES = {
|
|
12696
|
+
'apps/v1.Deployment': [
|
|
12697
|
+
{
|
|
12698
|
+
title: 'Basic Deployment',
|
|
12699
|
+
description: 'A basic deployment example with nginx container',
|
|
12700
|
+
yaml: `apiVersion: apps/v1
|
|
12701
|
+
kind: Deployment
|
|
12702
|
+
metadata:
|
|
12703
|
+
labels:
|
|
12704
|
+
app: nginx
|
|
12705
|
+
name: nginx-deployment
|
|
12706
|
+
namespace: ''
|
|
12707
|
+
spec:
|
|
12708
|
+
selector:
|
|
12709
|
+
matchLabels:
|
|
12710
|
+
app: nginx
|
|
12711
|
+
template:
|
|
12712
|
+
metadata:
|
|
12713
|
+
labels:
|
|
12714
|
+
app: nginx
|
|
12715
|
+
spec:
|
|
12716
|
+
containers:
|
|
12717
|
+
- image: nginx:1.7.9
|
|
12718
|
+
name: nginx
|
|
12719
|
+
ports:
|
|
12720
|
+
- containerPort: 80
|
|
12721
|
+
securityContext:
|
|
12722
|
+
allowPrivilegeEscalation: false
|
|
12723
|
+
capabilities:
|
|
12724
|
+
drop:
|
|
12725
|
+
- ALL
|
|
12726
|
+
runAsNonRoot: true
|
|
12727
|
+
seccompProfile:
|
|
12728
|
+
type: RuntimeDefault
|
|
12729
|
+
securityContext:
|
|
12730
|
+
runAsNonRoot: true
|
|
12731
|
+
seccompProfile:
|
|
12732
|
+
type: RuntimeDefault`,
|
|
12733
|
+
},
|
|
12734
|
+
],
|
|
12735
|
+
'v1.ConfigMap': [
|
|
12736
|
+
{
|
|
12737
|
+
title: 'Basic ConfigMap',
|
|
12738
|
+
description: 'A basic ConfigMap example with properties and file data',
|
|
12739
|
+
yaml: `apiVersion: v1
|
|
12740
|
+
kind: ConfigMap
|
|
12741
|
+
metadata:
|
|
12742
|
+
name: example
|
|
12743
|
+
namespace: ''
|
|
12744
|
+
data:
|
|
12745
|
+
example.property.1: hello
|
|
12746
|
+
example.property.2: world
|
|
12747
|
+
example.property.file: |-
|
|
12748
|
+
property.1=value-1
|
|
12749
|
+
property.2=value-2
|
|
12750
|
+
property.3=value-3`,
|
|
12751
|
+
},
|
|
12752
|
+
],
|
|
12753
|
+
'batch/v1.CronJob': [
|
|
12754
|
+
{
|
|
12755
|
+
title: 'Basic CronJob',
|
|
12756
|
+
description: 'A basic CronJob example that runs daily',
|
|
12757
|
+
yaml: `apiVersion: batch/v1
|
|
12758
|
+
kind: CronJob
|
|
12759
|
+
metadata:
|
|
12760
|
+
name: hello
|
|
12761
|
+
spec:
|
|
12762
|
+
jobTemplate:
|
|
12763
|
+
metadata:
|
|
12764
|
+
labels:
|
|
12765
|
+
cronjob.cpaas.io/name: hello
|
|
12766
|
+
spec:
|
|
12767
|
+
template:
|
|
12768
|
+
metadata:
|
|
12769
|
+
labels:
|
|
12770
|
+
cronjob.cpaas.io/name: hello
|
|
12771
|
+
spec:
|
|
12772
|
+
containers:
|
|
12773
|
+
- args:
|
|
12774
|
+
- /bin/sh
|
|
12775
|
+
- -c
|
|
12776
|
+
- date; echo Hello from the Kubernetes cluster
|
|
12777
|
+
image: busybox
|
|
12778
|
+
name: hello
|
|
12779
|
+
securityContext:
|
|
12780
|
+
allowPrivilegeEscalation: false
|
|
12781
|
+
capabilities:
|
|
12782
|
+
drop:
|
|
12783
|
+
- ALL
|
|
12784
|
+
runAsNonRoot: true
|
|
12785
|
+
seccompProfile:
|
|
12786
|
+
type: RuntimeDefault
|
|
12787
|
+
securityContext:
|
|
12788
|
+
runAsNonRoot: true
|
|
12789
|
+
seccompProfile:
|
|
12790
|
+
type: RuntimeDefault
|
|
12791
|
+
restartPolicy: Never
|
|
12792
|
+
schedule: "*/1 * * * *"`,
|
|
12793
|
+
},
|
|
12794
|
+
],
|
|
12795
|
+
'v1.PersistentVolume': [
|
|
12796
|
+
{
|
|
12797
|
+
title: 'Basic PersistentVolume',
|
|
12798
|
+
description: 'A basic PersistentVolume example with NFS storage',
|
|
12799
|
+
yaml: `apiVersion: v1
|
|
12800
|
+
kind: PersistentVolume
|
|
12801
|
+
metadata:
|
|
12802
|
+
name: example
|
|
12803
|
+
namespace: ''
|
|
12804
|
+
spec:
|
|
12805
|
+
capacity:
|
|
12806
|
+
storage: 5Gi
|
|
12807
|
+
accessModes:
|
|
12808
|
+
- ReadWriteOnce
|
|
12809
|
+
persistentVolumeReclaimPolicy: Retain
|
|
12810
|
+
storageClassName: slow
|
|
12811
|
+
nfs:
|
|
12812
|
+
path: /tmp
|
|
12813
|
+
server: 172.17.0.2`,
|
|
12814
|
+
},
|
|
12815
|
+
],
|
|
12816
|
+
'autoscaling/v2.HorizontalPodAutoscaler': [
|
|
12817
|
+
{
|
|
12818
|
+
title: 'Basic HorizontalPodAutoscaler',
|
|
12819
|
+
description: 'A basic HPA example with CPU utilization target',
|
|
12820
|
+
yaml: `apiVersion: autoscaling/v2
|
|
12821
|
+
kind: HorizontalPodAutoscaler
|
|
12822
|
+
metadata:
|
|
12823
|
+
name: example
|
|
12824
|
+
namespace: ''
|
|
12825
|
+
spec:
|
|
12826
|
+
scaleTargetRef:
|
|
12827
|
+
apiVersion: apps/v1
|
|
12828
|
+
kind: Deployment
|
|
12829
|
+
name: example
|
|
12830
|
+
minReplicas: 1
|
|
12831
|
+
maxReplicas: 3
|
|
12832
|
+
metrics:
|
|
12833
|
+
- type: Resource
|
|
12834
|
+
resource:
|
|
12835
|
+
name: cpu
|
|
12836
|
+
target:
|
|
12837
|
+
averageUtilization: 50
|
|
12838
|
+
type: Utilization`,
|
|
12839
|
+
},
|
|
12840
|
+
],
|
|
12841
|
+
'apps/v1.DaemonSet': [
|
|
12842
|
+
{
|
|
12843
|
+
title: 'Basic DaemonSet',
|
|
12844
|
+
description: 'A basic DaemonSet example with nginx container',
|
|
12845
|
+
yaml: `apiVersion: apps/v1
|
|
12846
|
+
kind: DaemonSet
|
|
12847
|
+
metadata:
|
|
12848
|
+
name: fluentd-elasticsearch
|
|
12849
|
+
namespace: ''
|
|
12850
|
+
labels:
|
|
12851
|
+
k8s-app: fluentd-logging
|
|
12852
|
+
spec:
|
|
12853
|
+
selector:
|
|
12854
|
+
matchLabels:
|
|
12855
|
+
name: fluentd-elasticsearch
|
|
12856
|
+
template:
|
|
12857
|
+
metadata:
|
|
12858
|
+
labels:
|
|
12859
|
+
name: fluentd-elasticsearch
|
|
12860
|
+
spec:
|
|
12861
|
+
tolerations:
|
|
12862
|
+
- key: node-role.kubernetes.io/control-plane
|
|
12863
|
+
operator: Exists
|
|
12864
|
+
effect: NoSchedule
|
|
12865
|
+
- key: node-role.kubernetes.io/master
|
|
12866
|
+
operator: Exists
|
|
12867
|
+
effect: NoSchedule
|
|
12868
|
+
containers:
|
|
12869
|
+
- name: fluentd-elasticsearch
|
|
12870
|
+
image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
|
|
12871
|
+
resources:
|
|
12872
|
+
limits:
|
|
12873
|
+
memory: 200Mi
|
|
12874
|
+
requests:
|
|
12875
|
+
cpu: 100m
|
|
12876
|
+
memory: 200Mi
|
|
12700
12877
|
volumeMounts:
|
|
12701
12878
|
- name: varlog
|
|
12702
12879
|
mountPath: /var/log
|
|
@@ -13823,9 +14000,774 @@ const ASYNC_DATA_MODULE = [
|
|
|
13823
14000
|
ErrorStateComponent,
|
|
13824
14001
|
];
|
|
13825
14002
|
|
|
14003
|
+
/**
|
|
14004
|
+
* @packageDocumentation
|
|
14005
|
+
* @module notification
|
|
14006
|
+
*/
|
|
14007
|
+
const ZH_ERRORS = {
|
|
14008
|
+
Unknown: '未知错误',
|
|
14009
|
+
Unauthorized: '授权不足',
|
|
14010
|
+
Forbidden: '资源不可用',
|
|
14011
|
+
NotFound: '找不到资源',
|
|
14012
|
+
AlreadyExists: '资源已存在',
|
|
14013
|
+
Conflict: '资源版本冲突,请重新获取资源',
|
|
14014
|
+
Gone: '资源位置已变更',
|
|
14015
|
+
Invalid: '数据错误',
|
|
14016
|
+
ServerTimeout: '响应超时',
|
|
14017
|
+
Timeout: '请求超时',
|
|
14018
|
+
TooManyRequests: '请求太多,超过服务能力',
|
|
14019
|
+
BadRequest: '无效的请求',
|
|
14020
|
+
MethodNotAllowed: '请求的操作不被允许',
|
|
14021
|
+
NotAcceptable: '接收的数据类型不被支持',
|
|
14022
|
+
RequestEntityTooLarge: '请求实体太大',
|
|
14023
|
+
UnsupportedMediaType: '发送的数据类型不被支持',
|
|
14024
|
+
InternalError: '内部错误',
|
|
14025
|
+
Expired: '请求内容已过期',
|
|
14026
|
+
ServiceUnavailable: '当前请求的服务不可用,可稍后重试',
|
|
14027
|
+
ProjectNamespaceConflict: '平台级命名空间已存在,请处理',
|
|
14028
|
+
};
|
|
14029
|
+
const DEFAULT_ZH_ERROR = '网络错误';
|
|
14030
|
+
|
|
14031
|
+
/**
|
|
14032
|
+
* @packageDocumentation
|
|
14033
|
+
* @module notification
|
|
14034
|
+
*/
|
|
14035
|
+
class FeedbackNotificationComponent {
|
|
14036
|
+
constructor() {
|
|
14037
|
+
this.onPrimary = new EventEmitter();
|
|
14038
|
+
this.onSecondary = new EventEmitter();
|
|
14039
|
+
}
|
|
14040
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: FeedbackNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14041
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: FeedbackNotificationComponent, isStandalone: true, selector: "ng-component", inputs: { primary: "primary", secondary: "secondary", content: "content", pre: "pre" }, outputs: { onPrimary: "onPrimary", onSecondary: "onSecondary" }, ngImport: i0, template: "@if (content) {\n <main>\n @if (pre) {\n <pre [innerHTML]=\"content\"></pre>\n } @else {\n <div [innerHTML]=\"content\"></div>\n }\n </main>\n}\n<footer>\n @if (primary) {\n <button\n aui-button=\"primary\"\n type=\"button\"\n size=\"mini\"\n (click)=\"onPrimary.emit()\"\n >\n {{ primary | translate }}\n </button>\n }\n @if (secondary) {\n <button\n aui-button=\"default\"\n type=\"button\"\n size=\"mini\"\n (click)=\"onSecondary.emit()\"\n >\n {{ secondary | translate }}\n </button>\n }\n</footer>\n", styles: [":host{display:flex;flex-direction:column;max-height:150px}main{display:flex;flex:1;overflow:hidden}main>*{flex:1;overflow:auto}footer{padding-top:12px}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14042
|
+
}
|
|
14043
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: FeedbackNotificationComponent, decorators: [{
|
|
14044
|
+
type: Component,
|
|
14045
|
+
args: [{ standalone: true, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TRANSLATE_MODULE, ButtonModule], template: "@if (content) {\n <main>\n @if (pre) {\n <pre [innerHTML]=\"content\"></pre>\n } @else {\n <div [innerHTML]=\"content\"></div>\n }\n </main>\n}\n<footer>\n @if (primary) {\n <button\n aui-button=\"primary\"\n type=\"button\"\n size=\"mini\"\n (click)=\"onPrimary.emit()\"\n >\n {{ primary | translate }}\n </button>\n }\n @if (secondary) {\n <button\n aui-button=\"default\"\n type=\"button\"\n size=\"mini\"\n (click)=\"onSecondary.emit()\"\n >\n {{ secondary | translate }}\n </button>\n }\n</footer>\n", styles: [":host{display:flex;flex-direction:column;max-height:150px}main{display:flex;flex:1;overflow:hidden}main>*{flex:1;overflow:auto}footer{padding-top:12px}\n"] }]
|
|
14046
|
+
}], propDecorators: { primary: [{
|
|
14047
|
+
type: Input
|
|
14048
|
+
}], secondary: [{
|
|
14049
|
+
type: Input
|
|
14050
|
+
}], content: [{
|
|
14051
|
+
type: Input
|
|
14052
|
+
}], pre: [{
|
|
14053
|
+
type: Input
|
|
14054
|
+
}], onPrimary: [{
|
|
14055
|
+
type: Output
|
|
14056
|
+
}], onSecondary: [{
|
|
14057
|
+
type: Output
|
|
14058
|
+
}] } });
|
|
14059
|
+
|
|
14060
|
+
function isK8sErrorStatus(e) {
|
|
14061
|
+
return e?.metadata && e.apiVersion && e.kind === 'Status' && e.status;
|
|
14062
|
+
}
|
|
14063
|
+
|
|
14064
|
+
/**
|
|
14065
|
+
* @packageDocumentation
|
|
14066
|
+
* @module notification
|
|
14067
|
+
*/
|
|
14068
|
+
class NotificationUtilService {
|
|
14069
|
+
constructor() {
|
|
14070
|
+
this.injector = inject(Injector);
|
|
14071
|
+
this.dialog = inject(DialogService);
|
|
14072
|
+
this.time = inject(TimeService);
|
|
14073
|
+
this.notification = inject(NotificationService);
|
|
14074
|
+
}
|
|
14075
|
+
viewDetail(json, title, notificationId) {
|
|
14076
|
+
this.dialog.open(CodeDisplayDialogComponent, {
|
|
14077
|
+
data: {
|
|
14078
|
+
code: this.normalizeJson(json),
|
|
14079
|
+
language: 'json',
|
|
14080
|
+
title: title || 'view_detail',
|
|
14081
|
+
ellipsis: true,
|
|
14082
|
+
},
|
|
14083
|
+
size: DialogSize.Big,
|
|
14084
|
+
});
|
|
14085
|
+
if (notificationId) {
|
|
14086
|
+
this.notification.remove(notificationId);
|
|
14087
|
+
}
|
|
14088
|
+
}
|
|
14089
|
+
createFeedback(config, { content, onPrimary, onSecondary, pre, primary, secondary, summary, } = {}) {
|
|
14090
|
+
const { instance } = this.notification.create({
|
|
14091
|
+
type: MessageType.Error,
|
|
14092
|
+
...config,
|
|
14093
|
+
content: null,
|
|
14094
|
+
contentRef: FeedbackNotificationComponent,
|
|
14095
|
+
});
|
|
14096
|
+
const feedback = instance.childComponentInstance;
|
|
14097
|
+
if (primary === true) {
|
|
14098
|
+
primary = 'view_detail';
|
|
14099
|
+
}
|
|
14100
|
+
else if (secondary === true) {
|
|
14101
|
+
secondary = 'view_detail';
|
|
14102
|
+
}
|
|
14103
|
+
content = this.normalizeJson(content || config.content);
|
|
14104
|
+
const viewDetail = this.viewDetail.bind(this, content, config.title, instance.uniqueId);
|
|
14105
|
+
if (primary && !onPrimary) {
|
|
14106
|
+
onPrimary = viewDetail;
|
|
14107
|
+
}
|
|
14108
|
+
if (onPrimary) {
|
|
14109
|
+
feedback.onPrimary.pipe(take(1)).subscribe(onPrimary);
|
|
14110
|
+
}
|
|
14111
|
+
else if (secondary && !onSecondary) {
|
|
14112
|
+
onSecondary = viewDetail;
|
|
14113
|
+
}
|
|
14114
|
+
if (onSecondary) {
|
|
14115
|
+
feedback.onSecondary.pipe(take(1)).subscribe(onSecondary);
|
|
14116
|
+
}
|
|
14117
|
+
Object.assign(feedback, {
|
|
14118
|
+
content: this.normalizeJson(summary),
|
|
14119
|
+
pre,
|
|
14120
|
+
primary,
|
|
14121
|
+
secondary,
|
|
14122
|
+
});
|
|
14123
|
+
}
|
|
14124
|
+
normalizeJson(json) {
|
|
14125
|
+
return typeof json === 'string'
|
|
14126
|
+
? json
|
|
14127
|
+
: json && JSON.stringify(json, null, 2);
|
|
14128
|
+
}
|
|
14129
|
+
async notify(reqOrStatus, res) {
|
|
14130
|
+
// we stored original req in `err.__req__`
|
|
14131
|
+
const req = ('__req__' in reqOrStatus ? get(reqOrStatus, '__req__') : reqOrStatus);
|
|
14132
|
+
if (isK8sErrorStatus(reqOrStatus)) {
|
|
14133
|
+
res = reqOrStatus?.['__origin__'];
|
|
14134
|
+
}
|
|
14135
|
+
const duration = Math.round(numberAttribute(req.headers.get(NOTIFY_DURATION_HEADER$1), NOTIFICATION_DEFAULT_CONFIG.duration));
|
|
14136
|
+
let reason;
|
|
14137
|
+
let resError = res.error;
|
|
14138
|
+
if (resError instanceof Blob && resError.type === 'application/json') {
|
|
14139
|
+
try {
|
|
14140
|
+
resError = JSON.parse(await resError.text());
|
|
14141
|
+
}
|
|
14142
|
+
catch { }
|
|
14143
|
+
}
|
|
14144
|
+
if (isK8sErrorStatus(resError)) {
|
|
14145
|
+
reason = resError.reason;
|
|
14146
|
+
reason =
|
|
14147
|
+
this.injector.get(TranslateService).locale === 'zh'
|
|
14148
|
+
? ZH_ERRORS[reason] || DEFAULT_ZH_ERROR
|
|
14149
|
+
: reason;
|
|
14150
|
+
}
|
|
14151
|
+
this.createFeedback({
|
|
14152
|
+
title: reason || this.getResErrorMessage(res),
|
|
14153
|
+
duration,
|
|
14154
|
+
}, {
|
|
14155
|
+
content: {
|
|
14156
|
+
apiVersion: 'v1',
|
|
14157
|
+
RequestURI: req.urlWithParams,
|
|
14158
|
+
Method: req.method,
|
|
14159
|
+
RequestObject: {
|
|
14160
|
+
Time: this.time.format(req.requestAt),
|
|
14161
|
+
Header: this.getAllHeaders(req.headers),
|
|
14162
|
+
Body: req.body,
|
|
14163
|
+
},
|
|
14164
|
+
ResponseObject: {
|
|
14165
|
+
Time: this.time.format(),
|
|
14166
|
+
RelativeTime: this.time.distance(req.requestAt),
|
|
14167
|
+
StatusCode: res.status,
|
|
14168
|
+
Header: this.getAllHeaders(res.headers),
|
|
14169
|
+
Body: resError,
|
|
14170
|
+
},
|
|
14171
|
+
},
|
|
14172
|
+
secondary: true,
|
|
14173
|
+
});
|
|
14174
|
+
}
|
|
14175
|
+
getResErrorMessage(res) {
|
|
14176
|
+
return typeof res.error === 'string'
|
|
14177
|
+
? res.error
|
|
14178
|
+
: (res.statusText === 'OK' && res.error.message) ||
|
|
14179
|
+
// compatible with legacy ACE API
|
|
14180
|
+
get(res.error, 'errors[0].message') ||
|
|
14181
|
+
res.statusText;
|
|
14182
|
+
}
|
|
14183
|
+
getAllHeaders(headers) {
|
|
14184
|
+
return headers
|
|
14185
|
+
.keys()
|
|
14186
|
+
.reduce((acc, key) => {
|
|
14187
|
+
let values = headers.getAll(key);
|
|
14188
|
+
if (Array.isArray(values) && values.length === 1) {
|
|
14189
|
+
values = values[0];
|
|
14190
|
+
}
|
|
14191
|
+
acc[key] = values;
|
|
14192
|
+
return acc;
|
|
14193
|
+
}, {});
|
|
14194
|
+
}
|
|
14195
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: NotificationUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14196
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: NotificationUtilService, providedIn: 'root' }); }
|
|
14197
|
+
}
|
|
14198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: NotificationUtilService, decorators: [{
|
|
14199
|
+
type: Injectable,
|
|
14200
|
+
args: [{
|
|
14201
|
+
providedIn: 'root',
|
|
14202
|
+
}]
|
|
14203
|
+
}] });
|
|
14204
|
+
|
|
14205
|
+
/**
|
|
14206
|
+
* @packageDocumentation
|
|
14207
|
+
* @module notification
|
|
14208
|
+
*/
|
|
14209
|
+
const WRITABLE_METHODS = ['delete', 'patch', 'post', 'put'];
|
|
14210
|
+
class ResourceErrorInterceptor {
|
|
14211
|
+
constructor() {
|
|
14212
|
+
this.notificationUtil = inject(NotificationUtilService);
|
|
14213
|
+
}
|
|
14214
|
+
intercept(req, next) {
|
|
14215
|
+
// Maybe used later in custom `catchError`
|
|
14216
|
+
req.requestAt = Date.now();
|
|
14217
|
+
let notifyOnError = this.notifyOnError(req);
|
|
14218
|
+
if (notifyOnError || req.headers.has(NOTIFY_ON_ERROR_HEADER)) {
|
|
14219
|
+
const notifyOnErrorHeader = req.headers.get(NOTIFY_ON_ERROR_HEADER);
|
|
14220
|
+
req = req.clone({
|
|
14221
|
+
headers: req.headers.delete(NOTIFY_ON_ERROR_HEADER),
|
|
14222
|
+
});
|
|
14223
|
+
const skipNotifyOnError = notifyOnErrorHeader != null &&
|
|
14224
|
+
[EMPTY$2, FALSE$1].includes(notifyOnErrorHeader);
|
|
14225
|
+
if (skipNotifyOnError) {
|
|
14226
|
+
notifyOnError = false;
|
|
14227
|
+
}
|
|
14228
|
+
else {
|
|
14229
|
+
if (!notifyOnError) {
|
|
14230
|
+
notifyOnError = true;
|
|
14231
|
+
}
|
|
14232
|
+
}
|
|
14233
|
+
}
|
|
14234
|
+
return next.handle(req).pipe(catchError((err) => {
|
|
14235
|
+
console.error(err);
|
|
14236
|
+
if (notifyOnError) {
|
|
14237
|
+
this.notificationUtil.notify(req, err);
|
|
14238
|
+
}
|
|
14239
|
+
return throwError(() => isK8sErrorStatus(err.error)
|
|
14240
|
+
? {
|
|
14241
|
+
...err.error,
|
|
14242
|
+
__origin__: err,
|
|
14243
|
+
__req__: req,
|
|
14244
|
+
}
|
|
14245
|
+
: {
|
|
14246
|
+
...err,
|
|
14247
|
+
__req__: req,
|
|
14248
|
+
});
|
|
14249
|
+
}));
|
|
14250
|
+
}
|
|
14251
|
+
notifyOnError(req) {
|
|
14252
|
+
return (WRITABLE_METHODS.includes(req.method.toLowerCase()) &&
|
|
14253
|
+
!req.url.endsWith('/v1/selfsubjectaccessreviews'));
|
|
14254
|
+
}
|
|
14255
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ResourceErrorInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14256
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ResourceErrorInterceptor }); }
|
|
14257
|
+
}
|
|
14258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ResourceErrorInterceptor, decorators: [{
|
|
14259
|
+
type: Injectable
|
|
14260
|
+
}] });
|
|
14261
|
+
|
|
14262
|
+
/**
|
|
14263
|
+
* [[include:notification/README.md]]
|
|
14264
|
+
* @module notification
|
|
14265
|
+
* @preferred
|
|
14266
|
+
*/
|
|
14267
|
+
/** imports */
|
|
14268
|
+
|
|
14269
|
+
class GraphActionsComponent {
|
|
14270
|
+
constructor() {
|
|
14271
|
+
this.position = 'right top';
|
|
14272
|
+
}
|
|
14273
|
+
get positionClass() {
|
|
14274
|
+
return this.position
|
|
14275
|
+
.split(' ')
|
|
14276
|
+
.reduce((acc, v) => (v ? { ...acc, [v]: true } : acc), {});
|
|
14277
|
+
}
|
|
14278
|
+
handleMouseDown(e) {
|
|
14279
|
+
e.stopPropagation();
|
|
14280
|
+
}
|
|
14281
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14282
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: GraphActionsComponent, isStandalone: true, selector: "acl-graph-actions", inputs: { position: "position" }, host: { listeners: { "mousedown": "handleMouseDown($event)" } }, ngImport: i0, template: `<div
|
|
14283
|
+
class="acl-graph-canvas__action-wrapper"
|
|
14284
|
+
[ngClass]="positionClass"
|
|
14285
|
+
>
|
|
14286
|
+
<ng-content></ng-content>
|
|
14287
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
14288
|
+
}
|
|
14289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphActionsComponent, decorators: [{
|
|
14290
|
+
type: Component,
|
|
14291
|
+
args: [{
|
|
14292
|
+
selector: 'acl-graph-actions',
|
|
14293
|
+
template: `<div
|
|
14294
|
+
class="acl-graph-canvas__action-wrapper"
|
|
14295
|
+
[ngClass]="positionClass"
|
|
14296
|
+
>
|
|
14297
|
+
<ng-content></ng-content>
|
|
14298
|
+
</div>`,
|
|
14299
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14300
|
+
encapsulation: ViewEncapsulation.None,
|
|
14301
|
+
standalone: true,
|
|
14302
|
+
imports: [CommonModule],
|
|
14303
|
+
}]
|
|
14304
|
+
}], propDecorators: { position: [{
|
|
14305
|
+
type: Input
|
|
14306
|
+
}], handleMouseDown: [{
|
|
14307
|
+
type: HostListener,
|
|
14308
|
+
args: ['mousedown', ['$event']]
|
|
14309
|
+
}] } });
|
|
14310
|
+
|
|
14311
|
+
class GraphStoreService {
|
|
14312
|
+
constructor() {
|
|
14313
|
+
this.nodeStore = {};
|
|
14314
|
+
this.scale = 1;
|
|
14315
|
+
this.nodeChanged$$ = new ReplaySubject(1);
|
|
14316
|
+
this.nodeChanged$ = this.nodeChanged$$
|
|
14317
|
+
.asObservable()
|
|
14318
|
+
.pipe(debounceTime(0));
|
|
14319
|
+
this.resizeObserver = new ResizeObserver(throttle(() => this.nodeChanged$$.next(), 100));
|
|
14320
|
+
}
|
|
14321
|
+
registerSurfaceNode(surface) {
|
|
14322
|
+
this.surfaceNode = surface;
|
|
14323
|
+
}
|
|
14324
|
+
registerNode(id, node) {
|
|
14325
|
+
if (id) {
|
|
14326
|
+
this.resizeObserver.observe(node.el.nativeElement);
|
|
14327
|
+
}
|
|
14328
|
+
this.nodeStore[id] = node;
|
|
14329
|
+
this.nodeChanged$$.next();
|
|
14330
|
+
}
|
|
14331
|
+
unregisterNode(id) {
|
|
14332
|
+
if (id && this.getNode(id)) {
|
|
14333
|
+
this.resizeObserver.unobserve(this.nodeStore[id].el.nativeElement);
|
|
14334
|
+
}
|
|
14335
|
+
this.nodeStore[id] = null;
|
|
14336
|
+
this.nodeChanged$$.next();
|
|
14337
|
+
}
|
|
14338
|
+
getNode(id) {
|
|
14339
|
+
return this.nodeStore[id];
|
|
14340
|
+
}
|
|
14341
|
+
getSurfaceNode() {
|
|
14342
|
+
return this.surfaceNode;
|
|
14343
|
+
}
|
|
14344
|
+
nodeChanged() {
|
|
14345
|
+
return this.nodeChanged$;
|
|
14346
|
+
}
|
|
14347
|
+
getScale() {
|
|
14348
|
+
return this.scale;
|
|
14349
|
+
}
|
|
14350
|
+
setScale(scale) {
|
|
14351
|
+
return (this.scale = scale);
|
|
14352
|
+
}
|
|
14353
|
+
disconnectObserver() {
|
|
14354
|
+
this.resizeObserver.disconnect();
|
|
14355
|
+
}
|
|
14356
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14357
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphStoreService }); }
|
|
14358
|
+
}
|
|
14359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphStoreService, decorators: [{
|
|
14360
|
+
type: Injectable
|
|
14361
|
+
}] });
|
|
14362
|
+
|
|
14363
|
+
function getRect(el) {
|
|
14364
|
+
const r = el.getBoundingClientRect();
|
|
14365
|
+
return {
|
|
14366
|
+
top: r.top,
|
|
14367
|
+
bottom: r.bottom,
|
|
14368
|
+
left: r.left,
|
|
14369
|
+
right: r.right,
|
|
14370
|
+
width: r.width,
|
|
14371
|
+
height: r.height,
|
|
14372
|
+
offsetTop: el.offsetTop,
|
|
14373
|
+
offsetLeft: el.offsetLeft,
|
|
14374
|
+
offsetWidth: el.offsetWidth,
|
|
14375
|
+
offsetHeight: el.offsetHeight,
|
|
14376
|
+
};
|
|
14377
|
+
}
|
|
14378
|
+
|
|
14379
|
+
const isMacSystem = isMac();
|
|
14380
|
+
class GraphCanvasComponent {
|
|
14381
|
+
constructor() {
|
|
14382
|
+
this.minScale = 0.25;
|
|
14383
|
+
this.maxScale = 2;
|
|
14384
|
+
this.originX = 'center';
|
|
14385
|
+
this.originY = 'top';
|
|
14386
|
+
this.boundary = 60;
|
|
14387
|
+
this.loading = false;
|
|
14388
|
+
this.loadFailed = false;
|
|
14389
|
+
this.retry = new EventEmitter();
|
|
14390
|
+
this.getCanvasRect = () => getRect(this.canvasRef.nativeElement);
|
|
14391
|
+
this.graphStore = inject(GraphStoreService);
|
|
14392
|
+
this.getSurfaceRect = () => getRect(this.surfaceRef.nativeElement);
|
|
14393
|
+
}
|
|
14394
|
+
get dragging() {
|
|
14395
|
+
return !!this.dragStartPoint;
|
|
14396
|
+
}
|
|
14397
|
+
get canvasStyle() {
|
|
14398
|
+
return {
|
|
14399
|
+
padding: this.boundary + 'px',
|
|
14400
|
+
justifyContent: xSelector(this.transformState.origin[0], [
|
|
14401
|
+
'flex-start',
|
|
14402
|
+
'center',
|
|
14403
|
+
'flex-end',
|
|
14404
|
+
]),
|
|
14405
|
+
alignItems: ySelector(this.transformState.origin[1], [
|
|
14406
|
+
'flex-start',
|
|
14407
|
+
'center',
|
|
14408
|
+
'flex-end',
|
|
14409
|
+
]),
|
|
14410
|
+
cursor: this.dragging ? 'grabbing' : 'grab',
|
|
14411
|
+
};
|
|
14412
|
+
}
|
|
14413
|
+
get surfaceStyle() {
|
|
14414
|
+
return {
|
|
14415
|
+
transformOrigin: this.transformState.origin.join(' '),
|
|
14416
|
+
transform: `translate(${this.transformState.translate[0]}px, ${this.transformState.translate[1]}px) scale(${this.transformState.scale})`,
|
|
14417
|
+
};
|
|
14418
|
+
}
|
|
14419
|
+
ngOnInit() {
|
|
14420
|
+
this.transformState = {
|
|
14421
|
+
origin: [this.originX, this.originY],
|
|
14422
|
+
translate: [0, 0],
|
|
14423
|
+
scale: this.graphStore.getScale(),
|
|
14424
|
+
};
|
|
14425
|
+
}
|
|
14426
|
+
ngAfterViewInit() {
|
|
14427
|
+
this.graphStore.registerSurfaceNode({ getRect: this.getSurfaceRect });
|
|
14428
|
+
}
|
|
14429
|
+
ngOnDestroy() {
|
|
14430
|
+
this.graphStore.disconnectObserver();
|
|
14431
|
+
}
|
|
14432
|
+
handleWheelEvent(e) {
|
|
14433
|
+
e.preventDefault();
|
|
14434
|
+
e.stopPropagation();
|
|
14435
|
+
const { deltaX, deltaY, ctrlKey, shiftKey, clientX, clientY } = e;
|
|
14436
|
+
if (ctrlKey) {
|
|
14437
|
+
this.zoomByWheel(-deltaY, [clientX, clientY]);
|
|
14438
|
+
}
|
|
14439
|
+
else if (shiftKey && !isMacSystem) {
|
|
14440
|
+
this.move(-deltaY, -deltaX);
|
|
14441
|
+
}
|
|
14442
|
+
else {
|
|
14443
|
+
this.move(-deltaX, -deltaY);
|
|
14444
|
+
}
|
|
14445
|
+
}
|
|
14446
|
+
handleMouseDown(e) {
|
|
14447
|
+
this.dragStartPoint = [e.clientX, e.clientY];
|
|
14448
|
+
}
|
|
14449
|
+
handleMouseMove(e) {
|
|
14450
|
+
if (!this.dragStartPoint) {
|
|
14451
|
+
return;
|
|
14452
|
+
}
|
|
14453
|
+
this.move(e.clientX - this.dragStartPoint[0], e.clientY - this.dragStartPoint[1]);
|
|
14454
|
+
this.dragStartPoint = [e.clientX, e.clientY];
|
|
14455
|
+
}
|
|
14456
|
+
handleMouseUp() {
|
|
14457
|
+
this.dragStartPoint = null;
|
|
14458
|
+
}
|
|
14459
|
+
zoomByWheel(v, pointerPosition) {
|
|
14460
|
+
this.dispatchTransform((transform, rects) => {
|
|
14461
|
+
const { scale, translate } = transform;
|
|
14462
|
+
const nextScale = scaleLimit(scale + v / 500);
|
|
14463
|
+
const origin = originCoordinatePoint(transform, rects);
|
|
14464
|
+
const pointer = coordinate(rects.canvasRect, pointerPosition);
|
|
14465
|
+
const deltaX = ((pointer[0] - origin[0]) / scale) * nextScale -
|
|
14466
|
+
(pointer[0] - origin[0]);
|
|
14467
|
+
const deltaY = ((pointer[1] - origin[1]) / scale) * nextScale -
|
|
14468
|
+
(pointer[1] - origin[1]);
|
|
14469
|
+
return {
|
|
14470
|
+
translate: [translate[0] - deltaX, translate[1] - deltaY],
|
|
14471
|
+
scale: nextScale,
|
|
14472
|
+
};
|
|
14473
|
+
});
|
|
14474
|
+
}
|
|
14475
|
+
zoomByDefaultStep(direction) {
|
|
14476
|
+
this.dispatchTransform(({ scale }) => ({
|
|
14477
|
+
scale: scaleLimit(scale + (direction === 'in' ? 0.25 : -0.25)),
|
|
14478
|
+
}));
|
|
14479
|
+
}
|
|
14480
|
+
zoomOriginal() {
|
|
14481
|
+
this.dispatchTransform(() => ({
|
|
14482
|
+
origin: [this.originX, this.originY],
|
|
14483
|
+
translate: [0, 0],
|
|
14484
|
+
scale: 1,
|
|
14485
|
+
}));
|
|
14486
|
+
}
|
|
14487
|
+
zoomOverview() {
|
|
14488
|
+
this.dispatchTransform((_, { canvasRect, surfaceRect }) => {
|
|
14489
|
+
const scaleX = (canvasRect.offsetWidth - this.boundary * 2) / surfaceRect.offsetWidth;
|
|
14490
|
+
const scaleY = (canvasRect.offsetHeight - this.boundary * 2) /
|
|
14491
|
+
surfaceRect.offsetHeight;
|
|
14492
|
+
return {
|
|
14493
|
+
origin: ['center', 'center'],
|
|
14494
|
+
translate: [0, 0],
|
|
14495
|
+
scale: scaleLimit(min([scaleX, scaleY, 1])),
|
|
14496
|
+
};
|
|
14497
|
+
});
|
|
14498
|
+
}
|
|
14499
|
+
move(x, y) {
|
|
14500
|
+
this.dispatchTransform(({ translate }) => ({
|
|
14501
|
+
translate: [translate[0] + x, translate[1] + y],
|
|
14502
|
+
}));
|
|
14503
|
+
}
|
|
14504
|
+
dispatchTransform(action) {
|
|
14505
|
+
const rects = {
|
|
14506
|
+
canvasRect: this.getCanvasRect(),
|
|
14507
|
+
surfaceRect: this.getSurfaceRect(),
|
|
14508
|
+
};
|
|
14509
|
+
const nextTransform = mergeRight(this.transformState, action(this.transformState, rects));
|
|
14510
|
+
this.transformState = applyCanvasBoundaries({
|
|
14511
|
+
rects,
|
|
14512
|
+
transform: nextTransform,
|
|
14513
|
+
boundary: this.boundary,
|
|
14514
|
+
});
|
|
14515
|
+
this.graphStore.setScale(this.transformState.scale);
|
|
14516
|
+
}
|
|
14517
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14518
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: GraphCanvasComponent, isStandalone: true, selector: "acl-graph-canvas", inputs: { minScale: "minScale", maxScale: "maxScale", originX: "originX", originY: "originY", boundary: "boundary", loading: "loading", loadFailed: "loadFailed" }, outputs: { retry: "retry" }, host: { listeners: { "document:mousemove": "handleMouseMove($event)", "document:mouseup": "handleMouseUp()" } }, providers: [GraphStoreService], viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, static: true }, { propertyName: "surfaceRef", first: true, predicate: ["surface"], descendants: true, static: true }], ngImport: i0, template: "<div\n #canvas\n class=\"acl-graph-canvas\"\n [ngStyle]=\"canvasStyle\"\n (wheel)=\"handleWheelEvent($event)\"\n (mousedown)=\"handleMouseDown($event)\"\n>\n <div\n #surface\n class=\"acl-graph-canvas__surface\"\n [ngStyle]=\"surfaceStyle\"\n >\n <ng-content></ng-content>\n <ng-content select=\"acl-graph-links\"></ng-content>\n </div>\n\n <div class=\"acl-graph-canvas__action-wrapper right bottom\">\n <div\n class=\"acl-graph-canvas__action square\"\n [title]=\"'panoramic_view' | translate\"\n (click)=\"zoomOverview()\"\n (mousedown)=\"$event.stopPropagation()\"\n >\n <aui-icon icon=\"full_size\"></aui-icon>\n </div>\n <div class=\"acl-graph-canvas__scale-controller\">\n <aui-icon\n icon=\"minus\"\n [title]=\"'zoom_out' | translate\"\n [class.disabled]=\"transformState.scale <= minScale\"\n (click)=\"zoomByDefaultStep('out')\"\n (mousedown)=\"$event.stopPropagation()\"\n ></aui-icon>\n <span>{{ (transformState.scale * 100).toFixed(0) }}%</span>\n <aui-icon\n icon=\"plus\"\n [title]=\"'zoom_in' | translate\"\n [class.disabled]=\"transformState.scale >= maxScale\"\n (click)=\"zoomByDefaultStep('in')\"\n (mousedown)=\"$event.stopPropagation()\"\n ></aui-icon>\n </div>\n <div\n class=\"acl-graph-canvas__action square\"\n [title]=\"'isometric_view' | translate\"\n (click)=\"zoomOriginal()\"\n (mousedown)=\"$event.stopPropagation()\"\n >\n <aui-icon icon=\"actual_size\"></aui-icon>\n </div>\n </div>\n <ng-content select=\"acl-graph-actions\"></ng-content>\n <div\n class=\"acl-graph-canvas__loading-mask\"\n (wheel)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.stopPropagation()\"\n [hidden]=\"!loading && !loadFailed\"\n >\n <div class=\"acl-graph-canvas__loading\">\n @if (loading) {\n <aui-icon icon=\"spinner\"></aui-icon>\n <span>{{ 'loading_please_wait' | translate }}</span>\n }\n @if (loadFailed) {\n <span>{{ 'failed_load_please' | translate }}</span>\n <button\n aui-button=\"text\"\n (click)=\"retry.emit()\"\n >\n {{ 'retry' | translate }}\n </button>\n }\n </div>\n </div>\n</div>\n", styles: [".acl-graph-canvas{display:flex;width:100%;height:100%;border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-n-9));background-image:radial-gradient(rgba(var(--aui-color-n-7),.5) 1px,transparent 1px);background-size:10px 10px;background-position:center center;position:relative;overflow:hidden}.acl-graph-canvas:after{content:\"\";display:block;position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}:root .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.75)}.acl-graph-canvas__surface{position:relative}.acl-graph-canvas__links{position:absolute;top:0;left:0;width:1000px;height:1000px;overflow:visible;color:rgb(var(--aui-color-primary));pointer-events:none}.acl-graph-canvas__links .acl-graph-link__line{fill:none;stroke:currentcolor;stroke-width:2px}.acl-graph-canvas__links .acl-graph-link__dot,.acl-graph-canvas__links .acl-graph-link__arrow{fill:currentcolor}.acl-graph-canvas__loading{padding:8px 16px;border-radius:var(--aui-border-radius-m)}.acl-graph-canvas__loading{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-secondary-text))}:root .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.05)}html[aui-theme-mode=light] .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.05)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.1)}}html[aui-theme-mode=dark] .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.1)}.acl-graph-canvas__loading aui-icon{margin-right:8px;color:rgb(var(--aui-color-primary));font-size:var(--aui-icon-size-m)}.acl-graph-canvas__loading-mask{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;cursor:default}.acl-graph-canvas__action-wrapper{position:absolute;display:flex}.acl-graph-canvas__action-wrapper.top{top:var(--aui-spacing-m)}.acl-graph-canvas__action-wrapper.right{right:var(--aui-spacing-m)}.acl-graph-canvas__action-wrapper.left{left:var(--aui-spacing-m)}.acl-graph-canvas__action-wrapper.bottom{bottom:var(--aui-spacing-m)}.acl-graph-canvas acl-graph-actions .acl-graph-canvas__action-wrapper.bottom.right{right:168px}.acl-graph-canvas__action{padding:0 6px;height:24px;display:flex;align-items:center;justify-content:center;background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m);cursor:pointer;-webkit-user-select:none;user-select:none}.acl-graph-canvas__action{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-secondary-text))}:root .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}.acl-graph-canvas__action.square{width:24px}.acl-graph-canvas__action:hover,.acl-graph-canvas__action.active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.acl-graph-canvas__action.disabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-10))}.acl-graph-canvas__action+.acl-graph-canvas__action{margin-left:4px}.acl-graph-canvas__scale-controller{display:flex;align-items:center;justify-content:center;margin:0 4px}.acl-graph-canvas__scale-controller{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-secondary-text))}.acl-graph-canvas__scale-controller{background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m)}:root .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}.acl-graph-canvas__scale-controller{-webkit-user-select:none;user-select:none}.acl-graph-canvas__scale-controller aui-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;cursor:pointer}.acl-graph-canvas__scale-controller aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.acl-graph-canvas__scale-controller aui-icon.disabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-10));cursor:not-allowed}.acl-graph-canvas__scale-controller span{text-align:center;height:16px;width:50px;border-left:1px solid rgb(var(--aui-color-n-8));border-right:1px solid rgb(var(--aui-color-n-8))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14519
|
+
}
|
|
14520
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphCanvasComponent, decorators: [{
|
|
14521
|
+
type: Component,
|
|
14522
|
+
args: [{ selector: 'acl-graph-canvas', changeDetection: ChangeDetectionStrategy.OnPush, providers: [GraphStoreService], standalone: true, imports: [CommonModule, IconComponent, ButtonComponent, TranslatePipe], template: "<div\n #canvas\n class=\"acl-graph-canvas\"\n [ngStyle]=\"canvasStyle\"\n (wheel)=\"handleWheelEvent($event)\"\n (mousedown)=\"handleMouseDown($event)\"\n>\n <div\n #surface\n class=\"acl-graph-canvas__surface\"\n [ngStyle]=\"surfaceStyle\"\n >\n <ng-content></ng-content>\n <ng-content select=\"acl-graph-links\"></ng-content>\n </div>\n\n <div class=\"acl-graph-canvas__action-wrapper right bottom\">\n <div\n class=\"acl-graph-canvas__action square\"\n [title]=\"'panoramic_view' | translate\"\n (click)=\"zoomOverview()\"\n (mousedown)=\"$event.stopPropagation()\"\n >\n <aui-icon icon=\"full_size\"></aui-icon>\n </div>\n <div class=\"acl-graph-canvas__scale-controller\">\n <aui-icon\n icon=\"minus\"\n [title]=\"'zoom_out' | translate\"\n [class.disabled]=\"transformState.scale <= minScale\"\n (click)=\"zoomByDefaultStep('out')\"\n (mousedown)=\"$event.stopPropagation()\"\n ></aui-icon>\n <span>{{ (transformState.scale * 100).toFixed(0) }}%</span>\n <aui-icon\n icon=\"plus\"\n [title]=\"'zoom_in' | translate\"\n [class.disabled]=\"transformState.scale >= maxScale\"\n (click)=\"zoomByDefaultStep('in')\"\n (mousedown)=\"$event.stopPropagation()\"\n ></aui-icon>\n </div>\n <div\n class=\"acl-graph-canvas__action square\"\n [title]=\"'isometric_view' | translate\"\n (click)=\"zoomOriginal()\"\n (mousedown)=\"$event.stopPropagation()\"\n >\n <aui-icon icon=\"actual_size\"></aui-icon>\n </div>\n </div>\n <ng-content select=\"acl-graph-actions\"></ng-content>\n <div\n class=\"acl-graph-canvas__loading-mask\"\n (wheel)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.stopPropagation()\"\n [hidden]=\"!loading && !loadFailed\"\n >\n <div class=\"acl-graph-canvas__loading\">\n @if (loading) {\n <aui-icon icon=\"spinner\"></aui-icon>\n <span>{{ 'loading_please_wait' | translate }}</span>\n }\n @if (loadFailed) {\n <span>{{ 'failed_load_please' | translate }}</span>\n <button\n aui-button=\"text\"\n (click)=\"retry.emit()\"\n >\n {{ 'retry' | translate }}\n </button>\n }\n </div>\n </div>\n</div>\n", styles: [".acl-graph-canvas{display:flex;width:100%;height:100%;border-radius:var(--aui-border-radius-l);background-color:rgb(var(--aui-color-n-9));background-image:radial-gradient(rgba(var(--aui-color-n-7),.5) 1px,transparent 1px);background-size:10px 10px;background-position:center center;position:relative;overflow:hidden}.acl-graph-canvas:after{content:\"\";display:block;position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}:root .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .acl-graph-canvas:after{box-shadow:inset 0 0 4px rgba(var(--aui-color-origin-shadow),.75)}.acl-graph-canvas__surface{position:relative}.acl-graph-canvas__links{position:absolute;top:0;left:0;width:1000px;height:1000px;overflow:visible;color:rgb(var(--aui-color-primary));pointer-events:none}.acl-graph-canvas__links .acl-graph-link__line{fill:none;stroke:currentcolor;stroke-width:2px}.acl-graph-canvas__links .acl-graph-link__dot,.acl-graph-canvas__links .acl-graph-link__arrow{fill:currentcolor}.acl-graph-canvas__loading{padding:8px 16px;border-radius:var(--aui-border-radius-m)}.acl-graph-canvas__loading{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-secondary-text))}:root .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.05)}html[aui-theme-mode=light] .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.05)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.1)}}html[aui-theme-mode=dark] .acl-graph-canvas__loading{background-color:rgba(var(--aui-color-n-1),.1)}.acl-graph-canvas__loading aui-icon{margin-right:8px;color:rgb(var(--aui-color-primary));font-size:var(--aui-icon-size-m)}.acl-graph-canvas__loading-mask{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;cursor:default}.acl-graph-canvas__action-wrapper{position:absolute;display:flex}.acl-graph-canvas__action-wrapper.top{top:var(--aui-spacing-m)}.acl-graph-canvas__action-wrapper.right{right:var(--aui-spacing-m)}.acl-graph-canvas__action-wrapper.left{left:var(--aui-spacing-m)}.acl-graph-canvas__action-wrapper.bottom{bottom:var(--aui-spacing-m)}.acl-graph-canvas acl-graph-actions .acl-graph-canvas__action-wrapper.bottom.right{right:168px}.acl-graph-canvas__action{padding:0 6px;height:24px;display:flex;align-items:center;justify-content:center;background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m);cursor:pointer;-webkit-user-select:none;user-select:none}.acl-graph-canvas__action{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-secondary-text))}:root .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .acl-graph-canvas__action{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}.acl-graph-canvas__action.square{width:24px}.acl-graph-canvas__action:hover,.acl-graph-canvas__action.active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.acl-graph-canvas__action.disabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-10))}.acl-graph-canvas__action+.acl-graph-canvas__action{margin-left:4px}.acl-graph-canvas__scale-controller{display:flex;align-items:center;justify-content:center;margin:0 4px}.acl-graph-canvas__scale-controller{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-secondary-text))}.acl-graph-canvas__scale-controller{background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m)}:root .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .acl-graph-canvas__scale-controller{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}.acl-graph-canvas__scale-controller{-webkit-user-select:none;user-select:none}.acl-graph-canvas__scale-controller aui-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;cursor:pointer}.acl-graph-canvas__scale-controller aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.acl-graph-canvas__scale-controller aui-icon.disabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-10));cursor:not-allowed}.acl-graph-canvas__scale-controller span{text-align:center;height:16px;width:50px;border-left:1px solid rgb(var(--aui-color-n-8));border-right:1px solid rgb(var(--aui-color-n-8))}\n"] }]
|
|
14523
|
+
}], propDecorators: { minScale: [{
|
|
14524
|
+
type: Input
|
|
14525
|
+
}], maxScale: [{
|
|
14526
|
+
type: Input
|
|
14527
|
+
}], originX: [{
|
|
14528
|
+
type: Input
|
|
14529
|
+
}], originY: [{
|
|
14530
|
+
type: Input
|
|
14531
|
+
}], boundary: [{
|
|
14532
|
+
type: Input
|
|
14533
|
+
}], loading: [{
|
|
14534
|
+
type: Input
|
|
14535
|
+
}], loadFailed: [{
|
|
14536
|
+
type: Input
|
|
14537
|
+
}], retry: [{
|
|
14538
|
+
type: Output
|
|
14539
|
+
}], canvasRef: [{
|
|
14540
|
+
type: ViewChild,
|
|
14541
|
+
args: ['canvas', { static: true }]
|
|
14542
|
+
}], surfaceRef: [{
|
|
14543
|
+
type: ViewChild,
|
|
14544
|
+
args: ['surface', { static: true }]
|
|
14545
|
+
}], handleMouseMove: [{
|
|
14546
|
+
type: HostListener,
|
|
14547
|
+
args: ['document:mousemove', ['$event']]
|
|
14548
|
+
}], handleMouseUp: [{
|
|
14549
|
+
type: HostListener,
|
|
14550
|
+
args: ['document:mouseup', []]
|
|
14551
|
+
}] } });
|
|
14552
|
+
function scaleLimit(scale) {
|
|
14553
|
+
return clamp(round(scale, 2), 0.25, 2);
|
|
14554
|
+
}
|
|
14555
|
+
function applyCanvasBoundaries({ transform, rects, boundary, }) {
|
|
14556
|
+
const { origin: [originX, originY], scale, translate, } = transform;
|
|
14557
|
+
const { surfaceRect: { offsetWidth: surfaceWidth, offsetHeight: surfaceHeight }, canvasRect: { offsetWidth: canvasWidth, offsetHeight: canvasHeight }, } = rects;
|
|
14558
|
+
const x = xSelector(originX, [
|
|
14559
|
+
boundary,
|
|
14560
|
+
canvasWidth / 2,
|
|
14561
|
+
canvasWidth - boundary,
|
|
14562
|
+
]);
|
|
14563
|
+
const x1 = x +
|
|
14564
|
+
xSelector(originX, [surfaceWidth * scale, (surfaceWidth * scale) / 2, 0]);
|
|
14565
|
+
const x2 = canvasWidth -
|
|
14566
|
+
(x -
|
|
14567
|
+
xSelector(originX, [
|
|
14568
|
+
0,
|
|
14569
|
+
(surfaceWidth * scale) / 2,
|
|
14570
|
+
surfaceWidth * scale,
|
|
14571
|
+
]));
|
|
14572
|
+
const y = ySelector(originY, [
|
|
14573
|
+
boundary,
|
|
14574
|
+
canvasHeight / 2,
|
|
14575
|
+
canvasHeight - boundary,
|
|
14576
|
+
]);
|
|
14577
|
+
const y1 = y +
|
|
14578
|
+
ySelector(originY, [surfaceHeight * scale, (surfaceHeight * scale) / 2, 0]);
|
|
14579
|
+
const y2 = canvasHeight -
|
|
14580
|
+
(y -
|
|
14581
|
+
ySelector(originY, [
|
|
14582
|
+
0,
|
|
14583
|
+
(surfaceHeight * scale) / 2,
|
|
14584
|
+
surfaceHeight * scale,
|
|
14585
|
+
]));
|
|
14586
|
+
return mergeRight(transform, {
|
|
14587
|
+
translate: [
|
|
14588
|
+
clamp(translate[0], boundary - x1, x2 - boundary),
|
|
14589
|
+
clamp(translate[1], boundary - y1, y2 - boundary),
|
|
14590
|
+
],
|
|
14591
|
+
});
|
|
14592
|
+
}
|
|
14593
|
+
function originCoordinatePoint({ origin: [originX, originY] }, { surfaceRect, canvasRect }) {
|
|
14594
|
+
const [left, top] = coordinate(canvasRect, [
|
|
14595
|
+
surfaceRect.left,
|
|
14596
|
+
surfaceRect.top,
|
|
14597
|
+
]);
|
|
14598
|
+
const x = xSelector(originX, [
|
|
14599
|
+
left,
|
|
14600
|
+
left + surfaceRect.width / 2,
|
|
14601
|
+
left + surfaceRect.width,
|
|
14602
|
+
]);
|
|
14603
|
+
const y = ySelector(originY, [
|
|
14604
|
+
top,
|
|
14605
|
+
top + surfaceRect.height / 2,
|
|
14606
|
+
top + surfaceRect.height,
|
|
14607
|
+
]);
|
|
14608
|
+
return [x, y];
|
|
14609
|
+
}
|
|
14610
|
+
function xSelector(x, [l, c, r]) {
|
|
14611
|
+
return x === 'left' ? l : x === 'center' ? c : r;
|
|
14612
|
+
}
|
|
14613
|
+
function ySelector(y, [t, c, b]) {
|
|
14614
|
+
return y === 'top' ? t : y === 'center' ? c : b;
|
|
14615
|
+
}
|
|
14616
|
+
function coordinate(canvas, [left, top]) {
|
|
14617
|
+
return [left - canvas.left, top - canvas.top];
|
|
14618
|
+
}
|
|
14619
|
+
|
|
14620
|
+
class GraphLinkComponent {
|
|
14621
|
+
get arrowTransform() {
|
|
14622
|
+
const [[x1, y1], [x2, y2]] = this.points;
|
|
14623
|
+
const deg = this.direction === 'v' && y1 < y2
|
|
14624
|
+
? -90
|
|
14625
|
+
: this.direction === 'v'
|
|
14626
|
+
? 90
|
|
14627
|
+
: this.direction === 'h' && x1 < x2
|
|
14628
|
+
? 180
|
|
14629
|
+
: 0;
|
|
14630
|
+
return `translate(${x2}px, ${y2}px) rotate(${deg}deg)`;
|
|
14631
|
+
}
|
|
14632
|
+
constructor() {
|
|
14633
|
+
this.direction = 'v';
|
|
14634
|
+
this.radius = 12;
|
|
14635
|
+
this.arrow = true;
|
|
14636
|
+
this.path = ([[x1, y1], [x2, y2]]) => {
|
|
14637
|
+
const mX = x1 + (x2 - x1) / 2;
|
|
14638
|
+
const mY = y1 + (y2 - y1) / 2;
|
|
14639
|
+
const r = Math.min(Math.abs(x1 - x2) / 2, Math.abs(y1 - y2) / 2, this.radius);
|
|
14640
|
+
return this.direction === 'h'
|
|
14641
|
+
? `M ${x1} ${y1}
|
|
14642
|
+
L ${addOrMinus(x1 > x2, mX, r)} ${y1}
|
|
14643
|
+
Q ${mX} ${y1} ${mX} ${addOrMinus(y1 < y2, y1, r)}
|
|
14644
|
+
L ${mX} ${addOrMinus(y1 > y2, y2, r)}
|
|
14645
|
+
Q ${mX} ${y2} ${addOrMinus(x1 < x2, mX, r)} ${y2}
|
|
14646
|
+
L ${this.arrow ? addOrMinus(x1 > x2, x2, 8) : x2} ${y2}`
|
|
14647
|
+
: `M ${x1} ${y1}
|
|
14648
|
+
L ${x1} ${addOrMinus(y1 > y2, mY, r)}
|
|
14649
|
+
Q ${x1} ${mY} ${addOrMinus(x1 < x2, x1, r)} ${mY}
|
|
14650
|
+
L ${addOrMinus(x1 > x2, x2, r)} ${mY}
|
|
14651
|
+
Q ${x2} ${mY} ${x2} ${addOrMinus(y1 < y2, mY, r)}
|
|
14652
|
+
L ${x2} ${this.arrow ? addOrMinus(y1 > y2, y2, 8) : y2}`;
|
|
14653
|
+
};
|
|
14654
|
+
this.parallelDirection = (a, b, al, bl) => a + al < b ? [a + al, b] : [a, b + bl];
|
|
14655
|
+
this.verticalDirection = (a, b, al, bl) => [
|
|
14656
|
+
a + al / 2,
|
|
14657
|
+
b + bl / 2,
|
|
14658
|
+
];
|
|
14659
|
+
this.onDestroy$$ = new Subject();
|
|
14660
|
+
this.store = inject(GraphStoreService);
|
|
14661
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
14662
|
+
this.store
|
|
14663
|
+
.nodeChanged()
|
|
14664
|
+
.pipe(takeUntil(this.onDestroy$$))
|
|
14665
|
+
.subscribe(() => {
|
|
14666
|
+
const currentPoints = this.points;
|
|
14667
|
+
const nextPoints = this.findPoints();
|
|
14668
|
+
if (isEqual(currentPoints, nextPoints)) {
|
|
14669
|
+
return;
|
|
14670
|
+
}
|
|
14671
|
+
this.points = nextPoints;
|
|
14672
|
+
this.cdr.markForCheck();
|
|
14673
|
+
});
|
|
14674
|
+
}
|
|
14675
|
+
ngOnDestroy() {
|
|
14676
|
+
this.onDestroy$$.next();
|
|
14677
|
+
}
|
|
14678
|
+
findPoints() {
|
|
14679
|
+
const r1 = this.store.getNode(this.from)?.getRect();
|
|
14680
|
+
const r2 = this.store.getNode(this.to)?.getRect();
|
|
14681
|
+
if (!r1 || !r2) {
|
|
14682
|
+
return;
|
|
14683
|
+
}
|
|
14684
|
+
const s = this.store.getSurfaceNode().getRect();
|
|
14685
|
+
const [x1, x2] = (this.direction === 'h' ? this.parallelDirection : this.verticalDirection)(r1.left - s.left, r2.left - s.left, r1.width, r2.width);
|
|
14686
|
+
const [y1, y2] = (this.direction === 'h' ? this.verticalDirection : this.parallelDirection)(r1.top - s.top, r2.top - s.top, r1.height, r2.height);
|
|
14687
|
+
return this.unScale([
|
|
14688
|
+
[x1, y1],
|
|
14689
|
+
[x2, y2],
|
|
14690
|
+
]);
|
|
14691
|
+
}
|
|
14692
|
+
unScale(points) {
|
|
14693
|
+
return points.map(p => p.map(n => n / this.store.getScale()));
|
|
14694
|
+
}
|
|
14695
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14696
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: GraphLinkComponent, isStandalone: true, selector: "g[aclGraphLink]", inputs: { from: "from", to: "to", direction: "direction", radius: "radius", arrow: "arrow", color: "color", path: "path", parallelDirection: "parallelDirection", verticalDirection: "verticalDirection" }, providers: [GraphStoreService], ngImport: i0, template: "@if (points) {\n <svg:path\n class=\"acl-graph-link__line\"\n [attr.d]=\"path(points)\"\n [style.stroke]=\"color\"\n />\n @if (arrow) {\n <svg:circle\n class=\"acl-graph-link__dot\"\n r=\"4\"\n [attr.cx]=\"points[0][0]\"\n [attr.cy]=\"points[0][1]\"\n [style.fill]=\"color\"\n ></svg:circle>\n <svg:polygon\n class=\"acl-graph-link__arrow\"\n points=\"0,0 8,-4 8,4\"\n [style.transform]=\"arrowTransform\"\n [style.fill]=\"color\"\n ></svg:polygon>\n }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14697
|
+
}
|
|
14698
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphLinkComponent, decorators: [{
|
|
14699
|
+
type: Component,
|
|
14700
|
+
args: [{ selector: 'g[aclGraphLink]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], providers: [GraphStoreService], template: "@if (points) {\n <svg:path\n class=\"acl-graph-link__line\"\n [attr.d]=\"path(points)\"\n [style.stroke]=\"color\"\n />\n @if (arrow) {\n <svg:circle\n class=\"acl-graph-link__dot\"\n r=\"4\"\n [attr.cx]=\"points[0][0]\"\n [attr.cy]=\"points[0][1]\"\n [style.fill]=\"color\"\n ></svg:circle>\n <svg:polygon\n class=\"acl-graph-link__arrow\"\n points=\"0,0 8,-4 8,4\"\n [style.transform]=\"arrowTransform\"\n [style.fill]=\"color\"\n ></svg:polygon>\n }\n}\n" }]
|
|
14701
|
+
}], ctorParameters: () => [], propDecorators: { from: [{
|
|
14702
|
+
type: Input
|
|
14703
|
+
}], to: [{
|
|
14704
|
+
type: Input
|
|
14705
|
+
}], direction: [{
|
|
14706
|
+
type: Input
|
|
14707
|
+
}], radius: [{
|
|
14708
|
+
type: Input
|
|
14709
|
+
}], arrow: [{
|
|
14710
|
+
type: Input
|
|
14711
|
+
}], color: [{
|
|
14712
|
+
type: Input
|
|
14713
|
+
}], path: [{
|
|
14714
|
+
type: Input
|
|
14715
|
+
}], parallelDirection: [{
|
|
14716
|
+
type: Input
|
|
14717
|
+
}], verticalDirection: [{
|
|
14718
|
+
type: Input
|
|
14719
|
+
}] } });
|
|
14720
|
+
function addOrMinus(condition, v1, v2) {
|
|
14721
|
+
return (condition ? add : subtract)(v1, v2);
|
|
14722
|
+
}
|
|
14723
|
+
|
|
14724
|
+
class GraphLinksComponent {
|
|
14725
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14726
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: GraphLinksComponent, isStandalone: true, selector: "acl-graph-links", ngImport: i0, template: "<svg class=\"acl-graph-canvas__links\">\n <ng-content select=\"[aclGraphLink]\"></ng-content>\n</svg>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14727
|
+
}
|
|
14728
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphLinksComponent, decorators: [{
|
|
14729
|
+
type: Component,
|
|
14730
|
+
args: [{ selector: 'acl-graph-links', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<svg class=\"acl-graph-canvas__links\">\n <ng-content select=\"[aclGraphLink]\"></ng-content>\n</svg>\n" }]
|
|
14731
|
+
}] });
|
|
14732
|
+
|
|
14733
|
+
class GraphNodeDirective {
|
|
14734
|
+
constructor() {
|
|
14735
|
+
this.hostRect = () => getRect(this.el.nativeElement);
|
|
14736
|
+
this.el = inject(ElementRef);
|
|
14737
|
+
this.store = inject(GraphStoreService);
|
|
14738
|
+
}
|
|
14739
|
+
ngOnInit() {
|
|
14740
|
+
this.store.registerNode(this.id, { getRect: this.hostRect, el: this.el });
|
|
14741
|
+
}
|
|
14742
|
+
ngOnDestroy() {
|
|
14743
|
+
this.store.unregisterNode(this.id);
|
|
14744
|
+
}
|
|
14745
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphNodeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
14746
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: GraphNodeDirective, isStandalone: true, selector: "[aclGraphNode]", inputs: { id: ["aclGraphNode", "id"] }, providers: [GraphStoreService], ngImport: i0 }); }
|
|
14747
|
+
}
|
|
14748
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: GraphNodeDirective, decorators: [{
|
|
14749
|
+
type: Directive,
|
|
14750
|
+
args: [{
|
|
14751
|
+
selector: '[aclGraphNode]',
|
|
14752
|
+
standalone: true,
|
|
14753
|
+
providers: [GraphStoreService],
|
|
14754
|
+
}]
|
|
14755
|
+
}], propDecorators: { id: [{
|
|
14756
|
+
type: Input,
|
|
14757
|
+
args: ['aclGraphNode']
|
|
14758
|
+
}] } });
|
|
14759
|
+
|
|
14760
|
+
const GRAPH_COMPONENTS = [
|
|
14761
|
+
GraphActionsComponent,
|
|
14762
|
+
GraphCanvasComponent,
|
|
14763
|
+
GraphLinksComponent,
|
|
14764
|
+
GraphLinkComponent,
|
|
14765
|
+
GraphNodeDirective,
|
|
14766
|
+
];
|
|
14767
|
+
|
|
13826
14768
|
/**
|
|
13827
14769
|
* Generated bundle index. Do not edit.
|
|
13828
14770
|
*/
|
|
13829
14771
|
|
|
13830
|
-
export { ACTION, AIT_API_GROUP, ALL, ALL_VALUE, ANNOTATIONS, API_GATEWAY, ARGOCD_GROUP, ARRAY_FORM_TABLE_MODULE, ARRAY_TABLE_FORM_ERROR_BG, ASSIGN_ALL, ASYNC_DATA_MODULE, AccessMode, AccessModes, AclTableVirtualComponent, AclTableVirtualHeaderDefDirective,
|
|
14772
|
+
export { ACTION, AIT_API_GROUP, ALL, ALL_VALUE, ANNOTATIONS, API_GATEWAY, ARGOCD_GROUP, ARRAY_FORM_TABLE_MODULE, ARRAY_TABLE_FORM_ERROR_BG, ASSIGN_ALL, ASYNC_DATA_MODULE, AccessMode, AccessModes, AclTableVirtualComponent, AclTableVirtualHeaderDefDirective, AclTableVirtualPlaceholderDefDirective, AclTableVirtualRowDefDirective, AlaudaDeployStatus, AlaudaRunningStatus, ArrayFormTableComponent, ArrayFormTableFooterDirective, ArrayFormTableHeaderDirective, ArrayFormTableRowControlDirective, ArrayFormTableRowDirective, ArrayFormTableRowErrorDirective, ArrayFormTableRowSeparatorDirective, ArrayFormTableZeroStateDirective, AsyncDataLoader, AsyncFunctionValidatorDirective, AuiCodeEditorHelperDirective, BASE_TIMEZONE, BUILT_IN_YAML_EXAMPLES, BaseFormContainer, BaseNestedFormControl, BaseNestedFormControlPure, BaseStringMapFormComponent, Bracket, CHART_PICKER_TIME_RANGES, CLUSTER, COMMON_RESOURCE_DEFINITIONS, CORE_UNITS, CORE_UNIT_REG, CREATE, CREATED_AT, CREATION_TIMESTAMP, CREATOR, CRON_ENABLE_7_FOR_SUNDAY, CRON_FORMAT_ERROR, CRON_MIN_INTERVAL_ERROR, CRYPTO_HEADER_KEY, CRYPTO_KEY, CRYPTO_RANDOM_HEADER_KEY, CRYPTO_TYPE, CUSTOM, CUSTOMIZED, CUSTOM_RANGE, CalcPipe, CardSectionComponent, ClickOutsideDirective, CloudHelmRequestStateEnum, CodeDisplayDialogComponent, CoerceNumberDirective, ConfirmDeleteComponent, ConfirmDeleteContentDirective, ConfirmDeleteLabelDirective, ConfirmDeleteTipDirective, ControlValueTraceDirective, CronHumanReadablePipe, CronWeekDays, CrontabNextPipe, CurrentTimeComponent, DATE_FORMAT, DATE_TIME_FORMAT, DEFAULT_CODE_EDITOR_OPTIONS, DEFAULT_CONTAINER_ANNOTATION, DEFAULT_OPERATOR, DEFAULT_OPTIONS, DEFAULT_REASON, DEFAULT_ZH_ERROR, DELIMITER, DESCRIPTION, DISPLAY_NAME, DNS1123SubdomainValidator, DOMAIN_PATTERN, DOMAIN_PATTERN_BASE, DOT, DOWNGRADE_WATCH_ENABLED, DOWNGRADE_WATCH_POLLING, DUPLICATE_ERROR_KEY, DUPLICATION_JUSTIFY_STRATEGY, DataSource, DateRangePickerComponent, DeclareDirective, DefaultStatusColorMapper, DefaultStatusIconMapper, DeleteType, DeletingTagComponent, DisabledContainerComponent, DisabledDirective, DragHandleDirective, DurationPipe, E2eAttributeBindingDirective, EFFECT_DIRECTIVE_MODULE, EMAIL_PATTERN, EMPTY, ERRORS_MAPPER_MODULE, ESCAPE_DEACTIVATE_CHECK, ErrorStateComponent, ErrorsMapperComponent, ErrorsMapperDirective, FALSE, FIELDSET_GROUP_COMPONENTS, FeatureGateDirective, FeedbackNotificationComponent, FieldSetColumnComponent, FieldSetColumnGroupComponent, FieldSetGroupComponent, FieldSetItemActionDirective, FieldSetItemComponent, FileResultType, FoldableBlockComponent, FoldableItemInTableComponent, FormItemMarginEffectDirective, FunctionValidatorDirective, GLOBAL_CLUSTER, GRAPH_COMPONENTS, GenericStatusColor, GenericStatusIcon, GraphActionsComponent, GraphCanvasComponent, GraphLinkComponent, GraphLinksComponent, GraphNodeDirective, GuardStatus, HTTP_ADDRESS_PATTERN, HTTP_DUAL_IP_OR_DOMAIN_PATTERN, HTTP_IP_OR_DOMAIN_PATTERN, HYPHEN, HelmRequestPhaseEnum, HelpDocDirective, HelpDocUrlPipe, HelpDocumentComponent, HelpDocumentService, IMAGE_TAG_PATTERN, INT_PATTERN, INT_ZERO_PATTERN, IPV4_IPV6_ADDRESS_HOSTNAME_PORT_PATTERN, IPV6_ADDRESS_HOSTNAME_PATTERN, IPV6_ADDRESS_HOSTNAME_PORT_PATTERN, IPV6_PATTERN_BASE, IP_ADDRESS_HOSTNAME_PATTERN, IP_ADDRESS_HOSTNAME_PATTERN_EXTEND, IP_ADDRESS_HOSTNAME_PORT_PATTERN, IP_ADDRESS_PATTERN, IP_ADDRESS_PORT_PATTERN, IP_ADDRESS_SUBNET_PATTERN, IP_PATTERN, IP_PATTERN_BASE, IP_V4_OR_V6_PATTERN, IP_V6_ADDRESS_PATTERN, IP_V6_PATTERN, InterceptDeactivateDirective, InterceptDeactivateGuard, InterceptDeactivateService, JobStatusColorMapper, JobStatusEnum, JobStatusIconMapper, K8SResourceList, K8SResourceListFooterComponent, K8SResourcePagedList, K8S_APP_API_GROUP, K8S_CORE_API_GROUP, K8S_RESOURCE_LABEL_KEY_NAME_PATTERN, K8S_RESOURCE_LABEL_KEY_PREFIX_PATTERN, K8S_RESOURCE_LABEL_VALUE_PATTERN, K8S_RESOURCE_LIST_MODULE, K8S_RESOURCE_NAME_START_WITH_CHARS_ONLY, K8S_RESOURCE_TRANSLATE_KEY, K8sListFooterLoadingErrorDirective, K8sListFooterNoDataDirective, K8sResourceAction, K8sResourceMarkComponent, K8sResourceTranslateKeyPipe, K8sSharedUtilService, K8sYamlDisplayDialogComponent, KNOWN_COLUMNS, KeyValueFormTableComponent, KeyValueTableComponent, LABELS, LINK, LOCAL_STORAGE_KEY_THEME_MODE, ListDisplayComponent, ListenResizeDirective, LoadAction, LocaleTransformPipe, MACHINE_API_GROUP, METADATA, MUTABLE_BASIC_OPTIONS, MUTABLE_MODULE, MarkedPipe, MaxLengthValidatorDirective, MaxValidatorDirective, MinLengthValidatorDirective, MinValidatorDirective, MinimumFormatPipe, MosaicComponent, MosaicLeftDirective, MosaicRightDirective, MultiSearchActionInputComponent, MultiSearchAdvanced, MultiSearchBasic, MultiSearchComponent, MutableDirective, NAME, NAMESPACE, NOTIFICATION_SERVER_NAME, NOTIFY_DURATION_HEADER, NOTIFY_ON_ERROR_HEADER, NOTIFY_ON_ERROR_HEADERS, NOT_NOTIFY_ON_ERROR_HEADERS, NUMBER_PATTERN, NamespaceBadgeComponent, NotBeValidatorDirective, NotificationUtilService, OAM_GROUP, OnResizeChangeService, OneOfValidatorDirective, OverviewBannerComponent, PACKAGE_RUNTIME_VALUE, PAGE_GUARD_MODULE, PLATFORM_OPS_MODE, PORT_PATTERN, POSITIVE_INT_PATTERN, POSITIVE_NUMBER_PATTERN, PREFIX_LABEL_CLASS, PROJECT, PUBLIC_NAMESPACE, PageGuardComponent, PageGuardContentDirective, PageGuardDescriptionDirective, PageGuardImageDirective, PageGuardOperationDirective, PageStateComponent, ParseJsonTranslatePipe, PasswordInputComponent, PluginClusterSelectorComponent, PodStatusColorMapper, PodStatusComponent, PodStatusEnum, PodStatusIconMapper, PreventClipboardDirective, PreventDirective, PreventHandler, ProductKey, REASON_MAP, RESOURCE_MAC_TYPES, RESOURCE_REQUIREMENT_KEYS, ReadonlyFieldDirective, Reason, RelativeTimeComponent, RequestPool, ResizeDirective, ResourceErrorInterceptor, ResourceLabelComponent, ResourceMultiSelectComponent, ResourceYamlDisplayComponent, ResourceYamlEditorComponent, SERVICE_PORT_BASE_PROTOCOLS, SERVICE_PORT_PROTOCOLS, SERVICE_SESSION_AFFINITIES, SERVICE_TYPES, SLASH, SPACE, SPEC, STATUS, STRATEGY_JUDGE_MAPPER, STRONG_PASSWORD_SPECIAL_CHARS, ScrollBorderObserverDirective, ScrollToFirstInvalidDirective, ScrollToFirstInvalidMarkerDirective, SearchItemComponent, SearchItemLabelDirective, SearchPanelComponent, SecretType, SelectPrefixLabelDirective, SpanComponent, StatusIconComponent, StopDirective, StringArrayFormTableComponent, StrongPasswordDirective, StrongPasswordTooltipComponent, TABLE_VIRTUAL_MODULE, TEMPLATE_OPTIONS, TIMEZONES, TIME_FORMAT, TOKEN_HELP_DOC_DATA, TRUE, TableCellDefDirective, TableComponent, TableCustomColumnsComponent, TableHeaderCellDefDirective, TableUtilService, TagsLabelComponent, TaintEffect, TerminatingTagComponent, TestTagComponent, TextEllipsisComponent, TextTooltipDirective, TextWithUrlComponent, ThemeTransformPipe, TimezoneDisplayPipe, TolerationOperator, TrimDirective, UNDERSCORE, UNITS, UNIT_REG, UPDATE, UPDATED_AT, UPDATED__AT, UpdateDescriptionDialogComponent, UpdateDisplayNameDialogComponent, UpdateKeyValueDialogComponent, UploadFileComponent, UserSecurityPolicyRule, UserState, VOLUME_SNAPSHOT_GROUP, ValidateRowDuplicateService, ValidatorsDirective, VolumeMode, VolumeModes, VolumeTypeEnum, WEEK_DAYS, WILDCARD, WORKSPACE_PARAMS, WRITABLE_METHODS, WorkloadKind, WorkloadStatusColorMapper, WorkloadStatusEnum, WorkloadStatusIconComponent, WorkloadStatusIconMapper, YamlUtilService, ZH_ERRORS, ZeroStateComponent, addUnitCoreM, addUnitGi, addUnitMi, appendImageHeader, atobWithFallback, buildImageAddress, buildUrl, checkValueExit, clearWindowsXtermTools, compareMinorVersion, compareVersion, copyValue, createNestedFormControl, cronValidator, cronValidatorBasic, dataTransfer, dateValueOf, defaultFilter, defaultSorter, emptyObjectRemoveRuleFactory, errorColor, extractListParamsFromRoute, extractPagedListParams, extractWorkspace, extractWorkspaceFromRoute, filterEmptyValue, filterTrees, findPath, firstPath, formatCPU, formatMemory, formatNumber, genControlDepsMap, getAppropriateMemory, getBaseHref, getCpu, getCronWeekDayNumbers, getDisabledState, getDisabledState$, getHelpDocUrl, getHostname, getJobStatus, getK8sResourceAnnotationErrorMapper, getK8sResourceAnnotationErrorMapper$, getK8sResourceLabelErrorMapper, getK8sResourceLabelErrorMapper$, getMemory, getPickerTimeRanges, getPodAggregatedStatus, getPodIPs, getPodStatus, getPrivateIP, getPrivateIPv4, getPrivateIPv6, getRelativePath, getResourceLimitAsyncValidatorFn, getResourceLimitValidatorFn, getResourceValue, getResourceViewModel, getToPath, getValidVersion, getWorkloadStatus, initGreaterValidator, isAbsoluteUrl, isB, isCronFieldCountCorrect, isCronWeekDayCorrect, isCronWeekDaysContinuous, isErrorMessage, isJsonObjectString, isK8sErrorStatus, isK8sResource, isL, isR, isSelectAll, isT, isValidRID, isValidWorkspace, k8sResourceAnnotationKeyValidator, k8sResourceAnnotationValidator, k8sResourceLabelKeyValidator, k8sResourceLabelValidator, k8sResourceLabelValueValidator, loadEnv, logsReadOptions, mapTrees, matchExpressionsToString, matchLabelsToString, maxParallelByHttpVersion, noShowRowError, normalizeParams, numToStr, parseDaemonSetStatus, parseDeploymentStatus, parseImageAddress, parseRID, parseStatefulSetStatus, parseToWorkloadStatus, parseUrlInText, parseValidImageName, parseValueAndUnit, parseVersion, parseWorkspace, prefixFilterRuleFactory, primaryColor, queryListParams, randomPassword, reduceTrees, removeDirtyFieldsBeforeUpdate, resourceUnits, rowBackgroundColorFn, safeAssign, scrollIntoView, setNode, setupErrorMapper, shortNum, sortByCreationTimestamp, stringToMatchLabels, stringifyRID, stringifyWorkspace, successColor, tableSort, tableSortAdvance, tagRenderDefault, toLowerFirstLetter, toNumber, toPercent, toPx, toUnitGi, toUnitI, toUnitMi, toUnitNum, toUnitNumM, trackByName, trackByUid, transferResource, versionRegex, warnColor, withLoadState, workspaceToPath, yamlFilterField };
|
|
13831
14773
|
//# sourceMappingURL=alauda-fe-dynamic-plugin-shared.mjs.map
|