@alauda-fe/dynamic-plugin-shared 0.0.1-alpha.10 → 0.0.1-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.
- package/assets/i18n/en/dynamic-plugin-shared.json +3 -0
- package/components/index.d.ts +3 -0
- package/components/namespace-badge/component.d.ts +6 -0
- package/components/namespace-selector/component.d.ts +28 -0
- package/components/namespace-selector/constants.d.ts +2 -0
- package/components/namespace-selector/index.d.ts +3 -0
- package/components/namespace-selector/namespace-list/component.d.ts +46 -0
- package/components/namespace-selector/types.d.ts +5 -0
- package/components/test-tag/component.d.ts +5 -0
- package/esm2022/components/index.mjs +4 -1
- package/esm2022/components/namespace-badge/component.mjs +14 -0
- package/esm2022/components/namespace-selector/component.mjs +126 -0
- package/esm2022/components/namespace-selector/constants.mjs +3 -0
- package/esm2022/components/namespace-selector/index.mjs +4 -0
- package/esm2022/components/namespace-selector/namespace-list/component.mjs +191 -0
- package/esm2022/components/namespace-selector/types.mjs +2 -0
- package/esm2022/components/test-tag/component.mjs +24 -0
- package/esm2022/components/zero-state/zero-state.component.mjs +3 -3
- package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs +332 -5
- package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs.map +1 -1
- package/package.json +1 -1
package/components/index.d.ts
CHANGED
|
@@ -30,3 +30,6 @@ export * from './disabled-container';
|
|
|
30
30
|
export * from './upload-file/component';
|
|
31
31
|
export * from './help-document';
|
|
32
32
|
export * from './page-guard';
|
|
33
|
+
export * from './namespace-selector';
|
|
34
|
+
export * from './namespace-badge/component';
|
|
35
|
+
export * from './test-tag/component';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class NamespaceBadgeComponent {
|
|
3
|
+
name: string;
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NamespaceBadgeComponent, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NamespaceBadgeComponent, "acl-namespace-badge", never, { "name": { "alias": "name"; "required": false; }; }, {}, never, never, true, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { K8sApiService, ResourceSelectorPopupRef, ResourceSelectorPopupService } from '@alauda-fe/dynamic-plugin-sdk';
|
|
2
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, TemplateRef } from '@angular/core';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { KubernetesResource, Namespace } from '../../types';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class NamespaceSelectorComponent {
|
|
7
|
+
private readonly popupService;
|
|
8
|
+
private readonly k8sService;
|
|
9
|
+
private readonly cdr;
|
|
10
|
+
private readonly elementRef;
|
|
11
|
+
popupTemplate: TemplateRef<any>;
|
|
12
|
+
cluster: string;
|
|
13
|
+
cluster$: Observable<string>;
|
|
14
|
+
value: string;
|
|
15
|
+
value$: Observable<string>;
|
|
16
|
+
valueChange: EventEmitter<KubernetesResource>;
|
|
17
|
+
ALL_NAMESPACE_KEY: string;
|
|
18
|
+
isActive: boolean;
|
|
19
|
+
popupRef: ResourceSelectorPopupRef;
|
|
20
|
+
destroy$$: Observable<void>;
|
|
21
|
+
namespaces$: Observable<Namespace[]>;
|
|
22
|
+
constructor(popupService: ResourceSelectorPopupService, k8sService: K8sApiService, cdr: ChangeDetectorRef, elementRef: ElementRef);
|
|
23
|
+
openPopup(): void;
|
|
24
|
+
closePopup(): void;
|
|
25
|
+
onSelect(item: KubernetesResource): void;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NamespaceSelectorComponent, never>;
|
|
27
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NamespaceSelectorComponent, "acl-namespace-selector", never, { "cluster": { "alias": "cluster"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { K8sUtilService } from '@alauda-fe/dynamic-plugin-sdk';
|
|
2
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';
|
|
4
|
+
import { KubernetesResource, Project } from '../../../types';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class NamespaceListComponent {
|
|
7
|
+
private readonly cdr;
|
|
8
|
+
private readonly k8sUtil;
|
|
9
|
+
grid: ElementRef<HTMLElement>;
|
|
10
|
+
namespaces: KubernetesResource[];
|
|
11
|
+
namespaces$: Observable<KubernetesResource[]>;
|
|
12
|
+
value: string;
|
|
13
|
+
cluster: string;
|
|
14
|
+
cluster$: Observable<string>;
|
|
15
|
+
selectItem: EventEmitter<KubernetesResource>;
|
|
16
|
+
loading: boolean;
|
|
17
|
+
reload$$: Subject<void>;
|
|
18
|
+
destroy$$: Observable<void>;
|
|
19
|
+
load$$: ReplaySubject<{
|
|
20
|
+
project: Project;
|
|
21
|
+
cluster: string;
|
|
22
|
+
}>;
|
|
23
|
+
keyword$$: BehaviorSubject<string>;
|
|
24
|
+
namespaceType$$: BehaviorSubject<string>;
|
|
25
|
+
private scrollInitialized;
|
|
26
|
+
namespaceTypes: {
|
|
27
|
+
value: string;
|
|
28
|
+
key: string;
|
|
29
|
+
}[];
|
|
30
|
+
statusIcon: Record<string, string>;
|
|
31
|
+
filteredList$: Observable<KubernetesResource[]>;
|
|
32
|
+
constructor(cdr: ChangeDetectorRef, k8sUtil: K8sUtilService);
|
|
33
|
+
reload(): void;
|
|
34
|
+
onSelect(selected: KubernetesResource): void;
|
|
35
|
+
getHighlightedNameStrs: (item: KubernetesResource) => {
|
|
36
|
+
text: string;
|
|
37
|
+
isHighlighted?: boolean;
|
|
38
|
+
}[];
|
|
39
|
+
getHighlightedDisplayNameStrs: (item: KubernetesResource) => {
|
|
40
|
+
text: string;
|
|
41
|
+
isHighlighted?: boolean;
|
|
42
|
+
}[];
|
|
43
|
+
private initScroll;
|
|
44
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NamespaceListComponent, never>;
|
|
45
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NamespaceListComponent, "acl-namespace-list", never, { "namespaces": { "alias": "namespaces"; "required": false; }; "value": { "alias": "value"; "required": false; }; "cluster": { "alias": "cluster"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "selectItem": "selectItem"; }, never, never, true, never>;
|
|
46
|
+
}
|
|
@@ -30,4 +30,7 @@ export * from './disabled-container';
|
|
|
30
30
|
export * from './upload-file/component';
|
|
31
31
|
export * from './help-document';
|
|
32
32
|
export * from './page-guard';
|
|
33
|
-
|
|
33
|
+
export * from './namespace-selector';
|
|
34
|
+
export * from './namespace-badge/component';
|
|
35
|
+
export * from './test-tag/component';
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxjQUFjLEdBQ2YsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpcm0tZGVsZXRlL2NvbmZpcm0tZGVsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpcm0tZGVsZXRlL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQtc2V0JztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZy1tYXNrL2xvYWRpbmctbWFzay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtcHJlZml4LWxhYmVsL2RpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWxhdGl2ZS10aW1lL2NvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZm9sZGFibGUtYmxvY2svY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9sZGFibGUtaXRlbS1pbi10YWJsZS9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXJtaW5hdGluZy10YWcvY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dC13aXRoLXVybC9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkLXNlY3Rpb24vY2FyZC1zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnJlbnQtdGltZS9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LXRvb2x0aXAvZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1yYW5nZS1waWNrZXInO1xuZXhwb3J0ICogZnJvbSAnLi90YWdzLWxhYmVsL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy1pY29uL3N0YXR1cy1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQtZWxsaXBzaXMvY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC1pbnB1dC9jb21wb25lbnQnO1xuZXhwb3J0IHsgUmVzb3VyY2VMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vcmVzb3VyY2UtbGFiZWwvY29tcG9uZW50JztcblxuZXhwb3J0IHsgUmVzb3VyY2VNdWx0aVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vcmVzb3VyY2UtbXVsdGktc2VsZWN0L2NvbXBvbmVudCc7XG5leHBvcnQge1xuICBpc1NlbGVjdEFsbCxcbiAgQUxMX1ZBTFVFLFxuICBjaGVja1ZhbHVlRXhpdCxcbn0gZnJvbSAnLi9yZXNvdXJjZS1tdWx0aS1zZWxlY3QvdXRpbCc7XG5leHBvcnQgeyBTZWFyY2hJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtcGFuZWwvc2VhcmNoLWl0ZW0vY29tcG9uZW50JztcbmV4cG9ydCB7IFNlYXJjaFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtcGFuZWwvY29tcG9uZW50JztcbmV4cG9ydCB7IFNlYXJjaEl0ZW1MYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vc2VhcmNoLXBhbmVsL2hlbHBlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1jb2x1bW5zLXNldHRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9wb2Qtc3RhdHVzJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2xvYWQtc3RhdHVzJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzYWJsZWQtY29udGFpbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vdXBsb2FkLWZpbGUvY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGVscC1kb2N1bWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2UtZ3VhcmQnO1xuXG5leHBvcnQgKiBmcm9tICcuL25hbWVzcGFjZS1zZWxlY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL25hbWVzcGFjZS1iYWRnZS9jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Rlc3QtdGFnL2NvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IconComponent } from '@alauda/ui';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NamespaceBadgeComponent {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NamespaceBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NamespaceBadgeComponent, isStandalone: true, selector: "acl-namespace-badge", inputs: { name: "name" }, ngImport: i0, template: "<div>\n <aui-icon\n icon=\"prod:namespace\"\n class=\"tw-mr-4\"\n ></aui-icon>\n <span\n class=\"text-truncate\"\n [attr.title]=\"name\"\n >{{ name }}</span\n >\n</div>\n", styles: [":host{display:flex;max-width:220px}.with-colon{display:inline-flex;word-break:keep-all;flex-shrink:0;font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.text-truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NamespaceBadgeComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'acl-namespace-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div>\n <aui-icon\n icon=\"prod:namespace\"\n class=\"tw-mr-4\"\n ></aui-icon>\n <span\n class=\"text-truncate\"\n [attr.title]=\"name\"\n >{{ name }}</span\n >\n</div>\n", styles: [":host{display:flex;max-width:220px}.with-colon{display:inline-flex;word-break:keep-all;flex-shrink:0;font-weight:500}.with-colon:after{content:\":\";margin-right:8px}.text-truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"] }]
|
|
11
|
+
}], propDecorators: { name: [{
|
|
12
|
+
type: Input
|
|
13
|
+
}] } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvbmFtZXNwYWNlLWJhZGdlL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb21wb25lbnRzL25hbWVzcGFjZS1iYWRnZS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTFFLE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHlHQ1hwQywrTEFXQSwyU0RGWSxhQUFhOzsyRkFFWix1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsYUFBYSxDQUFDOzhCQUdmLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1uYW1lc3BhY2UtYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybDogJ3N0eWxlcy5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmFtZXNwYWNlQmFkZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG59XG4iLCI8ZGl2PlxuICA8YXVpLWljb25cbiAgICBpY29uPVwicHJvZDpuYW1lc3BhY2VcIlxuICAgIGNsYXNzPVwidHctbXItNFwiXG4gID48L2F1aS1pY29uPlxuICA8c3BhblxuICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgW2F0dHIudGl0bGVdPVwibmFtZVwiXG4gICAgPnt7IG5hbWUgfX08L3NwYW5cbiAgPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { IconComponent, TOOLTIP_MODULE } from '@alauda/ui';
|
|
3
|
+
import { COMMON_RESOURCE_DEFINITIONS, K8sApiService, ResourceSelectorPopupService, } from '@alauda-fe/dynamic-plugin-sdk';
|
|
4
|
+
import { AsyncPipe, NgClass } from '@angular/common';
|
|
5
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
6
|
+
import { filter, map, Observable, switchMap, takeUntil } from 'rxjs';
|
|
7
|
+
import { matchExpressionsToString } from '../../k8s-resource-list';
|
|
8
|
+
import { ObservableInput, onDestroy, publishRef, skipError } from '../../utils';
|
|
9
|
+
import { ALL_NAMESPACE_KEY, DEV_NAMESPACE_KEY } from './constants';
|
|
10
|
+
import { NamespaceListComponent } from './namespace-list/component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@alauda-fe/dynamic-plugin-sdk";
|
|
13
|
+
export class NamespaceSelectorComponent {
|
|
14
|
+
constructor(popupService, k8sService, cdr, elementRef) {
|
|
15
|
+
this.popupService = popupService;
|
|
16
|
+
this.k8sService = k8sService;
|
|
17
|
+
this.cdr = cdr;
|
|
18
|
+
this.elementRef = elementRef;
|
|
19
|
+
this.valueChange = new EventEmitter();
|
|
20
|
+
this.ALL_NAMESPACE_KEY = ALL_NAMESPACE_KEY;
|
|
21
|
+
this.isActive = false;
|
|
22
|
+
this.destroy$$ = onDestroy();
|
|
23
|
+
this.namespaces$ = this.cluster$.pipe(switchMap(cluster => this.k8sService
|
|
24
|
+
.getResourceList({
|
|
25
|
+
definition: COMMON_RESOURCE_DEFINITIONS.NAMESPACE,
|
|
26
|
+
cluster,
|
|
27
|
+
queryParams: {
|
|
28
|
+
limit: '0',
|
|
29
|
+
labelSelector: matchExpressionsToString([
|
|
30
|
+
{
|
|
31
|
+
key: 'namespace-type',
|
|
32
|
+
operator: '!=',
|
|
33
|
+
values: ['system'],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
key: 'cpaas.io/project',
|
|
37
|
+
operator: '!=',
|
|
38
|
+
values: ['cpaas-system'],
|
|
39
|
+
},
|
|
40
|
+
]),
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
.pipe(map(list => list.items), skipError([]), takeUntil(this.destroy$$))), publishRef());
|
|
44
|
+
this.namespaces$.pipe(takeUntil(this.destroy$$)).subscribe(data => {
|
|
45
|
+
if (!data.length) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (!this.value || this.value === ALL_NAMESPACE_KEY) {
|
|
49
|
+
let selected = null;
|
|
50
|
+
const cached = localStorage.getItem(DEV_NAMESPACE_KEY);
|
|
51
|
+
const cachedNamespace = data.find(item => item.metadata.name === cached);
|
|
52
|
+
selected = cachedNamespace || data[0];
|
|
53
|
+
this.onSelect(selected);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const current = data.find(item => item.metadata.name === this.value);
|
|
57
|
+
if (!current && data[0]) {
|
|
58
|
+
this.onSelect(data[0]);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
this.value$
|
|
63
|
+
.pipe(takeUntil(this.destroy$$), filter(Boolean))
|
|
64
|
+
.subscribe(value => {
|
|
65
|
+
localStorage.setItem(DEV_NAMESPACE_KEY, value);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
openPopup() {
|
|
69
|
+
if (this.isActive) {
|
|
70
|
+
this.closePopup();
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.isActive = true;
|
|
74
|
+
this.popupRef = this.popupService.open({
|
|
75
|
+
origin: this.elementRef,
|
|
76
|
+
content: this.popupTemplate,
|
|
77
|
+
});
|
|
78
|
+
this.popupRef.afterClosed().subscribe(() => {
|
|
79
|
+
this.isActive = false;
|
|
80
|
+
this.cdr.markForCheck();
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
closePopup() {
|
|
85
|
+
this.isActive = false;
|
|
86
|
+
this.popupRef.close();
|
|
87
|
+
}
|
|
88
|
+
onSelect(item) {
|
|
89
|
+
this.value = item.metadata.name;
|
|
90
|
+
// localStorage.setItem(DEV_NAMESPACE_KEY, item.metadata.name);
|
|
91
|
+
this.valueChange.emit(item);
|
|
92
|
+
if (this.isActive) {
|
|
93
|
+
this.closePopup();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NamespaceSelectorComponent, deps: [{ token: i1.ResourceSelectorPopupService }, { token: i1.K8sApiService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NamespaceSelectorComponent, isStandalone: true, selector: "acl-namespace-selector", inputs: { cluster: "cluster", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "popupTemplate", first: true, predicate: ["popup"], descendants: true, static: true }], ngImport: i0, template: "<!-- <div\n class=\"acl-resource-selector\"\n [ngClass]=\"{\n 'acl-resource-selector--active': isActive,\n 'acl-resource-selector--lite': true,\n }\"\n [auiTooltip]=\"popup\"\n auiTooltipTrigger=\"click\"\n auiTooltipType=\"info\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipClass=\"scale-width\"\n [auiTooltipHideOnClick]=\"false\"\n>\n <div class=\"acl-resource-selector__item namespace\">\n <span class=\"icon-wrapper\">\n <aui-icon icon=\"prod:namespace\"></aui-icon>\n </span>\n <span class=\"selected-name text-truncate\">{{ value }} </span>\n </div>\n <div class=\"acl-resource-selector__arrow\">\n <aui-icon icon=\"caret_down_s\"></aui-icon>\n </div>\n</div> -->\n\n<div\n [hidden]=\"value === ALL_NAMESPACE_KEY\"\n class=\"acl-resource-selector\"\n [ngClass]=\"{\n 'acl-resource-selector--active': isActive,\n 'acl-resource-selector--lite': true,\n }\"\n (click)=\"openPopup()\"\n>\n <div class=\"acl-resource-selector__item namespace\">\n <span class=\"icon-wrapper\">\n <aui-icon icon=\"prod:namespace\"></aui-icon>\n </span>\n <span class=\"selected-name text-truncate\">{{ value }} </span>\n </div>\n <div class=\"acl-resource-selector__arrow\">\n <aui-icon icon=\"caret_down_s\"></aui-icon>\n </div>\n</div>\n\n<ng-template #popup>\n <acl-namespace-list\n [namespaces]=\"namespaces$ | async\"\n (selectItem)=\"onSelect($event)\"\n [value]=\"value\"\n ></acl-namespace-list>\n</ng-template>\n", styles: [":host{display:flex}:host::ng-deep .icon-wrapper{position:relative;display:flex;justify-content:center;align-items:center;width:16px;height:16px;flex-shrink:0;font-size:var(--aui-icon-size-m)}:root :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}html[aui-theme-mode=light] :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}}html[aui-theme-mode=dark] :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}:host::ng-deep .text-truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host::ng-deep .acl-resource-selector{user-select:none;display:flex;color:var(--acl-page-header-title-color);cursor:pointer;padding:0 8px}:host::ng-deep .acl-resource-selector .selected-name{color:var(--acl-page-header-text-color)}:host::ng-deep .acl-resource-selector--active,:host::ng-deep .acl-resource-selector:hover{background-color:rgb(var(--aui-color-primary));color:#fff;border-radius:2px}:root :host::ng-deep .acl-resource-selector--active .icon-wrapper,:root :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: rgb(var(--aui-color-p-4))}html[aui-theme-mode=light] :host::ng-deep .acl-resource-selector--active .icon-wrapper,html[aui-theme-mode=light] :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: rgb(var(--aui-color-p-4))}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] :host::ng-deep .acl-resource-selector--active .icon-wrapper,html[aui-theme-mode=system] :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: #b3d7fc}}html[aui-theme-mode=dark] :host::ng-deep .acl-resource-selector--active .icon-wrapper,html[aui-theme-mode=dark] :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: #b3d7fc}:host::ng-deep .acl-resource-selector--active .selected-name,:host::ng-deep .acl-resource-selector:hover .selected-name{color:#fff}:host::ng-deep .acl-resource-selector--lite{padding:0 4px;color:rgb(var(--aui-color-n-2))}:host::ng-deep .acl-resource-selector--lite:hover{background-color:rgb(var(--aui-color-b-6))}:host::ng-deep .acl-resource-selector--lite:hover .selected-name,:host::ng-deep .acl-resource-selector--lite:hover .acl-resource-selector__arrow{color:rgb(var(--aui-color-n-2))}:host::ng-deep .acl-resource-selector--lite .acl-resource-selector__item{height:24px}:host::ng-deep .acl-resource-selector--lite:hover,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover{background-color:rgb(var(--aui-color-b-5))}:host::ng-deep .acl-resource-selector--lite:hover aui-icon,:host::ng-deep .acl-resource-selector--lite:hover .with-colon,:host::ng-deep .acl-resource-selector--lite:hover .selected-name,:host::ng-deep .acl-resource-selector--lite:hover .acl-resource-selector__arrow,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active aui-icon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active .with-colon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active .selected-name,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active .acl-resource-selector__arrow,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover aui-icon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover .with-colon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover .selected-name,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover .acl-resource-selector__arrow{color:rgb(var(--aui-color-primary))}:host::ng-deep .acl-resource-selector__item{margin-right:20px;height:32px;display:inline-flex;align-items:center;font-size:12px;max-width:270px}@media screen and (width <= 1280px){:host::ng-deep .acl-resource-selector__item{max-width:178px;margin-right:8px}}:host::ng-deep .acl-resource-selector__item .icon-wrapper{margin-right:4px}:host::ng-deep .acl-resource-selector__arrow{margin-left:-16px;align-items:center;display:inline-flex;width:16px;justify-content:center}@media screen and (width <= 1280px){:host::ng-deep .acl-resource-selector__arrow{margin-left:-4px}}:host::ng-deep .acl-resource-selector__tooltip{max-width:unset}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NamespaceListComponent, selector: "acl-namespace-list", inputs: ["namespaces", "value", "cluster", "loading"], outputs: ["selectItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
98
|
+
}
|
|
99
|
+
__decorate([
|
|
100
|
+
ObservableInput(),
|
|
101
|
+
__metadata("design:type", Observable)
|
|
102
|
+
], NamespaceSelectorComponent.prototype, "cluster$", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
ObservableInput(),
|
|
105
|
+
__metadata("design:type", Observable)
|
|
106
|
+
], NamespaceSelectorComponent.prototype, "value$", void 0);
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NamespaceSelectorComponent, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{ selector: 'acl-namespace-selector', standalone: true, imports: [
|
|
110
|
+
IconComponent,
|
|
111
|
+
AsyncPipe,
|
|
112
|
+
NgClass,
|
|
113
|
+
NamespaceListComponent,
|
|
114
|
+
TOOLTIP_MODULE,
|
|
115
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div\n class=\"acl-resource-selector\"\n [ngClass]=\"{\n 'acl-resource-selector--active': isActive,\n 'acl-resource-selector--lite': true,\n }\"\n [auiTooltip]=\"popup\"\n auiTooltipTrigger=\"click\"\n auiTooltipType=\"info\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipClass=\"scale-width\"\n [auiTooltipHideOnClick]=\"false\"\n>\n <div class=\"acl-resource-selector__item namespace\">\n <span class=\"icon-wrapper\">\n <aui-icon icon=\"prod:namespace\"></aui-icon>\n </span>\n <span class=\"selected-name text-truncate\">{{ value }} </span>\n </div>\n <div class=\"acl-resource-selector__arrow\">\n <aui-icon icon=\"caret_down_s\"></aui-icon>\n </div>\n</div> -->\n\n<div\n [hidden]=\"value === ALL_NAMESPACE_KEY\"\n class=\"acl-resource-selector\"\n [ngClass]=\"{\n 'acl-resource-selector--active': isActive,\n 'acl-resource-selector--lite': true,\n }\"\n (click)=\"openPopup()\"\n>\n <div class=\"acl-resource-selector__item namespace\">\n <span class=\"icon-wrapper\">\n <aui-icon icon=\"prod:namespace\"></aui-icon>\n </span>\n <span class=\"selected-name text-truncate\">{{ value }} </span>\n </div>\n <div class=\"acl-resource-selector__arrow\">\n <aui-icon icon=\"caret_down_s\"></aui-icon>\n </div>\n</div>\n\n<ng-template #popup>\n <acl-namespace-list\n [namespaces]=\"namespaces$ | async\"\n (selectItem)=\"onSelect($event)\"\n [value]=\"value\"\n ></acl-namespace-list>\n</ng-template>\n", styles: [":host{display:flex}:host::ng-deep .icon-wrapper{position:relative;display:flex;justify-content:center;align-items:center;width:16px;height:16px;flex-shrink:0;font-size:var(--aui-icon-size-m)}:root :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}html[aui-theme-mode=light] :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}}html[aui-theme-mode=dark] :host::ng-deep .icon-wrapper{--bicolor-main: rgb(var(--aui-color-primary));--bicolor-secondary: rgb(var(--aui-color-p-3))}:host::ng-deep .text-truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host::ng-deep .acl-resource-selector{user-select:none;display:flex;color:var(--acl-page-header-title-color);cursor:pointer;padding:0 8px}:host::ng-deep .acl-resource-selector .selected-name{color:var(--acl-page-header-text-color)}:host::ng-deep .acl-resource-selector--active,:host::ng-deep .acl-resource-selector:hover{background-color:rgb(var(--aui-color-primary));color:#fff;border-radius:2px}:root :host::ng-deep .acl-resource-selector--active .icon-wrapper,:root :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: rgb(var(--aui-color-p-4))}html[aui-theme-mode=light] :host::ng-deep .acl-resource-selector--active .icon-wrapper,html[aui-theme-mode=light] :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: rgb(var(--aui-color-p-4))}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] :host::ng-deep .acl-resource-selector--active .icon-wrapper,html[aui-theme-mode=system] :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: #b3d7fc}}html[aui-theme-mode=dark] :host::ng-deep .acl-resource-selector--active .icon-wrapper,html[aui-theme-mode=dark] :host::ng-deep .acl-resource-selector:hover .icon-wrapper{--bicolor-main: white;--bicolor-secondary: #b3d7fc}:host::ng-deep .acl-resource-selector--active .selected-name,:host::ng-deep .acl-resource-selector:hover .selected-name{color:#fff}:host::ng-deep .acl-resource-selector--lite{padding:0 4px;color:rgb(var(--aui-color-n-2))}:host::ng-deep .acl-resource-selector--lite:hover{background-color:rgb(var(--aui-color-b-6))}:host::ng-deep .acl-resource-selector--lite:hover .selected-name,:host::ng-deep .acl-resource-selector--lite:hover .acl-resource-selector__arrow{color:rgb(var(--aui-color-n-2))}:host::ng-deep .acl-resource-selector--lite .acl-resource-selector__item{height:24px}:host::ng-deep .acl-resource-selector--lite:hover,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover{background-color:rgb(var(--aui-color-b-5))}:host::ng-deep .acl-resource-selector--lite:hover aui-icon,:host::ng-deep .acl-resource-selector--lite:hover .with-colon,:host::ng-deep .acl-resource-selector--lite:hover .selected-name,:host::ng-deep .acl-resource-selector--lite:hover .acl-resource-selector__arrow,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active aui-icon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active .with-colon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active .selected-name,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active .acl-resource-selector__arrow,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover aui-icon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover .with-colon,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover .selected-name,:host::ng-deep .acl-resource-selector--lite.acl-resource-selector--active:hover .acl-resource-selector__arrow{color:rgb(var(--aui-color-primary))}:host::ng-deep .acl-resource-selector__item{margin-right:20px;height:32px;display:inline-flex;align-items:center;font-size:12px;max-width:270px}@media screen and (width <= 1280px){:host::ng-deep .acl-resource-selector__item{max-width:178px;margin-right:8px}}:host::ng-deep .acl-resource-selector__item .icon-wrapper{margin-right:4px}:host::ng-deep .acl-resource-selector__arrow{margin-left:-16px;align-items:center;display:inline-flex;width:16px;justify-content:center}@media screen and (width <= 1280px){:host::ng-deep .acl-resource-selector__arrow{margin-left:-4px}}:host::ng-deep .acl-resource-selector__tooltip{max-width:unset}\n"] }]
|
|
116
|
+
}], ctorParameters: () => [{ type: i1.ResourceSelectorPopupService }, { type: i1.K8sApiService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { popupTemplate: [{
|
|
117
|
+
type: ViewChild,
|
|
118
|
+
args: ['popup', { static: true }]
|
|
119
|
+
}], cluster: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], cluster$: [], value: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], value$: [], valueChange: [{
|
|
124
|
+
type: Output
|
|
125
|
+
}] } });
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvbmFtZXNwYWNlLXNlbGVjdG9yL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb21wb25lbnRzL25hbWVzcGFjZS1zZWxlY3Rvci90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLGFBQWEsRUFFYiw0QkFBNEIsR0FDN0IsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBZ0JwRSxNQUFNLE9BQU8sMEJBQTBCO0lB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QkFBMEIsaVNDMUN2QyxvOUNBbURBLHVxSkRqQkksYUFBYSx1SkFDYixTQUFTLDhDQUNULE9BQU8sb0ZBQ1Asc0JBQXNCOztBQVd4QjtJQURDLGVBQWUsRUFBRTs4QkFDUCxVQUFVOzREQUFTO0FBTTlCO0lBREMsZUFBZSxFQUFFOzhCQUNWLFVBQVU7MERBQVM7MkZBWmhCLDBCQUEwQjtrQkFkdEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FHdEIsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLHNCQUFzQjt3QkFDdEIsY0FBYztxQkFDZixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTtzTEFJL0MsYUFBYTtzQkFEWixTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRzNCLE9BQU87c0JBQWYsS0FBSztnQkFFTixRQUFRLE1BR1IsS0FBSztzQkFESixLQUFLO2dCQUlOLE1BQU0sTUFHTixXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJY29uQ29tcG9uZW50LCBUT09MVElQX01PRFVMRSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLFxuICBLOHNBcGlTZXJ2aWNlLFxuICBSZXNvdXJjZVNlbGVjdG9yUG9wdXBSZWYsXG4gIFJlc291cmNlU2VsZWN0b3JQb3B1cFNlcnZpY2UsXG59IGZyb20gJ0BhbGF1ZGEtZmUvZHluYW1pYy1wbHVnaW4tc2RrJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBtYXRjaEV4cHJlc3Npb25zVG9TdHJpbmcgfSBmcm9tICcuLi8uLi9rOHMtcmVzb3VyY2UtbGlzdCc7XG5pbXBvcnQgeyBLdWJlcm5ldGVzUmVzb3VyY2UsIE5hbWVzcGFjZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgb25EZXN0cm95LCBwdWJsaXNoUmVmLCBza2lwRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmltcG9ydCB7IEFMTF9OQU1FU1BBQ0VfS0VZLCBERVZfTkFNRVNQQUNFX0tFWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IE5hbWVzcGFjZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL25hbWVzcGFjZS1saXN0L2NvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1uYW1lc3BhY2Utc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZS5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBOZ0NsYXNzLFxuICAgIE5hbWVzcGFjZUxpc3RDb21wb25lbnQsXG4gICAgVE9PTFRJUF9NT0RVTEUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYW1lc3BhY2VTZWxlY3RvckNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ3BvcHVwJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcG9wdXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKSBjbHVzdGVyOiBzdHJpbmc7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjbHVzdGVyJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBASW5wdXQoKVxuICB2YWx1ZTogc3RyaW5nO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB2YWx1ZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBAT3V0cHV0KClcbiAgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEt1YmVybmV0ZXNSZXNvdXJjZT4oKTtcblxuICBBTExfTkFNRVNQQUNFX0tFWSA9IEFMTF9OQU1FU1BBQ0VfS0VZO1xuXG4gIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgcG9wdXBSZWY6IFJlc291cmNlU2VsZWN0b3JQb3B1cFJlZjtcblxuICBkZXN0cm95JCQgPSBvbkRlc3Ryb3koKTtcblxuICBuYW1lc3BhY2VzJCA9IHRoaXMuY2x1c3RlciQucGlwZShcbiAgICBzd2l0Y2hNYXAoY2x1c3RlciA9PlxuICAgICAgdGhpcy5rOHNTZXJ2aWNlXG4gICAgICAgIC5nZXRSZXNvdXJjZUxpc3Q8TmFtZXNwYWNlPih7XG4gICAgICAgICAgZGVmaW5pdGlvbjogQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLk5BTUVTUEFDRSxcbiAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICBsaW1pdDogJzAnLFxuICAgICAgICAgICAgbGFiZWxTZWxlY3RvcjogbWF0Y2hFeHByZXNzaW9uc1RvU3RyaW5nKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ25hbWVzcGFjZS10eXBlJyxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogJyE9JyxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IFsnc3lzdGVtJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdjcGFhcy5pby9wcm9qZWN0JyxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogJyE9JyxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IFsnY3BhYXMtc3lzdGVtJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAobGlzdCA9PiBsaXN0Lml0ZW1zKSxcbiAgICAgICAgICBza2lwRXJyb3IoW10gYXMgTmFtZXNwYWNlW10pLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICAgICksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cFNlcnZpY2U6IFJlc291cmNlU2VsZWN0b3JQb3B1cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNTZXJ2aWNlOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICkge1xuICAgIHRoaXMubmFtZXNwYWNlcyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy52YWx1ZSB8fCB0aGlzLnZhbHVlID09PSBBTExfTkFNRVNQQUNFX0tFWSkge1xuICAgICAgICBsZXQgc2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICBjb25zdCBjYWNoZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShERVZfTkFNRVNQQUNFX0tFWSk7XG4gICAgICAgIGNvbnN0IGNhY2hlZE5hbWVzcGFjZSA9IGRhdGEuZmluZChcbiAgICAgICAgICBpdGVtID0+IGl0ZW0ubWV0YWRhdGEubmFtZSA9PT0gY2FjaGVkLFxuICAgICAgICApO1xuICAgICAgICBzZWxlY3RlZCA9IGNhY2hlZE5hbWVzcGFjZSB8fCBkYXRhWzBdO1xuICAgICAgICB0aGlzLm9uU2VsZWN0KHNlbGVjdGVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBkYXRhLmZpbmQoaXRlbSA9PiBpdGVtLm1ldGFkYXRhLm5hbWUgPT09IHRoaXMudmFsdWUpO1xuICAgICAgICBpZiAoIWN1cnJlbnQgJiYgZGF0YVswXSkge1xuICAgICAgICAgIHRoaXMub25TZWxlY3QoZGF0YVswXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnZhbHVlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSwgZmlsdGVyKEJvb2xlYW4pKVxuICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKERFVl9OQU1FU1BBQ0VfS0VZLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9wZW5Qb3B1cCgpIHtcbiAgICBpZiAodGhpcy5pc0FjdGl2ZSkge1xuICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgdGhpcy5wb3B1cFJlZiA9IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oe1xuICAgICAgICBvcmlnaW46IHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgY29udGVudDogdGhpcy5wb3B1cFRlbXBsYXRlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnBvcHVwUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlUG9wdXAoKSB7XG4gICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMucG9wdXBSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIG9uU2VsZWN0KGl0ZW06IEt1YmVybmV0ZXNSZXNvdXJjZSkge1xuICAgIHRoaXMudmFsdWUgPSBpdGVtLm1ldGFkYXRhLm5hbWU7XG4gICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oREVWX05BTUVTUEFDRV9LRVksIGl0ZW0ubWV0YWRhdGEubmFtZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0pO1xuICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICB0aGlzLmNsb3NlUG9wdXAoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS0gPGRpdlxuICBjbGFzcz1cImFjbC1yZXNvdXJjZS1zZWxlY3RvclwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnYWNsLXJlc291cmNlLXNlbGVjdG9yLS1hY3RpdmUnOiBpc0FjdGl2ZSxcbiAgICAnYWNsLXJlc291cmNlLXNlbGVjdG9yLS1saXRlJzogdHJ1ZSxcbiAgfVwiXG4gIFthdWlUb29sdGlwXT1cInBvcHVwXCJcbiAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gIGF1aVRvb2x0aXBUeXBlPVwiaW5mb1wiXG4gIGF1aVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbSBzdGFydFwiXG4gIGF1aVRvb2x0aXBDbGFzcz1cInNjYWxlLXdpZHRoXCJcbiAgW2F1aVRvb2x0aXBIaWRlT25DbGlja109XCJmYWxzZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJhY2wtcmVzb3VyY2Utc2VsZWN0b3JfX2l0ZW0gbmFtZXNwYWNlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJpY29uLXdyYXBwZXJcIj5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwicHJvZDpuYW1lc3BhY2VcIj48L2F1aS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlbGVjdGVkLW5hbWUgdGV4dC10cnVuY2F0ZVwiPnt7IHZhbHVlIH19IDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhY2wtcmVzb3VyY2Utc2VsZWN0b3JfX2Fycm93XCI+XG4gICAgPGF1aS1pY29uIGljb249XCJjYXJldF9kb3duX3NcIj48L2F1aS1pY29uPlxuICA8L2Rpdj5cbjwvZGl2PiAtLT5cblxuPGRpdlxuICBbaGlkZGVuXT1cInZhbHVlID09PSBBTExfTkFNRVNQQUNFX0tFWVwiXG4gIGNsYXNzPVwiYWNsLXJlc291cmNlLXNlbGVjdG9yXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdhY2wtcmVzb3VyY2Utc2VsZWN0b3ItLWFjdGl2ZSc6IGlzQWN0aXZlLFxuICAgICdhY2wtcmVzb3VyY2Utc2VsZWN0b3ItLWxpdGUnOiB0cnVlLFxuICB9XCJcbiAgKGNsaWNrKT1cIm9wZW5Qb3B1cCgpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImFjbC1yZXNvdXJjZS1zZWxlY3Rvcl9faXRlbSBuYW1lc3BhY2VcIj5cbiAgICA8c3BhbiBjbGFzcz1cImljb24td3JhcHBlclwiPlxuICAgICAgPGF1aS1pY29uIGljb249XCJwcm9kOm5hbWVzcGFjZVwiPjwvYXVpLWljb24+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0ZWQtbmFtZSB0ZXh0LXRydW5jYXRlXCI+e3sgdmFsdWUgfX0gPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImFjbC1yZXNvdXJjZS1zZWxlY3Rvcl9fYXJyb3dcIj5cbiAgICA8YXVpLWljb24gaWNvbj1cImNhcmV0X2Rvd25fc1wiPjwvYXVpLWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcG9wdXA+XG4gIDxhY2wtbmFtZXNwYWNlLWxpc3RcbiAgICBbbmFtZXNwYWNlc109XCJuYW1lc3BhY2VzJCB8IGFzeW5jXCJcbiAgICAoc2VsZWN0SXRlbSk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICA+PC9hY2wtbmFtZXNwYWNlLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const DEV_NAMESPACE_KEY = 'DEV_NAMESPACE';
|
|
2
|
+
export const ALL_NAMESPACE_KEY = '~all-namespaces~';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvbmFtZXNwYWNlLXNlbGVjdG9yL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVWX05BTUVTUEFDRV9LRVkgPSAnREVWX05BTUVTUEFDRSc7XG5leHBvcnQgY29uc3QgQUxMX05BTUVTUEFDRV9LRVkgPSAnfmFsbC1uYW1lc3BhY2Vzfic7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './constants';
|
|
2
|
+
export * from './component';
|
|
3
|
+
export * from './types';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29tcG9uZW50cy9uYW1lc3BhY2Utc2VsZWN0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbiJdfQ==
|