Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21,142 changes: 1,886 additions & 19,256 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"@angular/compiler": "~13.3.0",
"@angular/core": "~13.3.0",
"@angular/forms": "~13.3.0",
"@angular/material": "~13.3.0",
"@angular/platform-browser": "~13.3.0",
"@angular/platform-browser-dynamic": "~13.3.0",
"@angular/router": "~13.3.0",
Expand Down
Binary file not shown.
202 changes: 158 additions & 44 deletions projects/workflows-creator/src/lib/builder/group/group.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,23 @@
</span>
</span>
</div>
<span *ngFor="let node of group.children; let i = index">
<div
*ngFor="let node of group.children; let i = index"
[style.margin-bottom.px]="
node.node.noMultiLine ? node.node.noMultiLine * 32 : null
"
>
<workflow-node
[ngClass]="{'last-node': i === group.children.length - 1}"
[node]="node"
[ngClass]="{'last-node': i === group.children.length - 1}"
[isLast]="i === group.children.length - 1"
[isFirst]="i === 0"
[inputTemplate]="inputs"
[popupTemplate]="nodePopup"
(add)="openPopup(group.nodeType)"
(remove)="onNodeRemove(i)"
></workflow-node>
</span>
</div>

<popper-content #nodePopup>
<div
Expand All @@ -81,47 +85,35 @@
<ng-container
*ngIf="!(input.isHidden && input.isHidden(nodeWithInput.node))"
>
{{
(input.prefix.state
? nodeWithInput.node.state.get(input.prefix.state)
: input.prefix) || ''
}}
<div
class="input-text"
[popper]="inputPopper"
[popperShowOnStart]="false"
[popperHideOnClickOutside]="false"
[popperHideOnScroll]="true"
[popperTrigger]="'none'"
[popperPlacement]="'bottom-start'"
[popperApplyClass]="'workflow-popper'"
(click)="onPoperClick($event, inputPopper)"
(mouseover)="showTooltip($event, nodeWithInput, input)"
(mouseout)="hideTooltip()"
>
<span
class="value-text"
*ngIf="input.getValueName(nodeWithInput.node.state)"
title="{{ input.getValueName(nodeWithInput.node.state) }}"
(click)="setInput(input, nodeWithInput)"
>{{ input.getValueName(nodeWithInput.node.state) }}</span
>
<span
class="placeholder-text"
*ngIf="!input.getValueName(nodeWithInput.node.state)"
>
{{
nodeWithInput.node.state.get(input.customPlaceholder?.state) ??
input.placeholder
}}
</span>
</div>
{{
(input.suffix?.state
? nodeWithInput.node.state.get(input.suffix?.state)
: input.suffix) || ''
}}
<ng-container *ngIf="input.nextLine; else defaultInput">
<div class="input-next-line">
<ng-container
*ngTemplateOutlet="
renderInput;
context: {
input: input,
nodeWithInput: nodeWithInput,
inputPopper: inputPopper
}
"
></ng-container>
</div>
</ng-container>

<ng-template #defaultInput>
<ng-container
*ngTemplateOutlet="
renderInput;
context: {
input: input,
nodeWithInput: nodeWithInput,
inputPopper: inputPopper
}
"
></ng-container>
</ng-template>
</ng-container>

<popper-content #inputPopper>
<ng-container
*ngIf="
Expand All @@ -145,7 +137,8 @@
appendEmailBody: appendEmailBody,
setFocusKey: setFocusKey,
hide: hidePopper(),
setFocusOutPos: setFocusOutPos
setFocusOutPos: setFocusOutPos,
jiraAccountList: jiraAccountList
}
"
></ng-container>
Expand All @@ -154,6 +147,55 @@
</ng-container>
</ng-template>

<ng-template
#renderInput
let-input="input"
let-nodeWithInput="nodeWithInput"
let-inputPopper="inputPopper"
>
{{
(input.prefix?.state
? nodeWithInput.node.state.get(input.prefix.state)
: input.prefix) || ''
}}
<div
class="input-text"
[popper]="inputPopper"
[popperShowOnStart]="false"
[popperHideOnClickOutside]="false"
[popperHideOnScroll]="true"
[popperTrigger]="'none'"
[popperPlacement]="'bottom-start'"
[popperApplyClass]="'workflow-popper'"
(click)="onPoperClick($event, inputPopper)"
(mouseover)="showTooltip($event, nodeWithInput, input)"
(mouseout)="hideTooltip()"
>
<span
class="value-text"
*ngIf="input.getValueName(nodeWithInput.node.state)"
title="{{ input.getValueName(nodeWithInput.node.state) }}"
(click)="setInput(input, nodeWithInput)"
>
{{ input.getValueName(nodeWithInput.node.state) }}
</span>
<span
class="placeholder-text"
*ngIf="!input.getValueName(nodeWithInput.node.state)"
>
{{
nodeWithInput.node.state.get(input.customPlaceholder?.state) ??
input.placeholder
}}
</span>
</div>
{{
(input.suffix?.state
? nodeWithInput.node.state.get(input.suffix?.state)
: input.suffix) || ''
}}
</ng-template>

