You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ne...@apache.org on 2022/11/14 17:33:26 UTC
[helix] branch master updated: Cluster deletion confirmation for helix-front (#2274)
This is an automated email from the ASF dual-hosted git repository.
nealsun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/helix.git
The following commit(s) were added to refs/heads/master by this push:
new ad27fa19e Cluster deletion confirmation for helix-front (#2274)
ad27fa19e is described below
commit ad27fa19e883df517f24a29fe3f24b3d1756e39d
Author: helix-bot <11...@users.noreply.github.com>
AuthorDate: Mon Nov 14 09:33:20 2022 -0800
Cluster deletion confirmation for helix-front (#2274)
Help ensure that a clusters is only deleted
when the user really intends to delete that cluster.
---
helix-front/documentation.json | 1120 ++++++++++++++++----
helix-front/package.json | 10 +-
.../cluster-detail/cluster-detail.component.ts | 10 +-
.../confirm-dialog-test.component.ts | 40 +
.../confirm-dialog/confirm-dialog.component.html | 4 +-
.../confirm-dialog/confirm-dialog.component.ts | 3 +
.../confirm-dialog/confirm-dialog.stories.ts | 48 +
helix-front/src/app/shared/helper.service.ts | 9 +-
.../app/shared/state-label/state-label.stories.ts | 6 +-
helix-front/yarn.lock | 476 ++++-----
10 files changed, 1297 insertions(+), 429 deletions(-)
diff --git a/helix-front/documentation.json b/helix-front/documentation.json
index 9b3d435e8..14b5e1a02 100644
--- a/helix-front/documentation.json
+++ b/helix-front/documentation.json
@@ -3,13 +3,22 @@
"interfaces": [
{
"name": "HelixSession",
- "id": "interface-HelixSession-129325d3c46054df5f164f300ace41c5307a1f0c897af7994c7c0d8b4d4131735b381921ac7c6593cd091ad8c926c99ae57438852dd82916b220e8808542213c",
+ "id": "interface-HelixSession-1d5c4ab566de85237551f45f493e21719366587b74c3cbe29150e24a8b98c8d99fcfbc92dc9e5660b74dbd8c2e762d623e02620e1ce4d21c1e253f925a5e8d3a",
"file": "server/controllers/d.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "interface",
- "sourceCode": "import { Request } from 'express';\n\nexport interface HelixUserRequest extends Request {\n session?: HelixSession;\n}\n\ninterface HelixSession {\n username: string;\n isAdmin: boolean;\n}\n",
+ "sourceCode": "import { Request } from 'express';\n\nexport interface HelixUserRequest extends Request {\n session?: HelixSession;\n}\n\ninterface HelixSession {\n // since this token is from a configurable\n // identity source, the format really is\n // `any` from helix-front's point of view.\n identityToken: any;\n username: string;\n isAdmin: boolean;\n}\n",
"properties": [
+ {
+ "name": "identityToken",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "any",
+ "optional": false,
+ "description": "",
+ "line": 11
+ },
{
"name": "isAdmin",
"deprecated": false,
@@ -17,7 +26,7 @@
"type": "boolean",
"optional": false,
"description": "",
- "line": 9
+ "line": 13
},
{
"name": "username",
@@ -26,7 +35,7 @@
"type": "string",
"optional": false,
"description": "",
- "line": 8
+ "line": 12
}
],
"indexSignatures": [],
@@ -35,12 +44,12 @@
},
{
"name": "HelixUserRequest",
- "id": "interface-HelixUserRequest-129325d3c46054df5f164f300ace41c5307a1f0c897af7994c7c0d8b4d4131735b381921ac7c6593cd091ad8c926c99ae57438852dd82916b220e8808542213c",
+ "id": "interface-HelixUserRequest-1d5c4ab566de85237551f45f493e21719366587b74c3cbe29150e24a8b98c8d99fcfbc92dc9e5660b74dbd8c2e762d623e02620e1ce4d21c1e253f925a5e8d3a",
"file": "server/controllers/d.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "interface",
- "sourceCode": "import { Request } from 'express';\n\nexport interface HelixUserRequest extends Request {\n session?: HelixSession;\n}\n\ninterface HelixSession {\n username: string;\n isAdmin: boolean;\n}\n",
+ "sourceCode": "import { Request } from 'express';\n\nexport interface HelixUserRequest extends Request {\n session?: HelixSession;\n}\n\ninterface HelixSession {\n // since this token is from a configurable\n // identity source, the format really is\n // `any` from helix-front's point of view.\n identityToken: any;\n username: string;\n isAdmin: boolean;\n}\n",
"properties": [
{
"name": "session",
@@ -100,12 +109,12 @@
},
{
"name": "ListFieldObject",
- "id": "interface-ListFieldObject-232abac58ace56edbeca1efd341fc2e2a74aa4ee8745604c402893dd5c1324ec8d7f333c38b0c356334b997ec2e3eee9bb288895cfa2e7ade36020f75b5e1edb",
+ "id": "interface-ListFieldObject-4b8fff68ba7ccb7a14a733c002190a7e5c760999f3a699168565ddeecf085df759c8918b7b69b728e480ecdbd894c972284cbe97c29ad2413b6f9ffed799247d",
"file": "src/app/shared/models/node.model.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "interface",
- "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields: SimpleFieldObject[] = [];\n listFields: ListFieldObject[] = [];\n mapFields: MapFieldObject[] = [];\n [...]
+ "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface Payload {\n id: string;\n simpleFields?: any;\n listFields?: any;\n mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields [...]
"properties": [
{
"name": "name",
@@ -132,12 +141,12 @@
},
{
"name": "MapFieldObject",
- "id": "interface-MapFieldObject-232abac58ace56edbeca1efd341fc2e2a74aa4ee8745604c402893dd5c1324ec8d7f333c38b0c356334b997ec2e3eee9bb288895cfa2e7ade36020f75b5e1edb",
+ "id": "interface-MapFieldObject-4b8fff68ba7ccb7a14a733c002190a7e5c760999f3a699168565ddeecf085df759c8918b7b69b728e480ecdbd894c972284cbe97c29ad2413b6f9ffed799247d",
"file": "src/app/shared/models/node.model.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "interface",
- "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields: SimpleFieldObject[] = [];\n listFields: ListFieldObject[] = [];\n mapFields: MapFieldObject[] = [];\n [...]
+ "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface Payload {\n id: string;\n simpleFields?: any;\n listFields?: any;\n mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields [...]
"properties": [
{
"name": "name",
@@ -162,14 +171,64 @@
"kind": 165,
"methods": []
},
+ {
+ "name": "Payload",
+ "id": "interface-Payload-4b8fff68ba7ccb7a14a733c002190a7e5c760999f3a699168565ddeecf085df759c8918b7b69b728e480ecdbd894c972284cbe97c29ad2413b6f9ffed799247d",
+ "file": "src/app/shared/models/node.model.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "interface",
+ "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface Payload {\n id: string;\n simpleFields?: any;\n listFields?: any;\n mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields [...]
+ "properties": [
+ {
+ "name": "id",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "optional": false,
+ "description": "",
+ "line": 19
+ },
+ {
+ "name": "listFields",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "any",
+ "optional": true,
+ "description": "",
+ "line": 21
+ },
+ {
+ "name": "mapFields",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "any",
+ "optional": true,
+ "description": "",
+ "line": 22
+ },
+ {
+ "name": "simpleFields",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "any",
+ "optional": true,
+ "description": "",
+ "line": 20
+ }
+ ],
+ "indexSignatures": [],
+ "kind": 165,
+ "methods": []
+ },
{
"name": "SimpleFieldObject",
- "id": "interface-SimpleFieldObject-232abac58ace56edbeca1efd341fc2e2a74aa4ee8745604c402893dd5c1324ec8d7f333c38b0c356334b997ec2e3eee9bb288895cfa2e7ade36020f75b5e1edb",
+ "id": "interface-SimpleFieldObject-4b8fff68ba7ccb7a14a733c002190a7e5c760999f3a699168565ddeecf085df759c8918b7b69b728e480ecdbd894c972284cbe97c29ad2413b6f9ffed799247d",
"file": "src/app/shared/models/node.model.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "interface",
- "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields: SimpleFieldObject[] = [];\n listFields: ListFieldObject[] = [];\n mapFields: MapFieldObject[] = [];\n [...]
+ "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface Payload {\n id: string;\n simpleFields?: any;\n listFields?: any;\n mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields [...]
"properties": [
{
"name": "name",
@@ -491,7 +550,7 @@
},
{
"name": "ClusterService",
- "id": "injectable-ClusterService-e6f198f99cb2bfd4380eb8bcd03ef0e49d1378dafc3683ef3aa23f2f0dd4c6bbd94ad38e3709ddd15c8121eac68c90507fb6469735386f6a6e91e5d77ed176a5",
+ "id": "injectable-ClusterService-1b7c5db1def61476053458bfd34ed41240ad6e103043443492ad80db7a658c7b17903da30e6b5ef6d27e6a8b8328f61e4e04bb8c9fcae6e5ba79bc784ed5ccdf",
"file": "src/app/cluster/shared/cluster.service.ts",
"properties": [],
"methods": [
@@ -616,7 +675,7 @@
"optional": false,
"returnType": "any",
"typeParameters": [],
- "line": 53,
+ "line": 50,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -1056,13 +1115,13 @@
"deprecationMessage": "",
"description": "",
"rawdescription": "\n",
- "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport { Cluster } from './cluster.model';\nimport { HelixService } from '../../core/helix.service';\n\n@Injectable()\nexport class ClusterService extends HelixService {\n public getAll() {\n return this.request('/clusters').pipe(\n map((data) => data.clusters.sort().map((name) => <Cluster>{ name }))\n );\n }\n\n public get(name: string) {\n return this.reques [...]
+ "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport { Cluster } from './cluster.model';\nimport { HelixService } from '../../core/helix.service';\n\n@Injectable()\nexport class ClusterService extends HelixService {\n public getAll() {\n return this.request('/clusters').pipe(\n map((data) => data.clusters.sort().map((name) => <Cluster>{ name }))\n );\n }\n\n public get(name: string) {\n return this.reques [...]
"extends": "HelixService",
"type": "injectable"
},
{
"name": "ConfigurationService",
- "id": "injectable-ConfigurationService-32a90e7fa21feb5bea58be9002a29016ff108772f09befab1d35dcc795a5b6c4cab7370263429d07790ba511a7b363096897181bdd09e526ae7edb962be09170",
+ "id": "injectable-ConfigurationService-534b30e63399b706eee2a76fbb8d44a72de6ee2c61b3a7f527e7cc195d0abd5046bb0e618a1907c090432d0219d36c58192d392fb25fdfa2a065583c7115e949",
"file": "src/app/configuration/shared/configuration.service.ts",
"properties": [],
"methods": [
@@ -1795,7 +1854,7 @@
"deprecationMessage": "",
"description": "",
"rawdescription": "\n",
- "sourceCode": "import { Injectable } from '@angular/core';\n\nimport { HelixService } from '../../core/helix.service';\nimport { Node } from '../../shared/models/node.model';\n\n@Injectable()\nexport class ConfigurationService extends HelixService {\n public getClusterConfig(name: string) {\n return this.request(`/clusters/${name}/configs`);\n }\n\n public setClusterConfig(name: string, config: Node) {\n return this.post(\n `/clusters/${name}/configs?command=upd [...]
+ "sourceCode": "import { Injectable } from '@angular/core';\n\nimport { HelixService } from '../../core/helix.service';\nimport { Node } from '../../shared/models/node.model';\n\n@Injectable()\nexport class ConfigurationService extends HelixService {\n public getClusterConfig(name: string) {\n return this.request(`/clusters/${name}/configs`);\n }\n\n public setClusterConfig(name: string, config: Node) {\n return this.post(\n `/clusters/${name}/configs?command=upd [...]
"extends": "HelixService",
"type": "injectable"
},
@@ -2408,16 +2467,47 @@
},
{
"name": "HelperService",
- "id": "injectable-HelperService-6669da0574cbd942c0064b22d0c292e0f9aa8c6d87978943317572c746f13f71637fafa35f678537f9b0cbe6e4faba0b4a64eca2540bd97273880b712d2f7c28",
+ "id": "injectable-HelperService-260f75c0868c1437c527847fe3fb6e12cb0b8074436cea09c1529bcee3274b19a7dfeb2f893bccf5ca56f862aa02892c24b387af93bb9f414971ce8d44beb90a",
"file": "src/app/shared/helper.service.ts",
"properties": [],
"methods": [
+ {
+ "name": "parseMessage",
+ "args": [
+ {
+ "name": "message",
+ "type": "string | object",
+ "deprecated": false,
+ "deprecationMessage": ""
+ }
+ ],
+ "optional": false,
+ "returnType": "any",
+ "typeParameters": [],
+ "line": 12,
+ "deprecated": false,
+ "deprecationMessage": "",
+ "modifierKind": [
+ 121
+ ],
+ "jsdoctags": [
+ {
+ "name": "message",
+ "type": "string | object",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "tagName": {
+ "text": "param"
+ }
+ }
+ ]
+ },
{
"name": "showConfirmation",
"args": [
{
"name": "message",
- "type": "string",
+ "type": "string | object",
"deprecated": false,
"deprecationMessage": ""
}
@@ -2425,13 +2515,13 @@
"optional": false,
"returnType": "any",
"typeParameters": [],
- "line": 27,
+ "line": 33,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
{
"name": "message",
- "type": "string",
+ "type": "string | object",
"deprecated": false,
"deprecationMessage": "",
"tagName": {
@@ -2445,7 +2535,7 @@
"args": [
{
"name": "message",
- "type": "string",
+ "type": "string | object",
"deprecated": false,
"deprecationMessage": ""
}
@@ -2453,13 +2543,13 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 12,
+ "line": 18,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
{
"name": "message",
- "type": "string",
+ "type": "string | object",
"deprecated": false,
"deprecationMessage": "",
"tagName": {
@@ -2473,7 +2563,7 @@
"args": [
{
"name": "message",
- "type": "string",
+ "type": "string | object",
"deprecated": false,
"deprecationMessage": ""
}
@@ -2481,13 +2571,13 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 21,
+ "line": 27,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
{
"name": "message",
- "type": "string",
+ "type": "string | object",
"deprecated": false,
"deprecationMessage": "",
"tagName": {
@@ -2501,7 +2591,7 @@
"deprecationMessage": "",
"description": "",
"rawdescription": "\n",
- "sourceCode": "import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { AlertDialogComponent } from './dialog/alert-dialog/alert-dialog.component';\nimport { ConfirmDialogComponent } from './dialog/confirm-dialog/confirm-dialog.component';\n\n@Injectable()\nexport class HelperService {\n constructor(protected snackBar: MatSnackBar, protected dialog: MatDialog) {} [...]
+ "sourceCode": "import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { AlertDialogComponent } from './dialog/alert-dialog/alert-dialog.component';\nimport { ConfirmDialogComponent } from './dialog/confirm-dialog/confirm-dialog.component';\n\n@Injectable()\nexport class HelperService {\n constructor(protected snackBar: MatSnackBar, protected dialog: MatDialog) {} [...]
"constructorObj": {
"name": "constructor",
"description": "",
@@ -2929,7 +3019,7 @@
},
{
"name": "InstanceService",
- "id": "injectable-InstanceService-22f0f27fd80c231ddf8268d57b88a1c203499f1e18a8dd44148bcc84e74a741fd5a5acd199b089f092af74eb596996d12d8ae4ef69b575e10a4f493838255340",
+ "id": "injectable-InstanceService-2c2587cea833c5ef5e0ea6fb4d4f0a0139c732b150bb4e64ffd50a4f765c73b000408e21e16d1ea7dc7fea5609846c038027520fac44b259171cba2401104b4f",
"file": "src/app/instance/shared/instance.service.ts",
"properties": [],
"methods": [
@@ -3494,7 +3584,7 @@
"deprecationMessage": "",
"description": "",
"rawdescription": "\n",
- "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport { Instance } from './instance.model';\nimport { HelixService } from '../../core/helix.service';\nimport { Node } from '../../shared/models/node.model';\n\n@Injectable()\nexport class InstanceService extends HelixService {\n public getAll(clusterName: string) {\n return this.request(`/clusters/${clusterName}/instances`).pipe(\n map((data) => {\n const onl [...]
+ "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport { Instance } from './instance.model';\nimport { HelixService } from '../../core/helix.service';\nimport { Node } from '../../shared/models/node.model';\n\n@Injectable()\nexport class InstanceService extends HelixService {\n public getAll(clusterName: string) {\n return this.request(`/clusters/${clusterName}/instances`).pipe(\n map((data) => {\n const onl [...]
"extends": "HelixService",
"type": "injectable"
},
@@ -4474,7 +4564,7 @@
},
{
"name": "UserService",
- "id": "injectable-UserService-2323d2e7b5fd77dd89e7789ae9d87d9117ac255de68441e830f29625185e00123e331ec5ee8ff90b8a41a304c4f13411dd258b4cf8d22e65af2c9346dd8c859e",
+ "id": "injectable-UserService-2a559e9de77788ab67a482b24cd008b5479b961e03aa9ce590bd050c807d2489d486f4ee5291c5128e0b0f006871e0d53b83722bdfc58e027201f9c68df29265",
"file": "src/app/core/user.service.ts",
"properties": [],
"methods": [
@@ -4497,7 +4587,7 @@
"optional": false,
"returnType": "any",
"typeParameters": [],
- "line": 27,
+ "line": 29,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -4521,7 +4611,7 @@
}
],
"optional": false,
- "returnType": "Observable<object>",
+ "returnType": "Observable<any>",
"typeParameters": [],
"line": 19,
"deprecated": false,
@@ -4555,7 +4645,7 @@
"deprecationMessage": "",
"description": "",
"rawdescription": "\n",
- "sourceCode": "import { catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { Settings } from './settings';\n\n@Injectable()\nexport class UserService {\n constructor(protected router: Router, private http: HttpClient) {}\n\n public getCurrentUser(): Observable<unknown> {\n ret [...]
+ "sourceCode": "import { catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { Settings } from './settings';\n\n@Injectable()\nexport class UserService {\n constructor(protected router: Router, private http: HttpClient) {}\n\n public getCurrentUser(): Observable<unknown> {\n ret [...]
"constructorObj": {
"name": "constructor",
"description": "",
@@ -5490,12 +5580,12 @@
},
{
"name": "HelixCtrl",
- "id": "class-HelixCtrl-214f11a7ec6e26dadc5a1f31c3a677eea84a18b28ad62a021753b2cf3e523d942a2b3be418c993f9c1202025c4af1c89c57c68bd76ab17f1993b0539c57faf48",
+ "id": "class-HelixCtrl-b66c5fede44bb07c635bc61e76737e06e83c42991391cea8209cab75928ce9f08d9d4243df1c9c31ae601f24c1f0c0dd850d87175204f95382e95611f51bc9e8",
"file": "server/controllers/helix.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "class",
- "sourceCode": "import { Request, Response, Router } from 'express';\n\nimport * as request from 'request';\n\nimport { HELIX_ENDPOINTS } from '../config';\nimport { HelixUserRequest } from './d';\n\nexport class HelixCtrl {\n static readonly ROUTE_PREFIX = '/api/helix';\n\n constructor(router: Router) {\n router.route('/helix/list').get(this.list);\n router.route('/helix/*').all(this.proxy);\n }\n\n protected proxy(req: HelixUserRequest, res: Response) {\n const [...]
+ "sourceCode": "import { Request, Response, Router } from 'express';\n\nimport * as request from 'request';\n\nimport { HELIX_ENDPOINTS, IDENTITY_TOKEN_SOURCE } from '../config';\nimport { HelixUserRequest } from './d';\n\nexport class HelixCtrl {\n static readonly ROUTE_PREFIX = '/api/helix';\n\n constructor(router: Router) {\n router.route('/helix/list').get(this.list);\n router.route('/helix/*').all(this.proxy);\n }\n\n protected proxy(req: HelixUserRequest, res: [...]
"constructorObj": {
"name": "constructor",
"description": "",
@@ -5558,7 +5648,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 65,
+ "line": 73,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6118,12 +6208,12 @@
},
{
"name": "Node",
- "id": "class-Node-232abac58ace56edbeca1efd341fc2e2a74aa4ee8745604c402893dd5c1324ec8d7f333c38b0c356334b997ec2e3eee9bb288895cfa2e7ade36020f75b5e1edb",
+ "id": "class-Node-4b8fff68ba7ccb7a14a733c002190a7e5c760999f3a699168565ddeecf085df759c8918b7b69b728e480ecdbd894c972284cbe97c29ad2413b6f9ffed799247d",
"file": "src/app/shared/models/node.model.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "class",
- "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields: SimpleFieldObject[] = [];\n listFields: ListFieldObject[] = [];\n mapFields: MapFieldObject[] = [];\n [...]
+ "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n name: string;\n value: string;\n}\n\ninterface ListFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n name: string;\n value: SimpleFieldObject[];\n}\n\ninterface Payload {\n id: string;\n simpleFields?: any;\n listFields?: any;\n mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n id: string;\n simpleFields [...]
"constructorObj": {
"name": "constructor",
"description": "",
@@ -6137,7 +6227,7 @@
"deprecationMessage": ""
}
],
- "line": 23,
+ "line": 30,
"jsdoctags": [
{
"name": "obj",
@@ -6158,7 +6248,7 @@
"type": "string",
"optional": false,
"description": "",
- "line": 20
+ "line": 27
},
{
"name": "listFields",
@@ -6168,7 +6258,7 @@
"type": "ListFieldObject[]",
"optional": false,
"description": "",
- "line": 22
+ "line": 29
},
{
"name": "mapFields",
@@ -6178,7 +6268,7 @@
"type": "MapFieldObject[]",
"optional": false,
"description": "",
- "line": 23
+ "line": 30
},
{
"name": "simpleFields",
@@ -6188,7 +6278,7 @@
"type": "SimpleFieldObject[]",
"optional": false,
"description": "",
- "line": 21
+ "line": 28
}
],
"methods": [
@@ -6217,7 +6307,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 59,
+ "line": 66,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6272,7 +6362,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 52,
+ "line": 59,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6312,7 +6402,7 @@
"optional": false,
"returnType": "string",
"typeParameters": [],
- "line": 79,
+ "line": 86,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6343,7 +6433,7 @@
"optional": false,
"returnType": "SimpleFieldObject[]",
"typeParameters": [],
- "line": 109,
+ "line": 131,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6786,12 +6876,12 @@
},
{
"name": "UserCtrl",
- "id": "class-UserCtrl-61284d7ac04cd016d5989398d522689680e307950cf1c9437e9963795cd53135e8069c0a52e0f309c6d498eadc960f489d524a29ff7a7148ea8c34999e7a67fe",
+ "id": "class-UserCtrl-eb768a2104b06325cce6a34e27d58f026062912330331b4f1bf1062203a65659e42b3aa3c3d3c9260e755e0066b786d68c4137b13d080e001a415329fb7d99d8",
"file": "server/controllers/user.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "class",
- "sourceCode": "import { Request, Response, Router } from 'express';\nimport * as LdapClient from 'ldapjs';\n\nimport { LDAP } from '../config';\nimport { HelixUserRequest } from './d';\n\nexport class UserCtrl {\n constructor(router: Router) {\n router.route('/user/authorize').get(this.authorize);\n router.route('/user/login').post(this.login.bind(this));\n router.route('/user/current').get(this.current);\n router.route('/user/can').get(this.can);\n }\n\n prote [...]
+ "sourceCode": "import { Response, Router } from 'express';\nimport * as LdapClient from 'ldapjs';\nimport * as request from 'request';\n\nimport {\n LDAP,\n IDENTITY_TOKEN_SOURCE,\n CUSTOM_IDENTITY_TOKEN_REQUEST_BODY,\n} from '../config';\nimport { HelixUserRequest } from './d';\n\nexport class UserCtrl {\n constructor(router: Router) {\n router.route('/user/authorize').get(this.authorize);\n router.route('/user/login').post(this.login.bind(this));\n router.route [...]
"constructorObj": {
"name": "constructor",
"description": "",
@@ -6805,7 +6895,7 @@
"deprecationMessage": ""
}
],
- "line": 7,
+ "line": 12,
"jsdoctags": [
{
"name": "router",
@@ -6839,7 +6929,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 15,
+ "line": 20,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6885,7 +6975,7 @@
"optional": false,
"returnType": "any",
"typeParameters": [],
- "line": 29,
+ "line": 42,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6931,7 +7021,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 25,
+ "line": 33,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6962,13 +7052,13 @@
"name": "login",
"args": [
{
- "name": "request",
+ "name": "req",
"type": "HelixUserRequest",
"deprecated": false,
"deprecationMessage": ""
},
{
- "name": "response",
+ "name": "res",
"type": "Response",
"deprecated": false,
"deprecationMessage": ""
@@ -6977,7 +7067,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 38,
+ "line": 53,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -6985,7 +7075,7 @@
],
"jsdoctags": [
{
- "name": "request",
+ "name": "req",
"type": "HelixUserRequest",
"deprecated": false,
"deprecationMessage": "",
@@ -6994,7 +7084,7 @@
}
},
{
- "name": "response",
+ "name": "res",
"type": "Response",
"deprecated": false,
"deprecationMessage": "",
@@ -7349,7 +7439,7 @@
},
{
"name": "AppComponent",
- "id": "component-AppComponent-9af619c55d9778edcf324805c6498f774b0f99dc0ee52daee05228bedc79d11859dd18b716f6447782974ac0fb569d1445c45de15cfba8243cbe6252f164a065",
+ "id": "component-AppComponent-d59185f86d30e473711e732239cf4a5fb2df02a89685c5e8b3f4e8780db508f2dcede12517ba61757bbb051b780a96de518e9589fe463b48667342da66cd2f0f",
"file": "src/app/app.component.ts",
"encapsulation": [],
"entryComponents": [],
@@ -7379,7 +7469,7 @@
"type": "any",
"optional": false,
"description": "",
- "line": 28
+ "line": 33
},
{
"name": "footerEnabled",
@@ -7389,7 +7479,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 26
+ "line": 31
},
{
"name": "headerEnabled",
@@ -7399,7 +7489,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 25
+ "line": 30
},
{
"name": "isLoading",
@@ -7409,7 +7499,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 27
+ "line": 32
}
],
"methodsClass": [
@@ -7419,7 +7509,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 65,
+ "line": 70,
"deprecated": false,
"deprecationMessage": ""
},
@@ -7429,7 +7519,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 55,
+ "line": 60,
"deprecated": false,
"deprecationMessage": ""
}
@@ -7441,7 +7531,7 @@
"description": "",
"rawdescription": "\n",
"type": "component",
- "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport {\n Router,\n ActivatedRoute,\n NavigationStart,\n NavigationEnd,\n NavigationCancel,\n NavigationError,\n} from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\n\n// import { Angulartics2Piwik } from 'angulartics2/piwik';\n\nimport { UserService } from './core/user.service';\nimport { InputDialogComponent } from './shared/dialog/input-dialog/input-dialog.component';\nimp [...]
+ "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport {\n Router,\n ActivatedRoute,\n NavigationStart,\n NavigationEnd,\n NavigationCancel,\n NavigationError,\n} from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\n\n// import { Angulartics2Piwik } from 'angulartics2/piwik';\n\nimport { UserService } from './core/user.service';\nimport { InputDialogComponent } from './shared/dialog/input-dialog/input-dialog.component';\nimp [...]
"assetsDirs": [],
"styleUrlsData": [
{
@@ -7487,7 +7577,7 @@
"deprecationMessage": ""
}
],
- "line": 28,
+ "line": 33,
"jsdoctags": [
{
"name": "route",
@@ -7952,7 +8042,7 @@
},
{
"name": "ClusterListComponent",
- "id": "component-ClusterListComponent-e454d7c43088e6f54e9d344876d63085bffdffac409088a266c10086fbe6de5ab5adebd3c0df29c98396971af400b006002c6d36e90a142775ccdc9e06cfa6f9",
+ "id": "component-ClusterListComponent-96a618ec59acde620249bdda1b57c2a61fefeecb19b3c9eef5f046dcca7032345cd8563639660af1a5283c3a033f654dfd4689e35ef439a065190e5e8f9bb0a4",
"file": "src/app/cluster/cluster-list/cluster-list.component.ts",
"encapsulation": [],
"entryComponents": [],
@@ -7979,7 +8069,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 20
+ "line": 21
},
{
"name": "clusters",
@@ -8019,7 +8109,7 @@
"type": "string",
"optional": false,
"description": "",
- "line": 21
+ "line": 22
}
],
"methodsClass": [
@@ -8029,7 +8119,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 55,
+ "line": 59,
"deprecated": false,
"deprecationMessage": ""
},
@@ -8039,7 +8129,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 36,
+ "line": 38,
"deprecated": false,
"deprecationMessage": ""
},
@@ -8049,7 +8139,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 30,
+ "line": 31,
"deprecated": false,
"deprecationMessage": ""
},
@@ -8066,7 +8156,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 44,
+ "line": 48,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
@@ -8089,11 +8179,11 @@
"description": "",
"rawdescription": "\n",
"type": "component",
- "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\n\nimport { ClusterService } from '../shared/cluster.service';\nimport { Cluster } from '../shared/cluster.model';\nimport { AlertDialogComponent } from '../../shared/dialog/alert-dialog/alert-dialog.component';\nimport { InputDialogComponent } from '../.. [...]
+ "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\n\nimport { ClusterService } from '../shared/cluster.service';\nimport { Cluster } from '../shared/cluster.model';\nimport { AlertDialogComponent } from '../../shared/dialog/alert-dialog/alert-dialog.component';\nimport { InputDialogComponent } from '../.. [...]
"assetsDirs": [],
"styleUrlsData": [
{
- "data": "@use '@angular/material' as mat;\n@import 'src/theme.scss';\n\n.mat-spinner {\n margin: 20px;\n}\n\n.cluster-list-item-selected h4 {\n font-weight: 500;\n color: mat.get-color-from-palette($hi-primary);\n}\n\n.error-message {\n padding: 10px;\n}\n\n.mat-mini-fab {\n position: fixed;\n right: 16px;\n top: 16px;\n}\n\n.empty {\n font-size: 14px;\n // font-style: italic;\n padding: 10px;\n}\n",
+ "data": "@use '@angular/material' as mat;\n@import 'src/theme.scss';\n\n.mat-nav-list {\n display: flex;\n flex-direction: column;\n}\n\n.cluster-list-button-group {\n display: flex;\n justify-content: space-between;\n margin-right: 1rem;\n}\n\n.back-to-index-button {\n align-self: flex-start;\n}\n\n.add-cluster-button {\n align-self: flex-end;\n}\n\n.mat-spinner {\n margin: 20px;\n}\n\n.cluster-list-item-selected h4 {\n font-weight: 500;\n color: mat.get-co [...]
"styleUrl": "./cluster-list.component.scss"
}
],
@@ -8129,7 +8219,7 @@
"deprecationMessage": ""
}
],
- "line": 21,
+ "line": 22,
"jsdoctags": [
{
"name": "clusterService",
@@ -8172,7 +8262,7 @@
"implements": [
"OnInit"
],
- "templateData": "<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one\n ~ or more contributor license agreements. See the NOTICE file\n ~ distributed with this work for additional information\n ~ regarding copyright ownership. The ASF licenses this file\n ~ to you under the Apache License, Version 2.0 (the\n ~ \"License\"); you may not use this file except in compliance\n ~ with the License. You may obtain a copy of the License at\n ~\n ~ http:/ [...]
+ "templateData": "<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one\n ~ or more contributor license agreements. See the NOTICE file\n ~ distributed with this work for additional information\n ~ regarding copyright ownership. The ASF licenses this file\n ~ to you under the Apache License, Version 2.0 (the\n ~ \"License\"); you may not use this file except in compliance\n ~ with the License. You may obtain a copy of the License at\n ~\n ~ http:/ [...]
},
{
"name": "ConfigDetailComponent",
@@ -8546,6 +8636,84 @@
],
"templateData": "<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one\n ~ or more contributor license agreements. See the NOTICE file\n ~ distributed with this work for additional information\n ~ regarding copyright ownership. The ASF licenses this file\n ~ to you under the Apache License, Version 2.0 (the\n ~ \"License\"); you may not use this file except in compliance\n ~ with the License. You may obtain a copy of the License at\n ~\n ~ http:/ [...]
},
+ {
+ "name": "ConfirmDialogTestComponent",
+ "id": "component-ConfirmDialogTestComponent-a1fe3ea07605b8814e649ad8d7416f2460dbf9fcb315a9bf08101456f2cce9f73ddeeea00e8bff65a34898783e29f8bbcf5b6ecd81d4150a8f07473aa4a91b12",
+ "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog-test.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "hi-confirm-dialog-test",
+ "styleUrls": [
+ "./confirm-dialog.component.scss"
+ ],
+ "styles": [],
+ "template": "<button mat-flat-button (click)=\"launch()\">Launch</button>",
+ "templateUrl": [],
+ "viewProviders": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [
+ {
+ "name": "launch",
+ "args": [],
+ "optional": false,
+ "returnType": "void",
+ "typeParameters": [],
+ "line": 17,
+ "deprecated": false,
+ "deprecationMessage": "",
+ "modifierKind": [
+ 123
+ ]
+ }
+ ],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MaterialModule } from 'app/shared/material.module';\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\n\n// Wrapper component for testing approach recommended in this answer:\n// https://stackoverflow.com/a/63953851/1732222 [...]
+ "assetsDirs": [],
+ "styleUrlsData": [
+ {
+ "data": "",
+ "styleUrl": "./confirm-dialog.component.scss"
+ }
+ ],
+ "stylesData": "",
+ "constructorObj": {
+ "name": "constructor",
+ "description": "",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "args": [
+ {
+ "name": "_dialog",
+ "type": "MatDialog",
+ "deprecated": false,
+ "deprecationMessage": ""
+ }
+ ],
+ "line": 14,
+ "jsdoctags": [
+ {
+ "name": "_dialog",
+ "type": "MatDialog",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "tagName": {
+ "text": "param"
+ }
+ }
+ ]
+ }
+ },
{
"name": "ControllerDetailComponent",
"id": "component-ControllerDetailComponent-e04da49e353da895bbc10a6814958edca93cdc4225413ae00c0507cee7a22a2db8f081d67ca1d1dcf561488972a8549300542fa6634e11a3208cf91f96494afe",
@@ -11116,7 +11284,7 @@
},
{
"name": "JobListComponent",
- "id": "component-JobListComponent-401e65c8074d4bc5fe6e52b8ef7a7b553413967d6b9f048ebfcc011aa415eefbdf58917e528c667f4c4b40d8962d605a0beb82ec42151db1ffedfd1aaa76ffdd",
+ "id": "component-JobListComponent-a5573f0e5ef4cbb87ba2de5c7ab184e255c1d99386e23b0945f48793e19665ba581e805aee7f412fba3550bb1a67e89f6e4b570d7ec72a70c646f2a8df0fdf9b",
"file": "src/app/workflow/job-list/job-list.component.ts",
"encapsulation": [],
"entryComponents": [],
@@ -11137,7 +11305,7 @@
"name": "jobs",
"deprecated": false,
"deprecationMessage": "",
- "line": 15,
+ "line": 16,
"type": "Job[]",
"decorators": []
}
@@ -11152,7 +11320,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 21
+ "line": 22
},
{
"name": "messages",
@@ -11162,7 +11330,7 @@
"type": "object",
"optional": false,
"description": "",
- "line": 26
+ "line": 27
},
{
"name": "rowHeight",
@@ -11172,7 +11340,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 20
+ "line": 21
},
{
"name": "sorts",
@@ -11182,20 +11350,20 @@
"type": "[]",
"optional": false,
"description": "",
- "line": 22
+ "line": 23
},
{
"name": "table",
"deprecated": false,
"deprecationMessage": "",
- "type": "any",
+ "type": "DatatableComponent",
"optional": false,
"description": "",
- "line": 18,
+ "line": 19,
"decorators": [
{
"name": "ViewChild",
- "stringifiedArguments": "'jobsTable', {static: true}"
+ "stringifiedArguments": "'jobsTable', {static: false}"
}
]
}
@@ -11207,7 +11375,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 34,
+ "line": 35,
"deprecated": false,
"deprecationMessage": ""
},
@@ -11223,7 +11391,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 40,
+ "line": 41,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
@@ -11250,7 +11418,7 @@
"optional": false,
"returnType": "string",
"typeParameters": [],
- "line": 36,
+ "line": 37,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
@@ -11273,7 +11441,7 @@
"description": "",
"rawdescription": "\n",
"type": "component",
- "sourceCode": "import { Component, OnInit, Input, ViewChild } from '@angular/core';\n\nimport moment from 'moment';\n\nimport { Settings } from '../../core/settings';\nimport { Job } from '../shared/workflow.model';\n\n@Component({\n selector: 'hi-job-list',\n templateUrl: './job-list.component.html',\n styleUrls: ['./job-list.component.scss'],\n})\nexport class JobListComponent implements OnInit {\n @Input()\n jobs: Job[];\n\n @ViewChild('jobsTable', { static: true })\ [...]
+ "sourceCode": "import { Component, OnInit, Input, ViewChild } from '@angular/core';\n\nimport moment from 'moment';\n\nimport { Settings } from '../../core/settings';\nimport { Job } from '../shared/workflow.model';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\n\n@Component({\n selector: 'hi-job-list',\n templateUrl: './job-list.component.html',\n styleUrls: ['./job-list.component.scss'],\n})\nexport class JobListComponent implements OnInit {\n @Input()\ [...]
"assetsDirs": [],
"styleUrlsData": [
{
@@ -11288,7 +11456,7 @@
"deprecated": false,
"deprecationMessage": "",
"args": [],
- "line": 30
+ "line": 31
},
"implements": [
"OnInit"
@@ -12371,7 +12539,7 @@
},
{
"name": "PartitionListComponent",
- "id": "component-PartitionListComponent-a29c60e38be035480aaa5bbf1ed029b252ae9118f0eabec2ff0128c6ffbbf8b230fad02b6e19e9ec15671a19f896990476056329128a5f2c75f78aac5feda199",
+ "id": "component-PartitionListComponent-70a28f903354492334fb538855578ae022be22a96e1512071bffb8019f8ed3f1722a66f7d9160f7f965ca29e57ff8e3eefe2af51735f6a7df13c7e955260cc5a",
"file": "src/app/resource/partition-list/partition-list.component.ts",
"encapsulation": [],
"entryComponents": [],
@@ -12397,7 +12565,7 @@
"type": "string",
"optional": false,
"description": "",
- "line": 19
+ "line": 20
},
{
"name": "headerHeight",
@@ -12407,7 +12575,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 22
+ "line": 23
},
{
"name": "isLoading",
@@ -12417,7 +12585,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 18
+ "line": 19
},
{
"name": "partitions",
@@ -12426,7 +12594,7 @@
"type": "Partition[]",
"optional": false,
"description": "",
- "line": 21
+ "line": 22
},
{
"name": "resource",
@@ -12435,7 +12603,7 @@
"type": "Resource",
"optional": false,
"description": "",
- "line": 20
+ "line": 21
},
{
"name": "rowHeight",
@@ -12445,7 +12613,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 23
+ "line": 24
},
{
"name": "sorts",
@@ -12455,20 +12623,20 @@
"type": "[]",
"optional": false,
"description": "",
- "line": 24
+ "line": 25
},
{
"name": "table",
"deprecated": false,
"deprecationMessage": "",
- "type": "any",
+ "type": "DatatableComponent",
"optional": false,
"description": "",
- "line": 16,
+ "line": 17,
"decorators": [
{
"name": "ViewChild",
- "stringifiedArguments": "'partitionsTable', {static: true}"
+ "stringifiedArguments": "'partitionsTable', {static: false}"
}
]
}
@@ -12480,7 +12648,7 @@
"optional": false,
"returnType": "any",
"typeParameters": [],
- "line": 44,
+ "line": 45,
"deprecated": false,
"deprecationMessage": ""
},
@@ -12490,7 +12658,7 @@
"optional": false,
"returnType": "boolean | string",
"typeParameters": [],
- "line": 48,
+ "line": 49,
"deprecated": false,
"deprecationMessage": ""
},
@@ -12500,7 +12668,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 67,
+ "line": 68,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -12513,7 +12681,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 35,
+ "line": 36,
"deprecated": false,
"deprecationMessage": ""
},
@@ -12529,7 +12697,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 61,
+ "line": 62,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
@@ -12551,7 +12719,7 @@
"description": "",
"rawdescription": "\n",
"type": "component",
- "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Settings } from '../../core/settings';\nimport { Partition, IReplica, Resource } from '../shared/resource.model';\nimport { HelperService } from '../../shared/helper.service';\nimport { ResourceService } from '../shared/resource.service';\n\n@Component({\n selector: 'hi-partition-list',\n templateUrl: './partition-list.component.html',\ [...]
+ "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Settings } from '../../core/settings';\nimport { Partition, IReplica, Resource } from '../shared/resource.model';\nimport { HelperService } from '../../shared/helper.service';\nimport { ResourceService } from '../shared/resource.service';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\n\n@Component({\n selector: 'hi-parti [...]
"assetsDirs": [],
"styleUrlsData": [
{
@@ -12585,7 +12753,7 @@
"deprecationMessage": ""
}
],
- "line": 27,
+ "line": 28,
"jsdoctags": [
{
"name": "route",
@@ -12997,7 +13165,7 @@
},
{
"name": "ResourceListComponent",
- "id": "component-ResourceListComponent-49abbe394c18fde27ff32033c476a81c9aac0cd53982ba3e83ca2d28ec5ef220f82f98ce226e9ae6350d08e8ca92f043955ffff4010eb38ee41fcbd448d80f26",
+ "id": "component-ResourceListComponent-d2d518a517b184de023ef2125e7b5c7ab63bb80e11aed1460a4cc593ced77ab4b6563f925defb1c1b6d4a3588f967706c3ead2cf525af620d74831aaae378df1",
"file": "src/app/resource/resource-list/resource-list.component.ts",
"encapsulation": [],
"entryComponents": [],
@@ -13027,7 +13195,7 @@
"type": "string",
"optional": false,
"description": "",
- "line": 29
+ "line": 30
},
{
"name": "headerHeight",
@@ -13037,7 +13205,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 25
+ "line": 26
},
{
"name": "instanceName",
@@ -13046,7 +13214,7 @@
"type": "string",
"optional": false,
"description": "",
- "line": 30
+ "line": 31
},
{
"name": "isForInstance",
@@ -13056,7 +13224,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 24
+ "line": 25
},
{
"name": "isLoading",
@@ -13066,7 +13234,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 28
+ "line": 29
},
{
"name": "resources",
@@ -13075,7 +13243,7 @@
"type": "Resource[]",
"optional": false,
"description": "",
- "line": 27
+ "line": 28
},
{
"name": "rowHeight",
@@ -13085,7 +13253,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 26
+ "line": 27
},
{
"name": "sorts",
@@ -13095,20 +13263,20 @@
"type": "[]",
"optional": false,
"description": "",
- "line": 31
+ "line": 32
},
{
"name": "table",
"deprecated": false,
"deprecationMessage": "",
- "type": "any",
+ "type": "DatatableComponent",
"optional": false,
"description": "",
- "line": 22,
+ "line": 23,
"decorators": [
{
"name": "ViewChild",
- "stringifiedArguments": "'resourcesTable', {static: true}"
+ "stringifiedArguments": "'resourcesTable', {static: false}"
}
]
}
@@ -13120,7 +13288,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 75,
+ "line": 76,
"deprecated": false,
"deprecationMessage": "",
"modifierKind": [
@@ -13133,7 +13301,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 44,
+ "line": 45,
"deprecated": false,
"deprecationMessage": ""
},
@@ -13149,7 +13317,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 98,
+ "line": 99,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
@@ -13171,7 +13339,7 @@
"description": "",
"rawdescription": "\n",
"type": "component",
- "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport * as _ from 'lodash';\n\nimport { Settings } from '../../core/settings';\nimport { Resource } from '../shared/resource.model';\nimport { ResourceService } from '../shared/resource.service';\nimport { WorkflowService } from '../../workflow/shared/workflow.serv [...]
+ "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport * as _ from 'lodash';\n\nimport { Settings } from '../../core/settings';\nimport { Resource } from '../shared/resource.model';\nimport { ResourceService } from '../shared/resource.service';\nimport { WorkflowService } from '../../workflow/shared/workflow.serv [...]
"assetsDirs": [],
"styleUrlsData": [
{
@@ -13217,7 +13385,7 @@
"deprecationMessage": ""
}
],
- "line": 34,
+ "line": 35,
"jsdoctags": [
{
"name": "router",
@@ -13891,7 +14059,7 @@
},
{
"name": "WorkflowListComponent",
- "id": "component-WorkflowListComponent-2e2bf1981a4a8976c73cb29e8b4c15ad197f86a5c4103d4cf865e2be4d4ea9a7cde57457d4817c4221afaf4eada80e6761dc7dbcde61d1dd042e0842e98ddc94",
+ "id": "component-WorkflowListComponent-eaf68edab8edbd12866f53e04eeee1fa5bb569710a581bcb44ee52e323af8e00fb81c5a4f81cbb51e0597bc48b1d21a6d324d0b79ed54b96cb2047b12e635a29",
"file": "src/app/workflow/workflow-list/workflow-list.component.ts",
"encapsulation": [],
"entryComponents": [],
@@ -13917,7 +14085,7 @@
"type": "string",
"optional": false,
"description": "",
- "line": 21
+ "line": 22
},
{
"name": "headerHeight",
@@ -13927,7 +14095,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 24
+ "line": 25
},
{
"name": "isLoading",
@@ -13937,7 +14105,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 20
+ "line": 21
},
{
"name": "rowHeight",
@@ -13947,7 +14115,7 @@
"type": "",
"optional": false,
"description": "",
- "line": 25
+ "line": 26
},
{
"name": "sorts",
@@ -13957,20 +14125,20 @@
"type": "[]",
"optional": false,
"description": "",
- "line": 27
+ "line": 28
},
{
"name": "table",
"deprecated": false,
"deprecationMessage": "",
- "type": "any",
+ "type": "DatatableComponent",
"optional": false,
"description": "",
- "line": 18,
+ "line": 19,
"decorators": [
{
"name": "ViewChild",
- "stringifiedArguments": "'workflowsTable', {static: true}"
+ "stringifiedArguments": "'workflowsTable', {static: false}"
}
]
},
@@ -13981,7 +14149,7 @@
"type": "WorkflowRow[]",
"optional": false,
"description": "",
- "line": 22
+ "line": 23
}
],
"methodsClass": [
@@ -13998,7 +14166,7 @@
"optional": false,
"returnType": "boolean",
"typeParameters": [],
- "line": 64,
+ "line": 65,
"deprecated": false,
"deprecationMessage": "",
"jsdoctags": [
@@ -14019,7 +14187,7 @@
"optional": false,
"returnType": "void",
"typeParameters": [],
- "line": 35,
+ "line": 36,
"deprecated": false,
"deprecationMessage": ""
}
@@ -14031,7 +14199,7 @@
"description": "",
"rawdescription": "\n",
"type": "component",
- "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { Settings } from '../../core/settings';\nimport { WorkflowService } from '../shared/workflow.service';\n\ntype WorkflowRow = {\n name: string;\n};\n\n@Component({\n selector: 'hi-workflow-list',\n templateUrl: './workflow-list.component.html',\n styleUrls: ['./workflow-list.component.scss'],\n})\nexport class WorkflowListCompon [...]
+ "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { Settings } from '../../core/settings';\nimport { WorkflowService } from '../shared/workflow.service';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\n\ntype WorkflowRow = {\n name: string;\n};\n\n@Component({\n selector: 'hi-workflow-list',\n templateUrl: './workflow-list.component.html',\n styleUrls: ['./workf [...]
"assetsDirs": [],
"styleUrlsData": [
{
@@ -14065,7 +14233,7 @@
"deprecationMessage": ""
}
],
- "line": 27,
+ "line": 28,
"jsdoctags": [
{
"name": "router",
@@ -14899,6 +15067,30 @@
"type": "string",
"defaultValue": "'cluster1'"
},
+ {
+ "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "any",
+ "defaultValue": "{}",
+ "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
+ "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
+ },
+ {
+ "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "any",
+ "defaultValue": "{}",
+ "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
+ "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
+ },
{
"name": "Default",
"ctype": "miscellaneous",
@@ -14909,6 +15101,16 @@
"type": "",
"defaultValue": "Template.bind({})"
},
+ {
+ "name": "Delete",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
{
"name": "Empty",
"ctype": "miscellaneous",
@@ -14949,6 +15151,16 @@
"type": "object",
"defaultValue": "{\n helix: [\n {\n default: 'http://localhost:8100/admin/v2',\n },\n ],\n}"
},
+ {
+ "name": "HELIX_ENDPOINTS",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n helix: [\n {\n default: 'http://localhost:8100/admin/v2',\n },\n ],\n}"
+ },
{
"name": "HelperServiceStub",
"ctype": "miscellaneous",
@@ -14959,6 +15171,30 @@
"type": "object",
"defaultValue": "{\n showError: (message: string) => {},\n showSnackBar: (message: string) => {},\n showConfirmation: (message: string): Promise<boolean> =>\n new Promise<boolean>((f) => f(false)),\n}"
},
+ {
+ "name": "IDENTITY_TOKEN_SOURCE",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string | undefined",
+ "defaultValue": "undefined",
+ "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
+ "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
+ },
+ {
+ "name": "IDENTITY_TOKEN_SOURCE",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string | undefined",
+ "defaultValue": "undefined",
+ "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
+ "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
+ },
{
"name": "LDAP",
"ctype": "miscellaneous",
@@ -14969,6 +15205,26 @@
"type": "object",
"defaultValue": "{\n uri: 'ldap://example.com',\n base: 'DC=example,DC=com',\n principalSuffix: '@example.com',\n adminGroup: 'admin',\n}"
},
+ {
+ "name": "LDAP",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n uri: 'ldap://example.com',\n base: 'DC=example,DC=com',\n principalSuffix: '@example.com',\n adminGroup: 'admin',\n}"
+ },
+ {
+ "name": "Leader",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
{
"name": "Loading",
"ctype": "miscellaneous",
@@ -14979,6 +15235,16 @@
"type": "",
"defaultValue": "Template.bind({})"
},
+ {
+ "name": "Offline",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
{
"name": "server",
"ctype": "miscellaneous",
@@ -14999,6 +15265,16 @@
"type": "",
"defaultValue": "undefined"
},
+ {
+ "name": "SESSION_STORE",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "undefined"
+ },
{
"name": "SSL",
"ctype": "miscellaneous",
@@ -15009,6 +15285,36 @@
"type": "object",
"defaultValue": "{\n port: 0,\n keyfile: '',\n certfile: '',\n passfile: '',\n cafiles: [],\n}"
},
+ {
+ "name": "SSL",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n port: 0,\n keyfile: '',\n certfile: '',\n passfile: '',\n cafiles: [],\n}"
+ },
+ {
+ "name": "Standby",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
+ {
+ "name": "Template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "Story",
+ "defaultValue": "(args: any) => ({\n props: {\n ...args,\n },\n template: `\n <hi-state-label [state]=\"state\" [isReady]=\"isReady\"></hi-state-label>\n `,\n})"
+ },
{
"name": "Template",
"ctype": "miscellaneous",
@@ -15017,7 +15323,65 @@
"deprecated": false,
"deprecationMessage": "",
"type": "Story",
- "defaultValue": "(args: any) => ({\n props: {\n ...args,\n },\n})"
+ "defaultValue": "(args: any) => ({\n props: {\n ...args,\n },\n template: `\n <div>Workflow List</div>\n <span>There's no workflow here.</span>\n <hi-workflow-list [workflowRows]=\"workflowRows\" [clusterName]=\"clusterName\" [isLoading]=\"isLoading\"></hi-workflow-list>\n <router-outlet></router-outlet>\n`,\n})"
+ },
+ {
+ "name": "Template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "Story",
+ "defaultValue": "(args) => ({\n component: ConfirmDialogTestComponent,\n template: `<hi-confirm-dialog-test></hi-confirm-dialog-test>`,\n props: { ...args },\n})"
+ },
+ {
+ "name": "TOKEN_EXPIRATION_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'expires'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
+ "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
+ },
+ {
+ "name": "TOKEN_EXPIRATION_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'expires'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
+ "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
+ },
+ {
+ "name": "TOKEN_RESPONSE_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'token'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
+ "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
+ },
+ {
+ "name": "TOKEN_RESPONSE_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'token'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
+ "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
},
{
"name": "workflowRows",
@@ -15169,7 +15533,7 @@
"deprecated": false,
"deprecationMessage": "",
"type": "Story",
- "defaultValue": "(args: any) => ({\n props: {\n ...args,\n },\n})"
+ "defaultValue": "(args: any) => ({\n props: {\n ...args,\n },\n template: `\n <div>Workflow List</div>\n <span>There's no workflow here.</span>\n <hi-workflow-list [workflowRows]=\"workflowRows\" [clusterName]=\"clusterName\" [isLoading]=\"isLoading\"></hi-workflow-list>\n <router-outlet></router-outlet>\n`,\n})"
},
{
"name": "workflowRows",
@@ -15182,40 +15546,40 @@
"defaultValue": "[{ name: 'workflow1' }]"
}
],
- "src/environments/environment.prod.ts": [
+ "server/config.ts": [
{
- "name": "environment",
+ "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
"ctype": "miscellaneous",
"subtype": "variable",
- "file": "src/environments/environment.prod.ts",
+ "file": "server/config.ts",
"deprecated": false,
"deprecationMessage": "",
- "type": "object",
- "defaultValue": "{\n production: true,\n}"
- }
- ],
- "src/environments/environment.ts": [
+ "type": "any",
+ "defaultValue": "{}",
+ "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
+ "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
+ },
{
- "name": "environment",
+ "name": "HELIX_ENDPOINTS",
"ctype": "miscellaneous",
"subtype": "variable",
- "file": "src/environments/environment.ts",
+ "file": "server/config.ts",
"deprecated": false,
"deprecationMessage": "",
"type": "object",
- "defaultValue": "{\n production: false,\n piwik: {\n url: '//vxu-ld1.linkedin.biz/piwik/',\n id: '3',\n },\n}"
- }
- ],
- "server/config.ts": [
+ "defaultValue": "{\n helix: [\n {\n default: 'http://localhost:8100/admin/v2',\n },\n ],\n}"
+ },
{
- "name": "HELIX_ENDPOINTS",
+ "name": "IDENTITY_TOKEN_SOURCE",
"ctype": "miscellaneous",
"subtype": "variable",
"file": "server/config.ts",
"deprecated": false,
"deprecationMessage": "",
- "type": "object",
- "defaultValue": "{\n helix: [\n {\n default: 'http://localhost:8100/admin/v2',\n },\n ],\n}"
+ "type": "string | undefined",
+ "defaultValue": "undefined",
+ "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
+ "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
},
{
"name": "LDAP",
@@ -15246,31 +15610,233 @@
"deprecationMessage": "",
"type": "object",
"defaultValue": "{\n port: 0,\n keyfile: '',\n certfile: '',\n passfile: '',\n cafiles: [],\n}"
+ },
+ {
+ "name": "TOKEN_EXPIRATION_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'expires'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
+ "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
+ },
+ {
+ "name": "TOKEN_RESPONSE_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'token'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
+ "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
}
],
- "src/testing/stubs.ts": [
+ "server/config.example.ts": [
{
- "name": "HelperServiceStub",
+ "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
"ctype": "miscellaneous",
"subtype": "variable",
- "file": "src/testing/stubs.ts",
+ "file": "server/config.example.ts",
"deprecated": false,
"deprecationMessage": "",
- "type": "object",
- "defaultValue": "{\n showError: (message: string) => {},\n showSnackBar: (message: string) => {},\n showConfirmation: (message: string): Promise<boolean> =>\n new Promise<boolean>((f) => f(false)),\n}"
- }
- ]
- },
- "groupedFunctions": {
- "server/routes.ts": [
+ "type": "any",
+ "defaultValue": "{}",
+ "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
+ "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
+ },
{
- "name": "setRoutes",
- "file": "server/routes.ts",
+ "name": "HELIX_ENDPOINTS",
"ctype": "miscellaneous",
- "subtype": "function",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
"deprecated": false,
"deprecationMessage": "",
- "description": "",
+ "type": "object",
+ "defaultValue": "{\n helix: [\n {\n default: 'http://localhost:8100/admin/v2',\n },\n ],\n}"
+ },
+ {
+ "name": "IDENTITY_TOKEN_SOURCE",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string | undefined",
+ "defaultValue": "undefined",
+ "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
+ "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
+ },
+ {
+ "name": "LDAP",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n uri: 'ldap://example.com',\n base: 'DC=example,DC=com',\n principalSuffix: '@example.com',\n adminGroup: 'admin',\n}"
+ },
+ {
+ "name": "SESSION_STORE",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "undefined"
+ },
+ {
+ "name": "SSL",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n port: 0,\n keyfile: '',\n certfile: '',\n passfile: '',\n cafiles: [],\n}"
+ },
+ {
+ "name": "TOKEN_EXPIRATION_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'expires'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
+ "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
+ },
+ {
+ "name": "TOKEN_RESPONSE_KEY",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "server/config.example.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "'token'",
+ "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
+ "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
+ }
+ ],
+ "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts": [
+ {
+ "name": "Delete",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
+ {
+ "name": "Template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "Story",
+ "defaultValue": "(args) => ({\n component: ConfirmDialogTestComponent,\n template: `<hi-confirm-dialog-test></hi-confirm-dialog-test>`,\n props: { ...args },\n})"
+ }
+ ],
+ "src/environments/environment.prod.ts": [
+ {
+ "name": "environment",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/environments/environment.prod.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n production: true,\n}"
+ }
+ ],
+ "src/environments/environment.ts": [
+ {
+ "name": "environment",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/environments/environment.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n production: false,\n piwik: {\n url: '//vxu-ld1.linkedin.biz/piwik/',\n id: '3',\n },\n}"
+ }
+ ],
+ "src/testing/stubs.ts": [
+ {
+ "name": "HelperServiceStub",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/testing/stubs.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "object",
+ "defaultValue": "{\n showError: (message: string) => {},\n showSnackBar: (message: string) => {},\n showConfirmation: (message: string): Promise<boolean> =>\n new Promise<boolean>((f) => f(false)),\n}"
+ }
+ ],
+ "src/app/shared/state-label/state-label.stories.ts": [
+ {
+ "name": "Leader",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
+ {
+ "name": "Offline",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
+ {
+ "name": "Standby",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "",
+ "defaultValue": "Template.bind({})"
+ },
+ {
+ "name": "Template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/app/shared/state-label/state-label.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "Story",
+ "defaultValue": "(args: any) => ({\n props: {\n ...args,\n },\n template: `\n <hi-state-label [state]=\"state\" [isReady]=\"isReady\"></hi-state-label>\n `,\n})"
+ }
+ ]
+ },
+ "groupedFunctions": {
+ "server/routes.ts": [
+ {
+ "name": "setRoutes",
+ "file": "server/routes.ts",
+ "ctype": "miscellaneous",
+ "subtype": "function",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "description": "",
"args": [
{
"name": "app",
@@ -15325,7 +15891,7 @@
},
"routes": [],
"coverage": {
- "count": 0,
+ "count": 7,
"status": "low",
"files": [
{
@@ -15348,6 +15914,96 @@
"coverageCount": "0/1",
"status": "low"
},
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "HELIX_ENDPOINTS",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "IDENTITY_TOKEN_SOURCE",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "LDAP",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "SESSION_STORE",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "SSL",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "TOKEN_EXPIRATION_KEY",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
+ {
+ "filePath": "server/config.example.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "TOKEN_RESPONSE_KEY",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
+ {
+ "filePath": "server/config.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
{
"filePath": "server/config.ts",
"type": "variable",
@@ -15358,6 +16014,16 @@
"coverageCount": "0/1",
"status": "low"
},
+ {
+ "filePath": "server/config.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "IDENTITY_TOKEN_SOURCE",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
{
"filePath": "server/config.ts",
"type": "variable",
@@ -15388,13 +16054,33 @@
"coverageCount": "0/1",
"status": "low"
},
+ {
+ "filePath": "server/config.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "TOKEN_EXPIRATION_KEY",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
+ {
+ "filePath": "server/config.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "TOKEN_RESPONSE_KEY",
+ "coveragePercent": 100,
+ "coverageCount": "1/1",
+ "status": "very-good"
+ },
{
"filePath": "server/controllers/d.ts",
"type": "interface",
"linktype": "interface",
"name": "HelixSession",
"coveragePercent": 0,
- "coverageCount": "0/3",
+ "coverageCount": "0/4",
"status": "low"
},
{
@@ -15795,6 +16481,15 @@
"coverageCount": "0/5",
"status": "low"
},
+ {
+ "filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog-test.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ConfirmDialogTestComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/3",
+ "status": "low"
+ },
{
"filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts",
"type": "component",
@@ -15804,6 +16499,26 @@
"coverageCount": "0/7",
"status": "low"
},
+ {
+ "filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Delete",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
{
"filePath": "src/app/shared/dialog/input-dialog/input-dialog.component.ts",
"type": "component",
@@ -15828,7 +16543,7 @@
"linktype": "injectable",
"name": "HelperService",
"coveragePercent": 0,
- "coverageCount": "0/5",
+ "coverageCount": "0/6",
"status": "low"
},
{
@@ -15894,6 +16609,15 @@
"coverageCount": "0/3",
"status": "low"
},
+ {
+ "filePath": "src/app/shared/models/node.model.ts",
+ "type": "interface",
+ "linktype": "interface",
+ "name": "Payload",
+ "coveragePercent": 0,
+ "coverageCount": "0/5",
+ "status": "low"
+ },
{
"filePath": "src/app/shared/models/node.model.ts",
"type": "interface",
@@ -15921,6 +16645,46 @@
"coverageCount": "0/5",
"status": "low"
},
+ {
+ "filePath": "src/app/shared/state-label/state-label.stories.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Leader",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/app/shared/state-label/state-label.stories.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Offline",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/app/shared/state-label/state-label.stories.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Standby",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/app/shared/state-label/state-label.stories.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
{
"filePath": "src/app/workflow/job-detail/job-detail.component.ts",
"type": "component",
diff --git a/helix-front/package.json b/helix-front/package.json
index 450419a91..fab4489be 100644
--- a/helix-front/package.json
+++ b/helix-front/package.json
@@ -122,11 +122,11 @@
"@babel/preset-typescript": "^7.18.6",
"@compodoc/compodoc": "^1.1.19",
"@cypress/schematic": "2.0.0",
- "@storybook/addon-actions": "^6.5.10",
- "@storybook/angular": "^6.5.10",
- "@storybook/builder-webpack5": "^6.5.0-rc.1",
- "@storybook/core-common": "^6.5.10",
- "@storybook/manager-webpack5": "^6.5.0-rc.1",
+ "@storybook/addon-actions": "^6.5.13",
+ "@storybook/angular": "^6.5.13",
+ "@storybook/builder-webpack5": "^6.5.13",
+ "@storybook/core-common": "^6.5.13",
+ "@storybook/manager-webpack5": "^6.5.13",
"@types/hammerjs": "^2.0.34",
"@types/jest": "^28.1.1",
"@types/lodash": "4.14.120",
diff --git a/helix-front/src/app/cluster/cluster-detail/cluster-detail.component.ts b/helix-front/src/app/cluster/cluster-detail/cluster-detail.component.ts
index 9bca26334..ca87a8ff5 100644
--- a/helix-front/src/app/cluster/cluster-detail/cluster-detail.component.ts
+++ b/helix-front/src/app/cluster/cluster-detail/cluster-detail.component.ts
@@ -196,11 +196,17 @@ export class ClusterDetailComponent implements OnInit {
deleteCluster() {
this.helperService
- .showConfirmation('Are you sure you want to delete this cluster?')
+ .showConfirmation(
+ 'Are you sure you want to delete this cluster? This cannot be undone.',
+ 'Confirm Cluster Deletion',
+ `Delete Cluster ${this.clusterName}`
+ )
.then((result) => {
if (result) {
this.clusterService.remove(this.cluster.name).subscribe((data) => {
- this.helperService.showSnackBar('Cluster deleted!');
+ this.helperService.showSnackBar(
+ `Cluster ${this.clusterName} deleted`
+ );
// FIXME: should reload cluster list as well
this.router.navigate(['..'], { relativeTo: this.route });
});
diff --git a/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog-test.component.ts b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog-test.component.ts
new file mode 100644
index 000000000..2e52cc439
--- /dev/null
+++ b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog-test.component.ts
@@ -0,0 +1,40 @@
+import { Component, OnInit, Input } from '@angular/core';
+import { MatDialog, MatDialogModule } from '@angular/material/dialog';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import { MaterialModule } from 'app/shared/material.module';
+import { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';
+
+// Wrapper component for testing approach recommended in this answer:
+// https://stackoverflow.com/a/63953851/1732222
+@Component({
+ selector: 'hi-confirm-dialog-test',
+ template: ` <button mat-flat-button (click)="openDialog()">
+ Open Dialog
+ </button>`,
+ styleUrls: ['./confirm-dialog.component.scss'],
+})
+export class ConfirmDialogTestComponent {
+ @Input() data: any;
+
+ constructor(public dialog: MatDialog) {}
+
+ public openDialog(): void {
+ this.dialog.open(ConfirmDialogComponent, {
+ data: this.data,
+ });
+ }
+}
+
+export default () => ({
+ moduleMetadata: {
+ _imports: [BrowserAnimationsModule, MatDialogModule, MaterialModule],
+ get imports() {
+ return this._imports;
+ },
+ set imports(value) {
+ this._imports = value;
+ },
+ declarations: [ConfirmDialogTestComponent],
+ },
+ component: ConfirmDialogTestComponent,
+});
diff --git a/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.html b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.html
index ffb60ebeb..219a99577 100644
--- a/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.html
+++ b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.html
@@ -33,6 +33,8 @@
>
Cancel
</button>
- <button mat-button type="button" (click)="onConfirm()">Continue</button>
+ <button mat-button type="button" (click)="onConfirm()">
+ {{ confirmButtonText }}
+ </button>
</div>
</form>
diff --git a/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts
index dcf3ccfea..77fb2f80f 100644
--- a/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts
+++ b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts
@@ -10,6 +10,7 @@ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
export class ConfirmDialogComponent implements OnInit {
title: string;
message: string;
+ confirmButtonText: string;
constructor(
@Inject(MAT_DIALOG_DATA) protected data: any,
@@ -20,6 +21,8 @@ export class ConfirmDialogComponent implements OnInit {
this.title = (this.data && this.data.title) || 'Confirmation';
this.message =
(this.data && this.data.message) || 'Are you sure about this?';
+ this.confirmButtonText =
+ (this.data && this.data.confirmButtonText) || 'Continue';
}
onConfirm() {
diff --git a/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts
new file mode 100644
index 000000000..4d4035d7b
--- /dev/null
+++ b/helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts
@@ -0,0 +1,48 @@
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import {
+ moduleMetadata,
+ Meta,
+ Story,
+ componentWrapperDecorator,
+} from '@storybook/angular';
+
+import { ConfirmDialogTestComponent } from './confirm-dialog-test.component';
+import { SharedModule } from '../../shared.module';
+import { MaterialModule } from '../../material.module';
+import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
+import { ConfirmDialogComponent } from './confirm-dialog.component';
+import { MatDialog, MatDialogModule } from '@angular/material/dialog';
+
+export default {
+ component: ConfirmDialogTestComponent,
+ title: 'Confirm Dialog Test',
+ excludeStories: /.*Data$/,
+ decorators: [
+ moduleMetadata({
+ imports: [SharedModule, MaterialModule, ReactiveFormsModule],
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
+ }),
+ //👇 Wraps our stories with a decorator
+ componentWrapperDecorator(
+ (story) => `<div style="margin: 3em">${story}</div>`
+ ),
+ ],
+} as Meta;
+
+const Template: Story = (args) => ({
+ component: ConfirmDialogTestComponent,
+ template: `<hi-confirm-dialog-test [data]="data"></hi-confirm-dialog-test>`,
+ props: {
+ ...args,
+ },
+});
+
+export const Delete = Template.bind({});
+Delete.args = {
+ data: {
+ title: 'Confirm Delete',
+ message:
+ 'Are you sure you want to delete this cluster? This cannot be undone.',
+ confirmButtonText: "Yes, I'm sure",
+ },
+};
diff --git a/helix-front/src/app/shared/helper.service.ts b/helix-front/src/app/shared/helper.service.ts
index 099f35800..aa4538ae5 100644
--- a/helix-front/src/app/shared/helper.service.ts
+++ b/helix-front/src/app/shared/helper.service.ts
@@ -30,12 +30,17 @@ export class HelperService {
});
}
- showConfirmation(message: string | object) {
+ showConfirmation(
+ message: string | object,
+ title?: string,
+ confirmButtonText?: string
+ ) {
return this.dialog
.open(ConfirmDialogComponent, {
data: {
- title: 'Confirmation',
message: this.parseMessage(message),
+ title,
+ confirmButtonText,
},
})
.afterClosed()
diff --git a/helix-front/src/app/shared/state-label/state-label.stories.ts b/helix-front/src/app/shared/state-label/state-label.stories.ts
index 8f475a775..031add691 100644
--- a/helix-front/src/app/shared/state-label/state-label.stories.ts
+++ b/helix-front/src/app/shared/state-label/state-label.stories.ts
@@ -48,12 +48,12 @@ Offline.args = {
export const Standby = Template.bind({});
Standby.args = {
- state: "STANDBY",
+ state: 'STANDBY',
isReady: true,
-}
+};
export const Leader = Template.bind({});
Leader.args = {
state: 'LEADER',
isReady: true,
-};
\ No newline at end of file
+};
diff --git a/helix-front/yarn.lock b/helix-front/yarn.lock
index 652a8c14f..e2641f9af 100644
--- a/helix-front/yarn.lock
+++ b/helix-front/yarn.lock
@@ -2388,18 +2388,18 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
-"@storybook/addon-actions@^6.5.10":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.12.tgz#9d2bf3bffa41cf4f92c7220c8f6e3a3f5da55019"
- integrity sha512-yEbyKjBsSRUr61SlS+SOTqQwdumO8Wa3GoHO3AfmvoKfzdGrM7w8G5Zs9Iev16khWg/7bQvoH3KZsg/hQuKnNg==
- dependencies:
- "@storybook/addons" "6.5.12"
- "@storybook/api" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/components" "6.5.12"
- "@storybook/core-events" "6.5.12"
+"@storybook/addon-actions@^6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.13.tgz#84535dda78c7fe15fc61f19a23ed1440952f3c76"
+ integrity sha512-3Tji0gIy95havhTpSc6CsFl5lNxGn4O5Y1U9fyji+GRkKqDFOrvVLYAHPtLOpYdEI5tF0bDo+akiqfDouY8+eA==
+ dependencies:
+ "@storybook/addons" "6.5.13"
+ "@storybook/api" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/components" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/theming" "6.5.12"
+ "@storybook/theming" "6.5.13"
core-js "^3.8.2"
fast-deep-equal "^3.1.3"
global "^4.4.0"
@@ -2413,39 +2413,39 @@
util-deprecate "^1.0.2"
uuid-browser "^3.1.0"
-"@storybook/addons@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.12.tgz#891767b5f88ea99b956cf19e9e2893594068adc7"
- integrity sha512-y3cgxZq41YGnuIlBJEuJjSFdMsm8wnvlNOGUP9Q+Er2dgfx8rJz4Q22o4hPjpvpaj4XdBtxCJXI2NeFpN59+Cw==
+"@storybook/addons@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.13.tgz#61ec5eab07879400d423d60bb397880d10ee5e73"
+ integrity sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA==
dependencies:
- "@storybook/api" "6.5.12"
- "@storybook/channels" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-events" "6.5.12"
+ "@storybook/api" "6.5.13"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/router" "6.5.12"
- "@storybook/theming" "6.5.12"
+ "@storybook/router" "6.5.13"
+ "@storybook/theming" "6.5.13"
"@types/webpack-env" "^1.16.0"
core-js "^3.8.2"
global "^4.4.0"
regenerator-runtime "^0.13.7"
-"@storybook/angular@^6.5.10":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/angular/-/angular-6.5.12.tgz#f5b2f3c79b845edb3a38ee7ab37b52ebfa95da81"
- integrity sha512-/zZLm72sUWQ/G7Vdkd/5Fxf2nNwjABU/d3uOPPWgTKSq8YIoJc1f2cc6ytRQTceQBvZCOUZWWsJRlkjMOyZJgQ==
- dependencies:
- "@storybook/addons" "6.5.12"
- "@storybook/api" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core" "6.5.12"
- "@storybook/core-common" "6.5.12"
- "@storybook/core-events" "6.5.12"
+"@storybook/angular@^6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/angular/-/angular-6.5.13.tgz#ea1c39ec5a6df9c0f5dbe21f4ab7635578730944"
+ integrity sha512-k+aXOwvjRhFA4WUsUW2jA+J9ezs+nMEVhsMXk39SLlCHzs0dqgwfxMwxb/nOUT8FhJF9eJ8+NUhgvqBEcGYZJg==
+ dependencies:
+ "@storybook/addons" "6.5.13"
+ "@storybook/api" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core" "6.5.13"
+ "@storybook/core-common" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/docs-tools" "6.5.12"
- "@storybook/node-logger" "6.5.12"
+ "@storybook/docs-tools" "6.5.13"
+ "@storybook/node-logger" "6.5.13"
"@storybook/semver" "^7.3.2"
- "@storybook/store" "6.5.12"
+ "@storybook/store" "6.5.13"
"@types/node" "^14.14.20 || ^16.0.0"
"@types/react" "^16.14.23"
"@types/react-dom" "^16.9.14"
@@ -2472,18 +2472,18 @@
util-deprecate "^1.0.2"
webpack ">=4.0.0 <6.0.0"
-"@storybook/api@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.12.tgz#7cc82087fc9298be03f15bf4ab9c4aab294b3bac"
- integrity sha512-DuUZmMlQxkFNU9Vgkp9aNfCkAongU76VVmygvCuSpMVDI9HQ2lG0ydL+ppL4XKoSMCCoXTY6+rg4hJANnH+1AQ==
+"@storybook/api@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.13.tgz#8671e580721ff68d209fcde2975f967ae79b7d64"
+ integrity sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w==
dependencies:
- "@storybook/channels" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-events" "6.5.12"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/router" "6.5.12"
+ "@storybook/router" "6.5.13"
"@storybook/semver" "^7.3.2"
- "@storybook/theming" "6.5.12"
+ "@storybook/theming" "6.5.13"
core-js "^3.8.2"
fast-deep-equal "^3.1.3"
global "^4.4.0"
@@ -2495,28 +2495,28 @@
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/builder-webpack4@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.12.tgz#dcfd91d3e78505943864335bc2b84ccc4d00a54e"
- integrity sha512-TsthT5jm9ZxQPNOZJbF5AV24me3i+jjYD7gbdKdSHrOVn1r3ydX4Z8aD6+BjLCtTn3T+e8NMvUkL4dInEo1x6g==
+"@storybook/builder-webpack4@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.13.tgz#35b22c49562d72934a0bc311657989f3b43be575"
+ integrity sha512-Agqy3IKPv3Nl8QqdS7PjtqLp+c0BD8+/3A2ki/YfKqVz+F+J34EpbZlh3uU053avm1EoNQHSmhZok3ZlWH6O7A==
dependencies:
"@babel/core" "^7.12.10"
- "@storybook/addons" "6.5.12"
- "@storybook/api" "6.5.12"
- "@storybook/channel-postmessage" "6.5.12"
- "@storybook/channels" "6.5.12"
- "@storybook/client-api" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/components" "6.5.12"
- "@storybook/core-common" "6.5.12"
- "@storybook/core-events" "6.5.12"
- "@storybook/node-logger" "6.5.12"
- "@storybook/preview-web" "6.5.12"
- "@storybook/router" "6.5.12"
+ "@storybook/addons" "6.5.13"
+ "@storybook/api" "6.5.13"
+ "@storybook/channel-postmessage" "6.5.13"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-api" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/components" "6.5.13"
+ "@storybook/core-common" "6.5.13"
+ "@storybook/core-events" "6.5.13"
+ "@storybook/node-logger" "6.5.13"
+ "@storybook/preview-web" "6.5.13"
+ "@storybook/router" "6.5.13"
"@storybook/semver" "^7.3.2"
- "@storybook/store" "6.5.12"
- "@storybook/theming" "6.5.12"
- "@storybook/ui" "6.5.12"
+ "@storybook/store" "6.5.13"
+ "@storybook/theming" "6.5.13"
+ "@storybook/ui" "6.5.13"
"@types/node" "^14.0.10 || ^16.0.0"
"@types/webpack" "^4.41.26"
autoprefixer "^9.8.6"
@@ -2548,27 +2548,27 @@
webpack-hot-middleware "^2.25.1"
webpack-virtual-modules "^0.2.2"
-"@storybook/builder-webpack5@^6.5.0-rc.1":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.5.12.tgz#29fe22466b88d8f5c4b408f303f7fb189ad6eadb"
- integrity sha512-jK5jWxhSbMAM/onPB6WN7xVqwZnAmzJljOG24InO/YIjW8pQof7MeAXCYBM4rYM+BbK61gkZ/RKxwlkqXBWv+Q==
+"@storybook/builder-webpack5@^6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.5.13.tgz#b40a6fc0ff22b6e7c7e1a46a8fc3c24cf14833f8"
+ integrity sha512-juNH31ZljWbaoBD6Yx2/iQ4G66UBkwq+cFUqLzgVROKMXmYaT0AJYbfyY8CgGqcXkc+sqNA63yWaLWd8/K9vTg==
dependencies:
"@babel/core" "^7.12.10"
- "@storybook/addons" "6.5.12"
- "@storybook/api" "6.5.12"
- "@storybook/channel-postmessage" "6.5.12"
- "@storybook/channels" "6.5.12"
- "@storybook/client-api" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/components" "6.5.12"
- "@storybook/core-common" "6.5.12"
- "@storybook/core-events" "6.5.12"
- "@storybook/node-logger" "6.5.12"
- "@storybook/preview-web" "6.5.12"
- "@storybook/router" "6.5.12"
+ "@storybook/addons" "6.5.13"
+ "@storybook/api" "6.5.13"
+ "@storybook/channel-postmessage" "6.5.13"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-api" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/components" "6.5.13"
+ "@storybook/core-common" "6.5.13"
+ "@storybook/core-events" "6.5.13"
+ "@storybook/node-logger" "6.5.13"
+ "@storybook/preview-web" "6.5.13"
+ "@storybook/router" "6.5.13"
"@storybook/semver" "^7.3.2"
- "@storybook/store" "6.5.12"
- "@storybook/theming" "6.5.12"
+ "@storybook/store" "6.5.13"
+ "@storybook/theming" "6.5.13"
"@types/node" "^14.0.10 || ^16.0.0"
babel-loader "^8.0.0"
babel-plugin-named-exports-order "^0.0.2"
@@ -2592,51 +2592,51 @@
webpack-hot-middleware "^2.25.1"
webpack-virtual-modules "^0.4.1"
-"@storybook/channel-postmessage@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.12.tgz#045c5920eb6924b11411d1d5f6475a0d83c982e3"
- integrity sha512-SL/tJBLOdDlbUAAxhiZWOEYd5HI4y8rN50r6jeed5nD8PlocZjxJ6mO0IxnePqIL9Yu3nSrQRHrtp8AJvPX0Yg==
+"@storybook/channel-postmessage@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.13.tgz#cdb36cf4180bd75687c0c4ec75248044ac975828"
+ integrity sha512-R79MBs0mQ7TV8M/a6x/SiTRyvZBidDfMEEthG7Cyo9p35JYiKOhj2535zhW4qlVMESBu95pwKYBibTjASoStPw==
dependencies:
- "@storybook/channels" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-events" "6.5.12"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-events" "6.5.13"
core-js "^3.8.2"
global "^4.4.0"
qs "^6.10.0"
telejson "^6.0.8"
-"@storybook/channel-websocket@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.12.tgz#4796e2436900d73fb867591f7d7cf8f94898d51b"
- integrity sha512-0t5dLselHVKTRYaphxx1dRh4pmOFCfR7h8oNJlOvJ29Qy5eNyVujDG9nhwWbqU6IKayuP4nZrAbe9Req9YZYlQ==
+"@storybook/channel-websocket@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.13.tgz#b7a55149295a77004bb156a4ceefc44839f52bb3"
+ integrity sha512-kwh667H+tzCiNvs92GNwYOwVXdj9uHZyieRAN5rJtTBJ7XgLzGkpTEU50mWlbc0nDKhgE0qYvzyr5H393Iy5ug==
dependencies:
- "@storybook/channels" "6.5.12"
- "@storybook/client-logger" "6.5.12"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
core-js "^3.8.2"
global "^4.4.0"
telejson "^6.0.8"
-"@storybook/channels@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.12.tgz#98baf01691d263e2ac341853361ec69c1a6621bc"
- integrity sha512-X5XaKbe4b7LXJ4sUakBo00x6pXnW78JkOonHoaKoWsccHLlEzwfBZpVVekhVZnqtCoLT23dB8wjKgA71RYWoiw==
+"@storybook/channels@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.13.tgz#f3f86b90a7832484ee3dcbc6845f5a47f62f028f"
+ integrity sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg==
dependencies:
core-js "^3.8.2"
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/client-api@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.12.tgz#9d02b2a8f5d4137918257742d72ae10c6a70a477"
- integrity sha512-+JiRSgiU829KPc25nG/k0+Ao2nUelHUe8Y/9cRoKWbCAGzi4xd0JLhHAOr9Oi2szWx/OI1L08lxVv1+WTveAeA==
+"@storybook/client-api@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.13.tgz#0bd89339c08898e0409c5a1dd719ed4807b400cb"
+ integrity sha512-uH1mAWbidPiuuTdMUVEiuaNOfrYXm+9QLSP1MMYTKULqEOZI5MSOGkEDqRfVWxbYv/iWBOPTQ+OM9TQ6ecYacg==
dependencies:
- "@storybook/addons" "6.5.12"
- "@storybook/channel-postmessage" "6.5.12"
- "@storybook/channels" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-events" "6.5.12"
+ "@storybook/addons" "6.5.13"
+ "@storybook/channel-postmessage" "6.5.13"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/store" "6.5.12"
+ "@storybook/store" "6.5.13"
"@types/qs" "^6.9.5"
"@types/webpack-env" "^1.16.0"
core-js "^3.8.2"
@@ -2651,43 +2651,43 @@
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/client-logger@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.12.tgz#d9809e13dc7939eb61452a5e94b1ccb61c4a022c"
- integrity sha512-IrkMr5KZcudX935/C2balFbxLHhkvQnJ78rbVThHDVckQ7l3oIXTh66IMzldeOabVFDZEMiW8AWuGEYof+JtLw==
+"@storybook/client-logger@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.13.tgz#83f332dd9bb4ff1696d16b0cc24561df90905264"
+ integrity sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA==
dependencies:
core-js "^3.8.2"
global "^4.4.0"
-"@storybook/components@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.12.tgz#e137f0683ea92e22de116bfa62cfd65ce4efe01d"
- integrity sha512-NAAGl5PDXaHdVLd6hA+ttmLwH3zAVGXeUmEubzKZ9bJzb+duhFKxDa9blM4YEkI+palumvgAMm0UgS7ou680Ig==
+"@storybook/components@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.13.tgz#a05fc969458760b348d640f26c2cad310ab35030"
+ integrity sha512-6Hhx70JK5pGfKCkqMU4yq/BBH+vRTmzj7tZKfPwba+f8VmTMoOr/2ysTQFRtXryiHB6Z15xBYgfq5x2pIwQzLQ==
dependencies:
- "@storybook/client-logger" "6.5.12"
+ "@storybook/client-logger" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/theming" "6.5.12"
+ "@storybook/theming" "6.5.13"
core-js "^3.8.2"
memoizerific "^1.11.3"
qs "^6.10.0"
regenerator-runtime "^0.13.7"
util-deprecate "^1.0.2"
-"@storybook/core-client@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.12.tgz#1a3889604b92292d210d956c46f86a64dd7a9483"
- integrity sha512-jyAd0ud6zO+flpLv0lEHbbt1Bv9Ms225M6WTQLrfe7kN/7j1pVKZEoeVCLZwkJUtSKcNiWQxZbS15h31pcYwqg==
- dependencies:
- "@storybook/addons" "6.5.12"
- "@storybook/channel-postmessage" "6.5.12"
- "@storybook/channel-websocket" "6.5.12"
- "@storybook/client-api" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-events" "6.5.12"
+"@storybook/core-client@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.13.tgz#5e2a155af5773c4211a0e1fcd72e0cefea52b7ae"
+ integrity sha512-YuELbRokTBdqjbx/R4/7O4rou9kvbBIOJjlUkor9hdLLuJ3P0yGianERGNkZFfvcfMBAxU0p52o7QvDldSR3kA==
+ dependencies:
+ "@storybook/addons" "6.5.13"
+ "@storybook/channel-postmessage" "6.5.13"
+ "@storybook/channel-websocket" "6.5.13"
+ "@storybook/client-api" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/preview-web" "6.5.12"
- "@storybook/store" "6.5.12"
- "@storybook/ui" "6.5.12"
+ "@storybook/preview-web" "6.5.13"
+ "@storybook/store" "6.5.13"
+ "@storybook/ui" "6.5.13"
airbnb-js-shims "^2.2.1"
ansi-to-html "^0.6.11"
core-js "^3.8.2"
@@ -2699,10 +2699,10 @@
unfetch "^4.2.0"
util-deprecate "^1.0.2"
-"@storybook/core-common@6.5.12", "@storybook/core-common@^6.5.10":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.12.tgz#9f8d5cb3812382c49c84dcfb4279a39e228a1b83"
- integrity sha512-gG20+eYdIhwQNu6Xs805FLrOCWtkoc8Rt8gJiRt8yXzZh9EZkU4xgCRoCxrrJ03ys/gTiCFbBOfRi749uM3z4w==
+"@storybook/core-common@6.5.13", "@storybook/core-common@^6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.13.tgz#941fe2aea3326c2d524d095870a4150b9f9b1845"
+ integrity sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg==
dependencies:
"@babel/core" "^7.12.10"
"@babel/plugin-proposal-class-properties" "^7.12.1"
@@ -2726,7 +2726,7 @@
"@babel/preset-react" "^7.12.10"
"@babel/preset-typescript" "^7.12.7"
"@babel/register" "^7.12.1"
- "@storybook/node-logger" "6.5.12"
+ "@storybook/node-logger" "6.5.13"
"@storybook/semver" "^7.3.2"
"@types/node" "^14.0.10 || ^16.0.0"
"@types/pretty-hrtime" "^1.0.0"
@@ -2755,30 +2755,30 @@
util-deprecate "^1.0.2"
webpack "4"
-"@storybook/core-events@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.12.tgz#28bd727cc4216012409bfac412fcb708346c56bc"
- integrity sha512-0AMyMM19R/lHsYRfWqM8zZTXthasTAK2ExkSRzYi2GkIaVMxRKtM33YRwxKIpJ6KmIKIs8Ru3QCXu1mfCmGzNg==
+"@storybook/core-events@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.13.tgz#a8c0cc92694f09981ca6501d5c5ef328db18db8a"
+ integrity sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w==
dependencies:
core-js "^3.8.2"
-"@storybook/core-server@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.12.tgz#bc47a2af4972f7c9cddb8b5961bd5f04a3f7f09f"
- integrity sha512-q1b/XKwoLUcCoCQ+8ndPD5THkEwXZYJ9ROv16i2VGUjjjAuSqpEYBq5GMGQUgxlWp1bkxtdGL2Jz+6pZfvldzA==
+"@storybook/core-server@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.13.tgz#5f0f13b73122f73b9d27962616815305da2a5b28"
+ integrity sha512-vs7tu3kAnFwuINio1p87WyqDNlFyZESmeh9s7vvrZVbe/xS/ElqDscr9DT5seW+jbtxufAaHsx+JUTver1dheQ==
dependencies:
"@discoveryjs/json-ext" "^0.5.3"
- "@storybook/builder-webpack4" "6.5.12"
- "@storybook/core-client" "6.5.12"
- "@storybook/core-common" "6.5.12"
- "@storybook/core-events" "6.5.12"
+ "@storybook/builder-webpack4" "6.5.13"
+ "@storybook/core-client" "6.5.13"
+ "@storybook/core-common" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/csf-tools" "6.5.12"
- "@storybook/manager-webpack4" "6.5.12"
- "@storybook/node-logger" "6.5.12"
+ "@storybook/csf-tools" "6.5.13"
+ "@storybook/manager-webpack4" "6.5.13"
+ "@storybook/node-logger" "6.5.13"
"@storybook/semver" "^7.3.2"
- "@storybook/store" "6.5.12"
- "@storybook/telemetry" "6.5.12"
+ "@storybook/store" "6.5.13"
+ "@storybook/telemetry" "6.5.13"
"@types/node" "^14.0.10 || ^16.0.0"
"@types/node-fetch" "^2.5.7"
"@types/pretty-hrtime" "^1.0.0"
@@ -2813,18 +2813,18 @@
ws "^8.2.3"
x-default-browser "^0.4.0"
-"@storybook/core@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.12.tgz#b12456a76de584ee3b0818b5f50c35338ac66f93"
- integrity sha512-+o3psAVWL+5LSwyJmEbvhgxKO1Et5uOX8ujNVt/f1fgwJBIf6BypxyPKu9YGQDRzcRssESQQZWNrZCCAZlFeuQ==
+"@storybook/core@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.13.tgz#4c657c5d8d243f1187dad8763a275d555426957e"
+ integrity sha512-kw1lCgbsxzUimGww6t5rmuWJmFPe9kGGyzIqvj4RC4BBcEsP40LEu9XhSfvnb8vTOLIULFZeZpdRFfJs4TYbUw==
dependencies:
- "@storybook/core-client" "6.5.12"
- "@storybook/core-server" "6.5.12"
+ "@storybook/core-client" "6.5.13"
+ "@storybook/core-server" "6.5.13"
-"@storybook/csf-tools@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.12.tgz#7740becd059686001d4c1b4db3f43e792362d918"
- integrity sha512-BPhnB1xJtBVOzXuCURzQRdXcstE27ht4qoTgQkbwUTy4MEtUZ/f1AnHSYRdzrgukXdUFWseNIK4RkNdJpfOfNQ==
+"@storybook/csf-tools@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.13.tgz#cb5cd26083a594bf31b19a66a250ad94863822f6"
+ integrity sha512-63Ev+VmBqzwSwfUzbuXOLKBD5dMTK2zBYLQ9anTVw70FuTikwTsGIbPgb098K0vsxRCgxl7KM7NpivHqtZtdjw==
dependencies:
"@babel/core" "^7.12.10"
"@babel/generator" "^7.12.11"
@@ -2848,33 +2848,33 @@
dependencies:
lodash "^4.17.15"
-"@storybook/docs-tools@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.12.tgz#22138cc810e8790b21d518cd48a3e2716d43c751"
- integrity sha512-8brf8W89KVk95flVqW0sYEqkL+FBwb5W9CnwI+Ggd6r2cqXe9jyg+0vDZFdYp6kYNQKrPr4fbXGrGVXQG18/QQ==
+"@storybook/docs-tools@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.13.tgz#00c7041ac7bc827d12731face909351a5af0cb3f"
+ integrity sha512-hB+hk+895ny4SW84j3X5iV55DHs3bCfTOp7cDdcZJdQrlm0wuDb4A6d4ffNC7ZLh9VkUjU6ST4VEV5Bb0Cptow==
dependencies:
"@babel/core" "^7.12.10"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/store" "6.5.12"
+ "@storybook/store" "6.5.13"
core-js "^3.8.2"
doctrine "^3.0.0"
lodash "^4.17.21"
regenerator-runtime "^0.13.7"
-"@storybook/manager-webpack4@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.12.tgz#7e0ae21455e1c070d291942c18373ceaa58c0e05"
- integrity sha512-LH3e6qfvq2znEdxe2kaWtmdDPTnvSkufzoC9iwOgNvo3YrTGrYNyUTDegvW293TOTVfUn7j6TBcsOxIgRnt28g==
+"@storybook/manager-webpack4@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.13.tgz#73350ac3e8a10494158df3c1ea01dd7f329bec8e"
+ integrity sha512-pURzS5W3XM0F7bCBWzpl7TRsuy+OXFwLXiWLaexuvo0POZe31Ueo2A1R4rx3MT5Iee8O9mYvG2XTmvK9MlLefQ==
dependencies:
"@babel/core" "^7.12.10"
"@babel/plugin-transform-template-literals" "^7.12.1"
"@babel/preset-react" "^7.12.10"
- "@storybook/addons" "6.5.12"
- "@storybook/core-client" "6.5.12"
- "@storybook/core-common" "6.5.12"
- "@storybook/node-logger" "6.5.12"
- "@storybook/theming" "6.5.12"
- "@storybook/ui" "6.5.12"
+ "@storybook/addons" "6.5.13"
+ "@storybook/core-client" "6.5.13"
+ "@storybook/core-common" "6.5.13"
+ "@storybook/node-logger" "6.5.13"
+ "@storybook/theming" "6.5.13"
+ "@storybook/ui" "6.5.13"
"@types/node" "^14.0.10 || ^16.0.0"
"@types/webpack" "^4.41.26"
babel-loader "^8.0.0"
@@ -2902,20 +2902,20 @@
webpack-dev-middleware "^3.7.3"
webpack-virtual-modules "^0.2.2"
-"@storybook/manager-webpack5@^6.5.0-rc.1":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.5.12.tgz#77c98a63ef6c8d2ae0b1e69eb432818d0c25e672"
- integrity sha512-F+KgoINhfo1ArbirCc9L+EyADYD8Z4t0LyZYDVcBiZ8DlRIMIoUSye6tDsnyEm+OPloLVAcGwRMYgFhuHB70Lg==
+"@storybook/manager-webpack5@^6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.5.13.tgz#3d88d4ec7dfce6413da944e94e28f3b7a1af4b51"
+ integrity sha512-lQEZacSfeRsbqfJE7TVk35Hm1vkr0I2i1pyYqM+4862gRbMh1nJQXbJ5GqZ+Fo/bf0ZfyFZ32jGDIJAFdlpkuQ==
dependencies:
"@babel/core" "^7.12.10"
"@babel/plugin-transform-template-literals" "^7.12.1"
"@babel/preset-react" "^7.12.10"
- "@storybook/addons" "6.5.12"
- "@storybook/core-client" "6.5.12"
- "@storybook/core-common" "6.5.12"
- "@storybook/node-logger" "6.5.12"
- "@storybook/theming" "6.5.12"
- "@storybook/ui" "6.5.12"
+ "@storybook/addons" "6.5.13"
+ "@storybook/core-client" "6.5.13"
+ "@storybook/core-common" "6.5.13"
+ "@storybook/node-logger" "6.5.13"
+ "@storybook/theming" "6.5.13"
+ "@storybook/ui" "6.5.13"
"@types/node" "^14.0.10 || ^16.0.0"
babel-loader "^8.0.0"
case-sensitive-paths-webpack-plugin "^2.3.0"
@@ -2957,10 +2957,10 @@
prettier ">=2.2.1 <=2.3.0"
ts-dedent "^2.0.0"
-"@storybook/node-logger@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.12.tgz#0f9efcd1a37c7aae493b22fe33cacca87c135b9b"
- integrity sha512-jdLtT3mX5GQKa+0LuX0q0sprKxtCGf6HdXlKZGD5FEuz4MgJUGaaiN0Hgi+U7Z4tVNOtSoIbYBYXHqfUgJrVZw==
+"@storybook/node-logger@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.13.tgz#f4833ae220efe841747c4fead26419d6625af8d9"
+ integrity sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A==
dependencies:
"@types/npmlog" "^4.1.2"
chalk "^4.1.0"
@@ -2968,17 +2968,17 @@
npmlog "^5.0.1"
pretty-hrtime "^1.0.3"
-"@storybook/preview-web@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.12.tgz#09f67908513b9e85254b0b3adea498c8a3e6f7e3"
- integrity sha512-Q5mduCJsY9zhmlsrhHvtOBA3Jt2n45bhfVkiUEqtj8fDit45/GW+eLoffv8GaVTGjV96/Y1JFwDZUwU6mEfgGQ==
+"@storybook/preview-web@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.13.tgz#332cac4c95e3fd760c9eb8448dfa50fdb3b6255b"
+ integrity sha512-GNNYVzw4SmRua3dOc52Ye6Us4iQbq5GKQ56U3iwnzZM3TBdJB+Rft94Fn1/pypHujEHS8hl5Xgp9td6C1lLCow==
dependencies:
- "@storybook/addons" "6.5.12"
- "@storybook/channel-postmessage" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-events" "6.5.12"
+ "@storybook/addons" "6.5.13"
+ "@storybook/channel-postmessage" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
- "@storybook/store" "6.5.12"
+ "@storybook/store" "6.5.13"
ansi-to-html "^0.6.11"
core-js "^3.8.2"
global "^4.4.0"
@@ -2990,12 +2990,12 @@
unfetch "^4.2.0"
util-deprecate "^1.0.2"
-"@storybook/router@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.12.tgz#58efbc1f2f301c8584802af1c710b2f6f03f948c"
- integrity sha512-xHubde9YnBbpkDY5+zGO4Pr6VPxP8H9J2v4OTF3H82uaxCIKR0PKG0utS9pFKIsEiP3aM62Hb9qB8nU+v1nj3w==
+"@storybook/router@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.13.tgz#c8bfed96f2343b097d416cfc95194038365fce94"
+ integrity sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ==
dependencies:
- "@storybook/client-logger" "6.5.12"
+ "@storybook/client-logger" "6.5.13"
core-js "^3.8.2"
memoizerific "^1.11.3"
qs "^6.10.0"
@@ -3009,14 +3009,14 @@
core-js "^3.6.5"
find-up "^4.1.0"
-"@storybook/store@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.12.tgz#f1624ba942162cb9627a2ddcac72bfc9062e17a2"
- integrity sha512-SMQOr0XvV0mhTuqj3XOwGGc4kTPVjh3xqrG1fqkj9RGs+2jRdmO6mnwzda5gPwUmWNTorZ7FxZ1iEoyfYNtuiQ==
+"@storybook/store@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.13.tgz#0281bdf0e24c880f85ea75ae47b6a84e8545b5f8"
+ integrity sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ==
dependencies:
- "@storybook/addons" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-events" "6.5.12"
+ "@storybook/addons" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-events" "6.5.13"
"@storybook/csf" "0.0.2--canary.4566f4d.1"
core-js "^3.8.2"
fast-deep-equal "^3.1.3"
@@ -3030,13 +3030,13 @@
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/telemetry@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.12.tgz#12b0a2bcfe47d57ee6e6344ac789a905a5912747"
- integrity sha512-mCHxx7NmQ3n7gx0nmblNlZE5ZgrjQm6B08mYeWg6Y7r4GZnqS6wZbvAwVhZZ3Gg/9fdqaBApHsdAXp0d5BrlxA==
+"@storybook/telemetry@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.13.tgz#a190001f679ce7899c72b53710765685281fe567"
+ integrity sha512-PFJEfGbunmfFWabD3rdCF8EHH+45578OHOkMPpXJjqXl94vPQxUH2XTVKQgEQJbYrgX0Vx9Z4tSkdMHuzYDbWQ==
dependencies:
- "@storybook/client-logger" "6.5.12"
- "@storybook/core-common" "6.5.12"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/core-common" "6.5.13"
chalk "^4.1.0"
core-js "^3.8.2"
detect-package-manager "^2.0.1"
@@ -3048,30 +3048,30 @@
read-pkg-up "^7.0.1"
regenerator-runtime "^0.13.7"
-"@storybook/theming@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.12.tgz#7df1b52913d49c5e84fc1f2e837c02d9fa8cc639"
- integrity sha512-uWOo84qMQ2R6c1C0faZ4Q0nY01uNaX7nXoJKieoiJ6ZqY9PSYxJl1kZLi3uPYnrxLZjzjVyXX8MgdxzbppYItA==
+"@storybook/theming@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.13.tgz#3f905eb9f72ddc28d096384290999057987f3083"
+ integrity sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g==
dependencies:
- "@storybook/client-logger" "6.5.12"
+ "@storybook/client-logger" "6.5.13"
core-js "^3.8.2"
memoizerific "^1.11.3"
regenerator-runtime "^0.13.7"
-"@storybook/ui@6.5.12":
- version "6.5.12"
- resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.12.tgz#25ccd6e6d5aae227ba6561c2b8e9cfda9b0ad4de"
- integrity sha512-P7+ARI5NvaEYkrbIciT/UMgy3kxMt4WCtHMXss2T01UMCIWh1Ws4BJaDNqtQSpKuwjjS4eqZL3aQWhlUpYAUEg==
- dependencies:
- "@storybook/addons" "6.5.12"
- "@storybook/api" "6.5.12"
- "@storybook/channels" "6.5.12"
- "@storybook/client-logger" "6.5.12"
- "@storybook/components" "6.5.12"
- "@storybook/core-events" "6.5.12"
- "@storybook/router" "6.5.12"
+"@storybook/ui@6.5.13":
+ version "6.5.13"
+ resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.13.tgz#16b25fd839cdafc2b9989c548bc1ffb711b33dee"
+ integrity sha512-MklJuSg4Bc+MWjwhZVmZhJaucaeEBUMMa2V9oRWbIgZOdRHqdW72S2vCbaarDAYfBQdnfaoq1GkSQiw+EnWOzA==
+ dependencies:
+ "@storybook/addons" "6.5.13"
+ "@storybook/api" "6.5.13"
+ "@storybook/channels" "6.5.13"
+ "@storybook/client-logger" "6.5.13"
+ "@storybook/components" "6.5.13"
+ "@storybook/core-events" "6.5.13"
+ "@storybook/router" "6.5.13"
"@storybook/semver" "^7.3.2"
- "@storybook/theming" "6.5.12"
+ "@storybook/theming" "6.5.13"
core-js "^3.8.2"
memoizerific "^1.11.3"
qs "^6.10.0"