<ng-template
#textTemplate
let-callback="callback"
Expand Down Expand Up @@ -324,3 +366,75 @@
</div>
</ng-template>
</div>
<ng-template
#jiraAccountTemplate
let-callback="callback"
let-input="input"
let-nodeWithInput="nodeWithInput"
let-hide="hide"
>
<ng-container *ngIf="!jiraAccounts?.length; else connectedJira">
<div class="jira-connect-modal" (document:click)="hide()">
<div class="jira-connect-modal-header">
{{ jiraStrings.connectToJiraLbl }}
</div>
<div class="jira-connect-modal-subheader">
{{ jiraStrings.connectJiraDescLbl }}
</div>
<div class="jira-connect-modal-footer">
<button
mat-raised-button
color="accent"
class="jira-connect-btn"
(click)="onConnectJira()"
>
{{ jiraStrings.connectLbl }}
</button>
</div>
</div>
</ng-container>
<ng-template #connectedJira>
<div class="jira-connect-modal-with-accounts">
<div class="jira-account-list">
<div class="jira-connect-modal-header">
{{ jiraStrings.connectToJiraLbl }}
</div>
<div
class="jira-connect-modal-subheader"
*ngIf="jiraAccounts?.length === 1"
>
{{ jiraStrings.connectOnJiraThisSiteLbl }}
</div>
<div
class="jira-connect-modal-subheader"
*ngIf="jiraAccounts?.length > 1"
>
{{ jiraStrings.jiraMultipleAccountDescLbl }}
</div>
<div *ngFor="let account of jiraAccounts" class="jira-account-item">
<mat-radio-group
class="jira-radio-group"
[(ngModel)]="selectedJiraAccount"
>
<mat-radio-button [value]="account">
{{ account.name }}
</mat-radio-button>
</mat-radio-group>
<mat-icon
class="icomoon Delete-Outline pointer-cursor icon-delete"
(click)="callback('delete', account)"
></mat-icon>
</div>

<button class="connect-btn" (click)="onConnectJira(true)">
<div class="jira-connect-more-btn">
<mat-icon class="icomoon Plus icon-add"></mat-icon>
<span class="jira-connect-more-text">{{
jiraStrings.anotherAccountLbl
}}</span>
</div>
</button>
</div>
</div>
</ng-template>
</ng-template>
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@
}
}
}
.input-next-line {
display: block;
height: 5px;
}

.input-text {
cursor: pointer;
Expand All @@ -66,7 +70,6 @@
text-decoration: inherit;
.placeholder-text {
color: $placeholder-color;
text-transform: lowercase;
}
.value-text {
display: inline-block;
Expand Down Expand Up @@ -245,3 +248,94 @@
font-size: 12px;
}
}

.jira-connect-modal {
background: #fff;
border-radius: 3.2px;
width: 200.8px;
min-height: 116.8px;
padding: 12.8px;
}

.jira-connect-modal-with-accounts {
background: #fff;
border-radius: 3.2px;
width: 247.2px;
min-height: 137.6px;
padding: 12.8px;
}

.jira-connect-modal-header {
color: #333333;
border-radius: 8px 8px 0 0;
font-size: 12.8px;
font-weight: 600;
letter-spacing: 0.01em;
}

.jira-connect-modal-subheader {
font-size: 10.4px;
color: #333333;
padding-bottom: 12.8px;
}

.jira-connect-modal-footer {
display: flex;
justify-content: flex-end;
height: 25.6px;
margin-top: auto;
}

.connect-btn {
display: flex;
justify-self: flex-end;
margin-top: auto;
height: 25.6px;
width: 129.6px;
border: 1px solid #0a1749;
border-radius: 3.2px;
background-color: #fff;
.jira-connect-more-btn {
display: flex;
flex-direction: row;
align-items: center;
padding-left: 6.4px;
.icon-add {
font-size: 12.8px !important;
height: 12.8px;
width: 12.8px;
color: #0a1749 !important;
}
.jira-connect-more-text {
padding-left: 4.8px;
color: #0a1749;
font-size: 11.2px;
font-size: 600;
}
}
}

.jira-account-item {
display: flex;
flex-direction: row;
font-size: 10.4px;
font-weight: 400;
padding-bottom: 19.2px;
}

.connected-account-details {
display: flex;
flex-direction: column;
}
.account-name {
font-weight: 600;
font-size: 1.1rem;
color: #253858;
}

.icon-delete {
font-size: 16px !important;
margin-left: auto;
height: 16px;
width: 16px;
}
Loading
Loading