barsa-kanban 2.1.1 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/barsa-kanban.mjs +12 -10
- package/fesm2022/barsa-kanban.mjs.map +1 -1
- package/package.json +3 -5
- package/esm2022/barsa-kanban.mjs +0 -5
- package/esm2022/lib/Models/drop-info.mjs +0 -2
- package/esm2022/lib/Models/kanban-view-setting.interface.mjs +0 -2
- package/esm2022/lib/avatar-group/barsa-avatar-group.component.mjs +0 -82
- package/esm2022/lib/barsa-kanban.module.mjs +0 -77
- package/esm2022/lib/kanban-base/kanban-base.component.mjs +0 -20
- package/esm2022/lib/kanban-card/kanban-card.component.mjs +0 -33
- package/esm2022/lib/kanban-tags/kanban-tags.component.mjs +0 -43
- package/esm2022/lib/kanban-view/kanban-view.component.mjs +0 -273
- package/esm2022/public-api.mjs +0 -7
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { ENTER, ESCAPE, SPACE, TAB } from '@angular/cdk/keycodes';
|
|
3
|
-
import { KeyUtil } from '@fundamental-ngx/core/utils';
|
|
4
|
-
import { AvatarGroupComponent } from '@fundamental-ngx/core';
|
|
5
|
-
import { KanbanBaseComponent } from '../kanban-base/kanban-base.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@fundamental-ngx/core/avatar";
|
|
8
|
-
import * as i2 from "@fundamental-ngx/core/bar";
|
|
9
|
-
import * as i3 from "@fundamental-ngx/core/button";
|
|
10
|
-
import * as i4 from "@fundamental-ngx/core/list";
|
|
11
|
-
import * as i5 from "@fundamental-ngx/core/popover";
|
|
12
|
-
import * as i6 from "barsa-novin-ray-core";
|
|
13
|
-
export class BarsaAvatarGroupComponent extends KanbanBaseComponent {
|
|
14
|
-
constructor() {
|
|
15
|
-
super(...arguments);
|
|
16
|
-
this.visibleFields = [];
|
|
17
|
-
this.size = 'l';
|
|
18
|
-
this.personDetails = null;
|
|
19
|
-
this.overflowPopoverStage = 'main';
|
|
20
|
-
}
|
|
21
|
-
get isDetailStage() {
|
|
22
|
-
return this.overflowPopoverStage === 'detail';
|
|
23
|
-
}
|
|
24
|
-
isOpenChanged(isOpened) {
|
|
25
|
-
if (isOpened) {
|
|
26
|
-
this.openOverflowMain();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
newItem(newItem) {
|
|
30
|
-
const exist = this.existedItems.find((item) => item.Id === newItem.Id);
|
|
31
|
-
if (!exist) {
|
|
32
|
-
this.existedItems.push(newItem);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
deleteAvatar(idx) {
|
|
36
|
-
this.existedItems.splice(idx, 1);
|
|
37
|
-
}
|
|
38
|
-
openOverflowMain() {
|
|
39
|
-
this.personDetails = null;
|
|
40
|
-
this.overflowPopoverStage = 'main';
|
|
41
|
-
setTimeout(() => this.popoverBodyComponent?._focusFirstTabbableElement(), 0);
|
|
42
|
-
}
|
|
43
|
-
handleControlClick(event, popover) {
|
|
44
|
-
popover.open();
|
|
45
|
-
}
|
|
46
|
-
handleControlKeydown(event, popover) {
|
|
47
|
-
if (!KeyUtil.isKeyCode(event, [ESCAPE, TAB, SPACE, ENTER])) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
if (KeyUtil.isKeyCode(event, [ESCAPE, TAB])) {
|
|
51
|
-
popover.close();
|
|
52
|
-
}
|
|
53
|
-
if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {
|
|
54
|
-
popover.open();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaAvatarGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaAvatarGroupComponent, selector: "bk-avatar-group", inputs: { existedItems: "existedItems", availableItems: "availableItems", viewSetting: "viewSetting", visibleFields: "visibleFields", addItem: "addItem", size: "size" }, viewQueries: [{ propertyName: "popoverBodyComponent", first: true, predicate: ["overflowPopoverBody"], descendants: true }, { propertyName: "avatarGroupCom", first: true, predicate: AvatarGroupComponent, descendants: true, read: AvatarGroupComponent, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-avatar-group #avatarGroupCom type=\"group\" [size]=\"size\">\r\n <fd-popover\r\n [noArrow]=\"false\"\r\n [focusTrapped]=\"true\"\r\n [focusAutoCapture]=\"true\"\r\n [triggers]=\"[]\"\r\n [closeOnOutsideClick]=\"true\"\r\n [closeOnEscapeKey]=\"true\"\r\n (isOpenChange)=\"isOpenChanged($event)\"\r\n placement=\"bottom\"\r\n [maxWidth]=\"312\"\r\n #overflowPopover\r\n >\r\n <fd-popover-control\r\n fd-avatar-group-popover-control\r\n [attr.aria-label]=\"\r\n 'Has popup type dialog Conjoined avatars, ' +\r\n ' avatars displayed, ' +\r\n 1 +\r\n ' avatars hidden, activate for complete list'\r\n \"\r\n (click)=\"handleControlClick($event, overflowPopover)\"\r\n (keydown)=\"handleControlKeydown($event, overflowPopover)\"\r\n >\r\n @for (person of existedItems; track person) {\r\n <div fd-avatar-group-item>\r\n @if (!person[viewSetting.AssigneeImage]) {\r\n <fd-avatar\r\n [label]=\"person[viewSetting.AssigneeName]\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n role=\"img\"\r\n [circle]=\"true\"\r\n [border]=\"true\"\r\n [size]=\"size\"\r\n ></fd-avatar>\r\n } @if (person[viewSetting.AssigneeImage]; as avatar) {\r\n <fd-avatar\r\n role=\"img\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n [circle]=\"true\"\r\n [border]=\"true\"\r\n [size]=\"size\"\r\n [image]=\"(avatar.FileId | picFieldSrc: 'ID':person.Id) || ''\"\r\n >\r\n </fd-avatar>\r\n }\r\n </div>\r\n } \r\n <button fd-button fd-avatar-group-overflow-button tabindex=\"-1\" [compact]=\"false\" [size]=\"size\">\r\n <bdi fd-avatar-group-overflow-button-text> 1 </bdi>\r\n </button>\r\n \r\n </fd-popover-control>\r\n <fd-popover-body #overflowPopoverBody aria-labelledby=\"avatar-group-1-popover-header\" role=\"tooltip\">\r\n <div class=\"fd-popover__wrapper\">\r\n <div fd-popover-body-header>\r\n <div fd-bar barDesign=\"header\">\r\n <div fd-bar-left>\r\n @if (isDetailStage) {\r\n <fd-button-bar\r\n (click)=\"openOverflowMain()\"\r\n glyph=\"navigation-left-arrow\"\r\n fdType=\"transparent\"\r\n aria-label=\"Back\"\r\n title=\"Back\"\r\n ></fd-button-bar>\r\n }\r\n <fd-bar-element id=\"avatar-group-1-popover-header\">\r\n {{ isDetailStage ? 'Business Card' : 'Team Members (' + existedItems?.length + ')' }}\r\n </fd-bar-element>\r\n @if (isDetailStage) {\r\n <fd-bar-element> </fd-bar-element>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n fd-avatar-group-overflow-body\r\n [noPadding]=\"isDetailStage\"\r\n [noHorizontalScroll]=\"isDetailStage\"\r\n [noVerticalScroll]=\"false\"\r\n >\r\n @if (overflowPopoverStage === 'main') { @for (person of existedItems; track person; let idx =\r\n $index) {\r\n <div fd-avatar-group-overflow-item>\r\n <fd-popover [triggers]=\"['click']\">\r\n <fd-popover-control>\r\n @if (!person[viewSetting.AssigneeImage]) {\r\n <fd-avatar\r\n fd-avatar-group-focusable-avatar\r\n [circle]=\"true\"\r\n size=\"s\"\r\n [label]=\"person[viewSetting.AssigneeName]\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n role=\"img\"\r\n ></fd-avatar>\r\n } @if (person[viewSetting.AssigneeImage]; as avatar) {\r\n <fd-avatar\r\n fd-avatar-group-focusable-avatar\r\n role=\"img\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n [circle]=\"true\"\r\n size=\"s\"\r\n [image]=\"(avatar.FileId | picFieldSrc: 'ID':person.Id) || ''\"\r\n ></fd-avatar>\r\n }\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <div class=\"avatar-actions\">\r\n <button\r\n fd-button\r\n (click)=\"deleteAvatar(idx)\"\r\n [label]=\"'Delete' | bbbTranslate\"\r\n glyph=\"decline\"\r\n ></button>\r\n <button fd-button [label]=\"'Show' | bbbTranslate\" glyph=\"detail-view\"></button>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n } }\r\n </div>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n</fd-avatar-group>\r\n\r\n@if (addItem) {\r\n<fd-popover\r\n #peoplePopover\r\n [triggers]=\"[]\"\r\n [focusTrapped]=\"false\"\r\n [closeOnOutsideClick]=\"true\"\r\n [noArrow]=\"false\"\r\n placement=\"bottom\"\r\n [focusAutoCapture]=\"true\"\r\n>\r\n <fd-popover-control>\r\n <div>\r\n <button\r\n fd-button\r\n (click)=\"openPopover($event, peoplePopover)\"\r\n fdType=\"transparent\"\r\n glyph=\"sys-add\"\r\n ></button>\r\n </div>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (item of availableItems; track item) {\r\n <li fd-list-item (click)=\"newItem(item)\">\r\n @if (visibleFields.length > 0) { @for (field of visibleFields; track field) {\r\n {{ item[field] }}\r\n } } @else {\r\n {{ item }}\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n</fd-popover>\r\n}\r\n", styles: [":host{display:flex;align-items:center;column-gap:2px;width:130px}.avatar-actions{display:flex;padding:10px;flex-direction:column;justify-content:center;row-gap:15px;width:100px}\n"], dependencies: [{ kind: "component", type: i1.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i5.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i6.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i6.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
59
|
-
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaAvatarGroupComponent, decorators: [{
|
|
61
|
-
type: Component,
|
|
62
|
-
args: [{ selector: 'bk-avatar-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-avatar-group #avatarGroupCom type=\"group\" [size]=\"size\">\r\n <fd-popover\r\n [noArrow]=\"false\"\r\n [focusTrapped]=\"true\"\r\n [focusAutoCapture]=\"true\"\r\n [triggers]=\"[]\"\r\n [closeOnOutsideClick]=\"true\"\r\n [closeOnEscapeKey]=\"true\"\r\n (isOpenChange)=\"isOpenChanged($event)\"\r\n placement=\"bottom\"\r\n [maxWidth]=\"312\"\r\n #overflowPopover\r\n >\r\n <fd-popover-control\r\n fd-avatar-group-popover-control\r\n [attr.aria-label]=\"\r\n 'Has popup type dialog Conjoined avatars, ' +\r\n ' avatars displayed, ' +\r\n 1 +\r\n ' avatars hidden, activate for complete list'\r\n \"\r\n (click)=\"handleControlClick($event, overflowPopover)\"\r\n (keydown)=\"handleControlKeydown($event, overflowPopover)\"\r\n >\r\n @for (person of existedItems; track person) {\r\n <div fd-avatar-group-item>\r\n @if (!person[viewSetting.AssigneeImage]) {\r\n <fd-avatar\r\n [label]=\"person[viewSetting.AssigneeName]\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n role=\"img\"\r\n [circle]=\"true\"\r\n [border]=\"true\"\r\n [size]=\"size\"\r\n ></fd-avatar>\r\n } @if (person[viewSetting.AssigneeImage]; as avatar) {\r\n <fd-avatar\r\n role=\"img\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n [circle]=\"true\"\r\n [border]=\"true\"\r\n [size]=\"size\"\r\n [image]=\"(avatar.FileId | picFieldSrc: 'ID':person.Id) || ''\"\r\n >\r\n </fd-avatar>\r\n }\r\n </div>\r\n } \r\n <button fd-button fd-avatar-group-overflow-button tabindex=\"-1\" [compact]=\"false\" [size]=\"size\">\r\n <bdi fd-avatar-group-overflow-button-text> 1 </bdi>\r\n </button>\r\n \r\n </fd-popover-control>\r\n <fd-popover-body #overflowPopoverBody aria-labelledby=\"avatar-group-1-popover-header\" role=\"tooltip\">\r\n <div class=\"fd-popover__wrapper\">\r\n <div fd-popover-body-header>\r\n <div fd-bar barDesign=\"header\">\r\n <div fd-bar-left>\r\n @if (isDetailStage) {\r\n <fd-button-bar\r\n (click)=\"openOverflowMain()\"\r\n glyph=\"navigation-left-arrow\"\r\n fdType=\"transparent\"\r\n aria-label=\"Back\"\r\n title=\"Back\"\r\n ></fd-button-bar>\r\n }\r\n <fd-bar-element id=\"avatar-group-1-popover-header\">\r\n {{ isDetailStage ? 'Business Card' : 'Team Members (' + existedItems?.length + ')' }}\r\n </fd-bar-element>\r\n @if (isDetailStage) {\r\n <fd-bar-element> </fd-bar-element>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n fd-avatar-group-overflow-body\r\n [noPadding]=\"isDetailStage\"\r\n [noHorizontalScroll]=\"isDetailStage\"\r\n [noVerticalScroll]=\"false\"\r\n >\r\n @if (overflowPopoverStage === 'main') { @for (person of existedItems; track person; let idx =\r\n $index) {\r\n <div fd-avatar-group-overflow-item>\r\n <fd-popover [triggers]=\"['click']\">\r\n <fd-popover-control>\r\n @if (!person[viewSetting.AssigneeImage]) {\r\n <fd-avatar\r\n fd-avatar-group-focusable-avatar\r\n [circle]=\"true\"\r\n size=\"s\"\r\n [label]=\"person[viewSetting.AssigneeName]\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n role=\"img\"\r\n ></fd-avatar>\r\n } @if (person[viewSetting.AssigneeImage]; as avatar) {\r\n <fd-avatar\r\n fd-avatar-group-focusable-avatar\r\n role=\"img\"\r\n [title]=\"person[viewSetting.AssigneeName]\"\r\n [ariaLabel]=\"person[viewSetting.AssigneeName] + ' avatar'\"\r\n [circle]=\"true\"\r\n size=\"s\"\r\n [image]=\"(avatar.FileId | picFieldSrc: 'ID':person.Id) || ''\"\r\n ></fd-avatar>\r\n }\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <div class=\"avatar-actions\">\r\n <button\r\n fd-button\r\n (click)=\"deleteAvatar(idx)\"\r\n [label]=\"'Delete' | bbbTranslate\"\r\n glyph=\"decline\"\r\n ></button>\r\n <button fd-button [label]=\"'Show' | bbbTranslate\" glyph=\"detail-view\"></button>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n } }\r\n </div>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n</fd-avatar-group>\r\n\r\n@if (addItem) {\r\n<fd-popover\r\n #peoplePopover\r\n [triggers]=\"[]\"\r\n [focusTrapped]=\"false\"\r\n [closeOnOutsideClick]=\"true\"\r\n [noArrow]=\"false\"\r\n placement=\"bottom\"\r\n [focusAutoCapture]=\"true\"\r\n>\r\n <fd-popover-control>\r\n <div>\r\n <button\r\n fd-button\r\n (click)=\"openPopover($event, peoplePopover)\"\r\n fdType=\"transparent\"\r\n glyph=\"sys-add\"\r\n ></button>\r\n </div>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (item of availableItems; track item) {\r\n <li fd-list-item (click)=\"newItem(item)\">\r\n @if (visibleFields.length > 0) { @for (field of visibleFields; track field) {\r\n {{ item[field] }}\r\n } } @else {\r\n {{ item }}\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n</fd-popover>\r\n}\r\n", styles: [":host{display:flex;align-items:center;column-gap:2px;width:130px}.avatar-actions{display:flex;padding:10px;flex-direction:column;justify-content:center;row-gap:15px;width:100px}\n"] }]
|
|
63
|
-
}], propDecorators: { popoverBodyComponent: [{
|
|
64
|
-
type: ViewChild,
|
|
65
|
-
args: ['overflowPopoverBody']
|
|
66
|
-
}], avatarGroupCom: [{
|
|
67
|
-
type: ViewChild,
|
|
68
|
-
args: [AvatarGroupComponent, { static: true, read: AvatarGroupComponent }]
|
|
69
|
-
}], existedItems: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], availableItems: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], viewSetting: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], visibleFields: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], addItem: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], size: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWthbmJhbi9zcmMvbGliL2F2YXRhci1ncm91cC9iYXJzYS1hdmF0YXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIvYXZhdGFyLWdyb3VwL2JhcnNhLWF2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQTBDLE1BQU0sdUJBQXVCLENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBVTNFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7SUFObEU7O1FBYWEsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFFN0IsU0FBSSxHQUFTLEdBQUcsQ0FBQztRQUUxQixrQkFBYSxHQUFRLElBQUksQ0FBQztRQUMxQix5QkFBb0IsR0FBc0IsTUFBTSxDQUFDO0tBK0NwRDtJQTdDRyxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFpQjtRQUMzQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBTztRQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztRQUVuQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsT0FBeUI7UUFDM0QsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFvQixFQUFFLE9BQXlCO1FBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDOytHQTFEUSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwrWEFHdkIsb0JBQW9CLDJCQUF3QixvQkFBb0Isa0VDbEIvRSxpa1BBdUtBOzs0RkR4SmEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxvQkFBb0I7c0JBRG5CLFNBQVM7dUJBQUMscUJBQXFCO2dCQUUrQyxjQUFjO3NCQUE1RixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ3BFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEVOVEVSLCBFU0NBUEUsIFNQQUNFLCBUQUIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBLZXlVdGlsLCBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcclxuaW1wb3J0IHsgQXZhdGFyR3JvdXBDb21wb25lbnQsIFBvcG92ZXJCb2R5Q29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgS2FuYmFuQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2thbmJhbi1iYXNlL2thbmJhbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IEthbmJhblZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vTW9kZWxzL2thbmJhbi12aWV3LXNldHRpbmcuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiay1hdmF0YXItZ3JvdXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWF2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1hdmF0YXItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUF2YXRhckdyb3VwQ29tcG9uZW50IGV4dGVuZHMgS2FuYmFuQmFzZUNvbXBvbmVudCB7XHJcbiAgICBAVmlld0NoaWxkKCdvdmVyZmxvd1BvcG92ZXJCb2R5JylcclxuICAgIHBvcG92ZXJCb2R5Q29tcG9uZW50OiBQb3BvdmVyQm9keUNvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoQXZhdGFyR3JvdXBDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBBdmF0YXJHcm91cENvbXBvbmVudCB9KSBhdmF0YXJHcm91cENvbTogQXZhdGFyR3JvdXBDb21wb25lbnQ7XHJcbiAgICBASW5wdXQoKSBleGlzdGVkSXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcclxuICAgIEBJbnB1dCgpIGF2YWlsYWJsZUl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcbiAgICBASW5wdXQoKSB2aWV3U2V0dGluZzogS2FuYmFuVmlld1NldHRpbmc7XHJcbiAgICBASW5wdXQoKSB2aXNpYmxlRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgYWRkSXRlbTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHNpemU6IFNpemUgPSAnbCc7XHJcblxyXG4gICAgcGVyc29uRGV0YWlsczogYW55ID0gbnVsbDtcclxuICAgIG92ZXJmbG93UG9wb3ZlclN0YWdlOiAnbWFpbicgfCAnZGV0YWlsJyA9ICdtYWluJztcclxuICAgIG92ZXJmbG93SXRlbXNDb3VudDtcclxuICAgIGdldCBpc0RldGFpbFN0YWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJmbG93UG9wb3ZlclN0YWdlID09PSAnZGV0YWlsJztcclxuICAgIH1cclxuXHJcbiAgICBpc09wZW5DaGFuZ2VkKGlzT3BlbmVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGlzT3BlbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk92ZXJmbG93TWFpbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZXdJdGVtKG5ld0l0ZW0pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBleGlzdCA9IHRoaXMuZXhpc3RlZEl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uSWQgPT09IG5ld0l0ZW0uSWQpO1xyXG4gICAgICAgIGlmICghZXhpc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5leGlzdGVkSXRlbXMucHVzaChuZXdJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlQXZhdGFyKGlkeDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5leGlzdGVkSXRlbXMuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbk92ZXJmbG93TWFpbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBlcnNvbkRldGFpbHMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMub3ZlcmZsb3dQb3BvdmVyU3RhZ2UgPSAnbWFpbic7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wb3BvdmVyQm9keUNvbXBvbmVudD8uX2ZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQ29udHJvbENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgcG9wb3Zlci5vcGVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQ29udHJvbEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHBvcG92ZXI6IFBvcG92ZXJDb21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRVNDQVBFLCBUQUIsIFNQQUNFLCBFTlRFUl0pKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VTQ0FQRSwgVEFCXSkpIHtcclxuICAgICAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcclxuICAgICAgICAgICAgcG9wb3Zlci5vcGVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxmZC1hdmF0YXItZ3JvdXAgI2F2YXRhckdyb3VwQ29tIHR5cGU9XCJncm91cFwiIFtzaXplXT1cInNpemVcIj5cclxuICAgIDxmZC1wb3BvdmVyXHJcbiAgICAgICAgW25vQXJyb3ddPVwiZmFsc2VcIlxyXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3RyaWdnZXJzXT1cIltdXCJcclxuICAgICAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJ0cnVlXCJcclxuICAgICAgICBbY2xvc2VPbkVzY2FwZUtleV09XCJ0cnVlXCJcclxuICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cImlzT3BlbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICBbbWF4V2lkdGhdPVwiMzEyXCJcclxuICAgICAgICAjb3ZlcmZsb3dQb3BvdmVyXHJcbiAgICA+XHJcbiAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbFxyXG4gICAgICAgICAgICBmZC1hdmF0YXItZ3JvdXAtcG9wb3Zlci1jb250cm9sXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXHJcbiAgICAgICAgICAgICAgICAnSGFzIHBvcHVwIHR5cGUgZGlhbG9nIENvbmpvaW5lZCBhdmF0YXJzLCAnICtcclxuICAgICAgICAgICAgICAgICcgYXZhdGFycyBkaXNwbGF5ZWQsICcgK1xyXG4gICAgICAgICAgICAgICAgMSArXHJcbiAgICAgICAgICAgICAgICAnIGF2YXRhcnMgaGlkZGVuLCBhY3RpdmF0ZSBmb3IgY29tcGxldGUgbGlzdCdcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNvbnRyb2xDbGljaygkZXZlbnQsIG92ZXJmbG93UG9wb3ZlcilcIlxyXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVDb250cm9sS2V5ZG93bigkZXZlbnQsIG92ZXJmbG93UG9wb3ZlcilcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgQGZvciAocGVyc29uIG9mIGV4aXN0ZWRJdGVtczsgdHJhY2sgcGVyc29uKSB7XHJcbiAgICAgICAgICAgIDxkaXYgZmQtYXZhdGFyLWdyb3VwLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICBAaWYgKCFwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVJbWFnZV0pIHtcclxuICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlTmFtZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXSArICcgYXZhdGFyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbYm9yZGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgfSBAaWYgKHBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZUltYWdlXTsgYXMgYXZhdGFyKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZU5hbWVdXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cInBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZU5hbWVdICsgJyBhdmF0YXInXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtib3JkZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIihhdmF0YXIuRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6cGVyc29uLklkKSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkLWF2YXRhci1ncm91cC1vdmVyZmxvdy1idXR0b24gdGFiaW5kZXg9XCItMVwiIFtjb21wYWN0XT1cImZhbHNlXCIgW3NpemVdPVwic2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGJkaSBmZC1hdmF0YXItZ3JvdXAtb3ZlcmZsb3ctYnV0dG9uLXRleHQ+IDEgPC9iZGk+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5ICNvdmVyZmxvd1BvcG92ZXJCb2R5IGFyaWEtbGFiZWxsZWRieT1cImF2YXRhci1ncm91cC0xLXBvcG92ZXItaGVhZGVyXCIgcm9sZT1cInRvb2x0aXBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLXBvcG92ZXJfX3dyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNEZXRhaWxTdGFnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJmbG93TWFpbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cIm5hdmlnYXRpb24tbGVmdC1hcnJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJCYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkJhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudCBpZD1cImF2YXRhci1ncm91cC0xLXBvcG92ZXItaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXNEZXRhaWxTdGFnZSA/ICdCdXNpbmVzcyBDYXJkJyA6ICdUZWFtIE1lbWJlcnMgKCcgKyBleGlzdGVkSXRlbXM/Lmxlbmd0aCArICcpJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNEZXRhaWxTdGFnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PiZuYnNwOzwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGZkLWF2YXRhci1ncm91cC1vdmVyZmxvdy1ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgW25vUGFkZGluZ109XCJpc0RldGFpbFN0YWdlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbm9Ib3Jpem9udGFsU2Nyb2xsXT1cImlzRGV0YWlsU3RhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtub1ZlcnRpY2FsU2Nyb2xsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKG92ZXJmbG93UG9wb3ZlclN0YWdlID09PSAnbWFpbicpIHsgQGZvciAocGVyc29uIG9mIGV4aXN0ZWRJdGVtczsgdHJhY2sgcGVyc29uOyBsZXQgaWR4ID1cclxuICAgICAgICAgICAgICAgICAgICAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWF2YXRhci1ncm91cC1vdmVyZmxvdy1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciBbdHJpZ2dlcnNdPVwiWydjbGljayddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZUltYWdlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYXZhdGFyLWdyb3VwLWZvY3VzYWJsZS1hdmF0YXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlTmFtZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlTmFtZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cInBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZU5hbWVdICsgJyBhdmF0YXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGlmIChwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVJbWFnZV07IGFzIGF2YXRhcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYXZhdGFyLWdyb3VwLWZvY3VzYWJsZS1hdmF0YXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwicGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlTmFtZV0gKyAnIGF2YXRhcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCIoYXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOnBlcnNvbi5JZCkgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUF2YXRhcihpZHgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRGVsZXRlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInU2hvdycgfCBiYmJUcmFuc2xhdGVcIiBnbHlwaD1cImRldGFpbC12aWV3XCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgPC9mZC1wb3BvdmVyPlxyXG48L2ZkLWF2YXRhci1ncm91cD5cclxuXHJcbkBpZiAoYWRkSXRlbSkge1xyXG48ZmQtcG9wb3ZlclxyXG4gICAgI3Blb3BsZVBvcG92ZXJcclxuICAgIFt0cmlnZ2Vyc109XCJbXVwiXHJcbiAgICBbZm9jdXNUcmFwcGVkXT1cImZhbHNlXCJcclxuICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIlxyXG4gICAgW25vQXJyb3ddPVwiZmFsc2VcIlxyXG4gICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG4+XHJcbiAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Qb3BvdmVyKCRldmVudCwgcGVvcGxlUG9wb3ZlcilcIlxyXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJzeXMtYWRkXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgIDx1bCBmZC1saXN0PlxyXG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGF2YWlsYWJsZUl0ZW1zOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gKGNsaWNrKT1cIm5ld0l0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAodmlzaWJsZUZpZWxkcy5sZW5ndGggPiAwKSB7IEBmb3IgKGZpZWxkIG9mIHZpc2libGVGaWVsZHM7IHRyYWNrIGZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICB7eyBpdGVtW2ZpZWxkXSB9fVxyXG4gICAgICAgICAgICAgICAgfSB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuPC9mZC1wb3BvdmVyPlxyXG59XHJcbiJdfQ==
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { BarsaNovinRayCoreModule, BaseModule } from 'barsa-novin-ray-core';
|
|
4
|
-
import { KanbanViewComponent } from './kanban-view/kanban-view.component';
|
|
5
|
-
import { FundamentalNgxCoreModule } from '@fundamental-ngx/core';
|
|
6
|
-
import { BarsaAvatarGroupComponent } from './avatar-group/barsa-avatar-group.component';
|
|
7
|
-
import { BarsaEchartsModule } from 'barsa-echarts';
|
|
8
|
-
import { FormsModule } from '@angular/forms';
|
|
9
|
-
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
10
|
-
import { KanbanCardComponent } from './kanban-card/kanban-card.component';
|
|
11
|
-
import { KanbanTagsComponent } from './kanban-tags/kanban-tags.component';
|
|
12
|
-
import { KanbanBaseComponent } from './kanban-base/kanban-base.component';
|
|
13
|
-
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
14
|
-
import { BarsaSapUiModule } from 'barsa-sap-ui';
|
|
15
|
-
import { PlatformMenuModule } from '@fundamental-ngx/platform';
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
18
|
-
const components = [
|
|
19
|
-
KanbanViewComponent,
|
|
20
|
-
BarsaAvatarGroupComponent,
|
|
21
|
-
KanbanCardComponent,
|
|
22
|
-
KanbanTagsComponent,
|
|
23
|
-
KanbanBaseComponent
|
|
24
|
-
];
|
|
25
|
-
export class BarsaKanbanModule extends BaseModule {
|
|
26
|
-
constructor(dcm, componentFactoryResolver) {
|
|
27
|
-
super(dcm, componentFactoryResolver, 'BarsaKanbanModule');
|
|
28
|
-
this.dcm = dcm;
|
|
29
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
30
|
-
this.dynamicComponents = [...components];
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaKanbanModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
33
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaKanbanModule, declarations: [KanbanViewComponent,
|
|
34
|
-
BarsaAvatarGroupComponent,
|
|
35
|
-
KanbanCardComponent,
|
|
36
|
-
KanbanTagsComponent,
|
|
37
|
-
KanbanBaseComponent], imports: [CommonModule,
|
|
38
|
-
BarsaNovinRayCoreModule,
|
|
39
|
-
FundamentalNgxCoreModule,
|
|
40
|
-
PlatformMenuModule,
|
|
41
|
-
BarsaEchartsModule,
|
|
42
|
-
BarsaSapUiModule,
|
|
43
|
-
FormsModule,
|
|
44
|
-
DragDropModule], exports: [KanbanViewComponent,
|
|
45
|
-
BarsaAvatarGroupComponent,
|
|
46
|
-
KanbanCardComponent,
|
|
47
|
-
KanbanTagsComponent,
|
|
48
|
-
KanbanBaseComponent] }); }
|
|
49
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaKanbanModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
|
|
50
|
-
BarsaNovinRayCoreModule,
|
|
51
|
-
FundamentalNgxCoreModule,
|
|
52
|
-
PlatformMenuModule,
|
|
53
|
-
BarsaEchartsModule,
|
|
54
|
-
BarsaSapUiModule,
|
|
55
|
-
FormsModule,
|
|
56
|
-
DragDropModule] }); }
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaKanbanModule, decorators: [{
|
|
59
|
-
type: NgModule,
|
|
60
|
-
args: [{
|
|
61
|
-
declarations: [...components],
|
|
62
|
-
schemas: [NO_ERRORS_SCHEMA],
|
|
63
|
-
exports: [...components],
|
|
64
|
-
imports: [
|
|
65
|
-
CommonModule,
|
|
66
|
-
BarsaNovinRayCoreModule,
|
|
67
|
-
FundamentalNgxCoreModule,
|
|
68
|
-
PlatformMenuModule,
|
|
69
|
-
BarsaEchartsModule,
|
|
70
|
-
BarsaSapUiModule,
|
|
71
|
-
FormsModule,
|
|
72
|
-
DragDropModule
|
|
73
|
-
],
|
|
74
|
-
providers: [provideHttpClient(withInterceptorsFromDi())]
|
|
75
|
-
}]
|
|
76
|
-
}], ctorParameters: () => [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Eta2FuYmFuLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWthbmJhbi9zcmMvbGliL2JhcnNhLWthbmJhbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFFL0QsTUFBTSxVQUFVLEdBQUc7SUFDZixtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0NBQ3RCLENBQUM7QUFrQkYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFVBQVU7SUFHN0MsWUFBc0IsR0FBNEIsRUFBWSx3QkFBa0Q7UUFDNUcsS0FBSyxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRHhDLFFBQUcsR0FBSCxHQUFHLENBQXlCO1FBQVksNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUZ0RyxzQkFBaUIsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFJOUMsQ0FBQzsrR0FMUSxpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkF2QjFCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixtQkFBbUIsYUFRZixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsY0FBYyxhQW5CbEIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLG1CQUFtQjtnSEFtQlYsaUJBQWlCLGFBRmYsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsWUFUcEQsWUFBWTtZQUNaLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLGNBQWM7OzRGQUlULGlCQUFpQjtrQkFoQjdCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztvQkFDeEIsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsY0FBYztxQkFDakI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2lCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgTmdNb2R1bGUsIE5PX0VSUk9SU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCYXJzYU5vdmluUmF5Q29yZU1vZHVsZSwgQmFzZU1vZHVsZSwgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBLYW5iYW5WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9rYW5iYW4tdmlldy9rYW5iYW4tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhcnNhQXZhdGFyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2F2YXRhci1ncm91cC9iYXJzYS1hdmF0YXItZ3JvdXAuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQmFyc2FFY2hhcnRzTW9kdWxlIH0gZnJvbSAnYmFyc2EtZWNoYXJ0cyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBLYW5iYW5DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9rYW5iYW4tY2FyZC9rYW5iYW4tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2FuYmFuVGFnc0NvbXBvbmVudCB9IGZyb20gJy4va2FuYmFuLXRhZ3Mva2FuYmFuLXRhZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IEthbmJhbkJhc2VDb21wb25lbnQgfSBmcm9tICcuL2thbmJhbi1iYXNlL2thbmJhbi1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhcnNhU2FwVWlNb2R1bGUgfSBmcm9tICdiYXJzYS1zYXAtdWknO1xuaW1wb3J0IHsgUGxhdGZvcm1NZW51TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gICAgS2FuYmFuVmlld0NvbXBvbmVudCxcbiAgICBCYXJzYUF2YXRhckdyb3VwQ29tcG9uZW50LFxuICAgIEthbmJhbkNhcmRDb21wb25lbnQsXG4gICAgS2FuYmFuVGFnc0NvbXBvbmVudCxcbiAgICBLYW5iYW5CYXNlQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHNdLFxuICAgIHNjaGVtYXM6IFtOT19FUlJPUlNfU0NIRU1BXSxcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50c10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLFxuICAgICAgICBGdW5kYW1lbnRhbE5neENvcmVNb2R1bGUsXG4gICAgICAgIFBsYXRmb3JtTWVudU1vZHVsZSxcbiAgICAgICAgQmFyc2FFY2hhcnRzTW9kdWxlLFxuICAgICAgICBCYXJzYVNhcFVpTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSldXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhS2FuYmFuTW9kdWxlIGV4dGVuZHMgQmFzZU1vZHVsZSB7XG4gICAgcHJvdGVjdGVkIGR5bmFtaWNDb21wb25lbnRzID0gWy4uLmNvbXBvbmVudHNdO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRjbTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICBzdXBlcihkY20sIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgJ0JhcnNhS2FuYmFuTW9kdWxlJyk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class KanbanBaseComponent extends BaseComponent {
|
|
5
|
-
openPopover(e, popover) {
|
|
6
|
-
e.stopPropagation();
|
|
7
|
-
e.preventDefault();
|
|
8
|
-
popover.toggle();
|
|
9
|
-
}
|
|
10
|
-
closePopover(popover) {
|
|
11
|
-
popover.close();
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KanbanBaseComponent, selector: "bk-kanban-base", usesInheritance: true, ngImport: i0, template: "<p>kanban-base works!</p>\r\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanBaseComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'bk-kanban-base', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>kanban-base works!</p>\r\n" }]
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWJhc2Uva2FuYmFuLWJhc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWJhc2Uva2FuYmFuLWJhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBU3JELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBQ2xELFdBQVcsQ0FBQyxDQUFDLEVBQUUsT0FBeUI7UUFDcEMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUF5QjtRQUNsQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzsrR0FUUSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2RUNYaEMsK0JBQ0E7OzRGRFVhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JrLWthbmJhbi1iYXNlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9rYW5iYW4tYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9rYW5iYW4tYmFzZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEthbmJhbkJhc2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuICAgIG9wZW5Qb3BvdmVyKGUsIHBvcG92ZXI6IFBvcG92ZXJDb21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBwb3BvdmVyLnRvZ2dsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUG9wb3Zlcihwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxwPmthbmJhbi1iYXNlIHdvcmtzITwvcD5cclxuIl19
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { BaseViewItemPropsComponent, FormPanelService } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@fundamental-ngx/core/avatar";
|
|
5
|
-
import * as i2 from "@fundamental-ngx/core/card";
|
|
6
|
-
import * as i3 from "barsa-sap-ui";
|
|
7
|
-
import * as i4 from "barsa-novin-ray-core";
|
|
8
|
-
export class KanbanCardComponent extends BaseViewItemPropsComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.moTasksCount = 4;
|
|
12
|
-
this.moFinishedTasksCount = 2;
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
super.ngOnInit();
|
|
16
|
-
this.moTaskPercentage = Math.floor((this.moFinishedTasksCount / this.moTasksCount) * 100);
|
|
17
|
-
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KanbanCardComponent, selector: "bk-kanban-card", inputs: { index: "index", mo: "mo", viewSetting: "viewSetting", allAvailableAssignees: "allAvailableAssignees" }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<div #trEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"trEl\">\n <fd-card [interactive]=\"true\" role=\"listitem\" (click)=\"onRowCheck()\" [class.selected]=\"isChecked\">\n <fd-card-header>\n <fd-card-main-header>\n @if(viewSetting.PictureField){\n <fd-avatar\n [glyph]=\"'travel-expense'\"\n [image]=\"\"\n size=\"s\"\n ariaLabel=\"avatar image\"\n title=\"avatar image\"\n ></fd-avatar>\n }\n <h2\n fd-card-title\n #hEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hEl\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.TitleField)?.Name\"\n [mo]=\"mo\"\n >\n {{ viewSetting.TitleField | rval: mo:allColumns:true }}\n </h2>\n @if(viewSetting.SubtitleField){\n <h3\n fd-card-subtitle\n #hElSubtitle\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hElSubtitle\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.SubtitleField)?.Name\"\n >\n {{ viewSetting.SubtitleField | rval: mo:allColumns:true }}\n </h3>\n } @if(viewSetting.CounterField){\n <span\n fd-card-counter\n #hElCounter\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hElCounter\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.CounterField)?.Name\"\n [mo]=\"mo\"\n >{{ viewSetting.CounterField | rval: mo:allColumns:true }}\n </span>\n }\n <!-- <button\n fd-button\n fd-card-header-action\n fdType=\"transparent\"\n glyph=\"overflow\"\n ariaLabel=\"More\"\n title=\"More\"\n ></button> -->\n </fd-card-main-header>\n @if(viewSetting.HeaderRowOneField || viewSetting.HeaderRowTwoField || viewSetting.HeaderRowRightField ){\n <fd-card-extended-header [align]=\"'bottom'\">\n <div fd-card-header-column>\n @if(viewSetting.HeaderRowOneField){\n <div fd-card-header-row>\n <span\n #hElHeaderRowOneField\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hElHeaderRowOneField\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowOneField)?.Name\"\n >\n {{ viewSetting.HeaderRowOneField | rval: mo:allColumns:true }}\n </span>\n </div>\n } @if(viewSetting.HeaderRowTwoField){\n <div fd-card-header-row>\n <span\n #elHeaderRowTwoField\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"elHeaderRowTwoField\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowTwoField)?.Name\"\n >\n {{ viewSetting.HeaderRowTwoField | rval: mo:allColumns:true }}\n </span>\n </div>\n }\n </div>\n <div fd-card-header-column [align]=\"'right'\">\n @if(viewSetting.HeaderRowRightField){\n <div fd-card-header-row>\n <span\n #elHeaderRowRightField\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"elHeaderRowRightField\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowRightField)?.Name\"\n >{{ viewSetting.HeaderRowRightField | rval: mo:allColumns:true }}</span\n >\n </div>\n }\n </div>\n </fd-card-extended-header>\n }\n </fd-card-header>\n <!-- <fd-card-footer>\n <button *fdCardFooterActionItem fd-button fdType=\"positive\">Approve</button>\n <button *fdCardFooterActionItem fd-button fdType=\"negative\">Reject</button>\n </fd-card-footer> -->\n </fd-card>\n</div>\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\" let-ischecked=\"ischecked\"\n >@if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n", styles: [":host{position:relative}:host.selected{background-color:var(--sapList_SelectionBackgroundColor, #e5f0fa)}:host.selected fd-card{border-color:var(--sapList_SelectionBorderColor, #0854a0)}:host fd-card,:host fd-card-header,:host .fd-bar--footer,:host fd-quick-view-subheader .fd-bar{background-color:inherit!important}:host fd-card ::ng-deep .fd-card__header-main{background-color:transparent}.row{display:flex;align-items:center}.fd-card{box-shadow:0 0 .125rem #22354833,0 .125rem .25rem #22354833}.fd-card:hover .card-menu fdp-button{display:block}.fd-card .card-menu{position:absolute;right:1rem;top:1rem;background-color:#fff}.fd-card .card-menu fdp-button{display:none}.fd-card .card-menu [aria-controls=fdp-menu-basic-menu]{display:block}.fd-card .task-cover{width:100%;height:150px;justify-content:center}.fd-card .task-cover img{object-fit:cover;width:100%;height:100%}.fd-card fd-card-content{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;row-gap:20px;padding:1rem}.fd-card fd-card-content .progress-indicator{flex:1}.fd-card fd-card-content .progress-indicator ::ng-deep .fd-progress-indicator__remaining{display:flex;align-items:center}.fd-card ::ng-deep fd-info-label .fd-info-label__text{display:inline-flex!important}.kanban-footer{padding:1rem;column-gap:10px}.kanban-footer .comment,.kanban-footer .attachment,.kanban-footer .task{column-gap:2px}.kanban-footer .task{margin-right:auto}.kanban-footer .task .circle-icon{width:calc(var(--sapFontSize, .875rem) + 6px);height:calc(var(--sapFontSize, .875rem) + 6px);border-radius:calc(var(--sapFontSize, .875rem) + 6px);border:1px solid var(--sapButton_BorderColor, #0854a0);display:flex;align-items:center;justify-content:center}.column-data.first ::ng-deep div.ellapsis{font-weight:700;font-family:IRANYekanDigits}\n"], dependencies: [{ kind: "component", type: i1.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i2.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i2.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i2.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i2.CardExtendedHeaderComponent, selector: "fd-card-extended-header", inputs: ["ariaRoleDescription", "align"] }, { kind: "directive", type: i2.CardHeaderRowDirective, selector: "[fd-card-header-row]" }, { kind: "directive", type: i2.CardHeaderColumnDirective, selector: "[fd-card-header-column]", inputs: ["align"] }, { kind: "directive", type: i2.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i2.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "directive", type: i2.CardCounterDirective, selector: "[fd-card-counter]", inputs: ["status"] }, { kind: "component", type: i3.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i3.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i4.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i4.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i4.FindColumnByDbNamePipe, name: "findColumnByDbName" }, { kind: "pipe", type: i4.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i4.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanCardComponent, decorators: [{
|
|
22
|
-
type: Component,
|
|
23
|
-
args: [{ selector: 'bk-kanban-card', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #trEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"trEl\">\n <fd-card [interactive]=\"true\" role=\"listitem\" (click)=\"onRowCheck()\" [class.selected]=\"isChecked\">\n <fd-card-header>\n <fd-card-main-header>\n @if(viewSetting.PictureField){\n <fd-avatar\n [glyph]=\"'travel-expense'\"\n [image]=\"\"\n size=\"s\"\n ariaLabel=\"avatar image\"\n title=\"avatar image\"\n ></fd-avatar>\n }\n <h2\n fd-card-title\n #hEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hEl\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.TitleField)?.Name\"\n [mo]=\"mo\"\n >\n {{ viewSetting.TitleField | rval: mo:allColumns:true }}\n </h2>\n @if(viewSetting.SubtitleField){\n <h3\n fd-card-subtitle\n #hElSubtitle\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hElSubtitle\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.SubtitleField)?.Name\"\n >\n {{ viewSetting.SubtitleField | rval: mo:allColumns:true }}\n </h3>\n } @if(viewSetting.CounterField){\n <span\n fd-card-counter\n #hElCounter\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hElCounter\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.CounterField)?.Name\"\n [mo]=\"mo\"\n >{{ viewSetting.CounterField | rval: mo:allColumns:true }}\n </span>\n }\n <!-- <button\n fd-button\n fd-card-header-action\n fdType=\"transparent\"\n glyph=\"overflow\"\n ariaLabel=\"More\"\n title=\"More\"\n ></button> -->\n </fd-card-main-header>\n @if(viewSetting.HeaderRowOneField || viewSetting.HeaderRowTwoField || viewSetting.HeaderRowRightField ){\n <fd-card-extended-header [align]=\"'bottom'\">\n <div fd-card-header-column>\n @if(viewSetting.HeaderRowOneField){\n <div fd-card-header-row>\n <span\n #hElHeaderRowOneField\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"hElHeaderRowOneField\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowOneField)?.Name\"\n >\n {{ viewSetting.HeaderRowOneField | rval: mo:allColumns:true }}\n </span>\n </div>\n } @if(viewSetting.HeaderRowTwoField){\n <div fd-card-header-row>\n <span\n #elHeaderRowTwoField\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"elHeaderRowTwoField\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowTwoField)?.Name\"\n >\n {{ viewSetting.HeaderRowTwoField | rval: mo:allColumns:true }}\n </span>\n </div>\n }\n </div>\n <div fd-card-header-column [align]=\"'right'\">\n @if(viewSetting.HeaderRowRightField){\n <div fd-card-header-row>\n <span\n #elHeaderRowRightField\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"elHeaderRowRightField\"\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowRightField)?.Name\"\n >{{ viewSetting.HeaderRowRightField | rval: mo:allColumns:true }}</span\n >\n </div>\n }\n </div>\n </fd-card-extended-header>\n }\n </fd-card-header>\n <!-- <fd-card-footer>\n <button *fdCardFooterActionItem fd-button fdType=\"positive\">Approve</button>\n <button *fdCardFooterActionItem fd-button fdType=\"negative\">Reject</button>\n </fd-card-footer> -->\n </fd-card>\n</div>\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\" let-ischecked=\"ischecked\"\n >@if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n", styles: [":host{position:relative}:host.selected{background-color:var(--sapList_SelectionBackgroundColor, #e5f0fa)}:host.selected fd-card{border-color:var(--sapList_SelectionBorderColor, #0854a0)}:host fd-card,:host fd-card-header,:host .fd-bar--footer,:host fd-quick-view-subheader .fd-bar{background-color:inherit!important}:host fd-card ::ng-deep .fd-card__header-main{background-color:transparent}.row{display:flex;align-items:center}.fd-card{box-shadow:0 0 .125rem #22354833,0 .125rem .25rem #22354833}.fd-card:hover .card-menu fdp-button{display:block}.fd-card .card-menu{position:absolute;right:1rem;top:1rem;background-color:#fff}.fd-card .card-menu fdp-button{display:none}.fd-card .card-menu [aria-controls=fdp-menu-basic-menu]{display:block}.fd-card .task-cover{width:100%;height:150px;justify-content:center}.fd-card .task-cover img{object-fit:cover;width:100%;height:100%}.fd-card fd-card-content{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;row-gap:20px;padding:1rem}.fd-card fd-card-content .progress-indicator{flex:1}.fd-card fd-card-content .progress-indicator ::ng-deep .fd-progress-indicator__remaining{display:flex;align-items:center}.fd-card ::ng-deep fd-info-label .fd-info-label__text{display:inline-flex!important}.kanban-footer{padding:1rem;column-gap:10px}.kanban-footer .comment,.kanban-footer .attachment,.kanban-footer .task{column-gap:2px}.kanban-footer .task{margin-right:auto}.kanban-footer .task .circle-icon{width:calc(var(--sapFontSize, .875rem) + 6px);height:calc(var(--sapFontSize, .875rem) + 6px);border-radius:calc(var(--sapFontSize, .875rem) + 6px);border:1px solid var(--sapButton_BorderColor, #0854a0);display:flex;align-items:center;justify-content:center}.column-data.first ::ng-deep div.ellapsis{font-weight:700;font-family:IRANYekanDigits}\n"] }]
|
|
24
|
-
}], propDecorators: { index: [{
|
|
25
|
-
type: Input
|
|
26
|
-
}], mo: [{
|
|
27
|
-
type: Input
|
|
28
|
-
}], viewSetting: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}], allAvailableAssignees: [{
|
|
31
|
-
type: Input
|
|
32
|
-
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWNhcmQva2FuYmFuLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWNhcmQva2FuYmFuLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUF1QixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFVekcsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDBCQUEwQjtJQVBuRTs7UUFhSSxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQix5QkFBb0IsR0FBRyxDQUFDLENBQUM7S0FPNUI7SUFKRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM5RixDQUFDOytHQWJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJKQUhqQixDQUFDLGdCQUFnQixDQUFDLGlEQ1RqQyxxd01BeUlBOzs0RkQ3SGEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGdCQUFnQixhQUdmLENBQUMsZ0JBQWdCLENBQUMsbUJBQ1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBGb3JtUGFuZWxTZXJ2aWNlLCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBLYW5iYW5WaWV3U2V0dGluZyB9IGZyb20gJy4uL01vZGVscy9rYW5iYW4tdmlldy1zZXR0aW5nLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmsta2FuYmFuLWNhcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2thbmJhbi1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2thbmJhbi1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLYW5iYW5DYXJkQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgdmlld1NldHRpbmc6IEthbmJhblZpZXdTZXR0aW5nO1xyXG4gICAgQElucHV0KCkgYWxsQXZhaWxhYmxlQXNzaWduZWVzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcblxyXG4gICAgbW9UYXNrc0NvdW50ID0gNDtcclxuICAgIG1vRmluaXNoZWRUYXNrc0NvdW50ID0gMjtcclxuICAgIG1vVGFza1BlcmNlbnRhZ2U7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLm1vVGFza1BlcmNlbnRhZ2UgPSBNYXRoLmZsb29yKCh0aGlzLm1vRmluaXNoZWRUYXNrc0NvdW50IC8gdGhpcy5tb1Rhc2tzQ291bnQpICogMTAwKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICN0ckVsIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIiBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCIgW2hvc3RFbF09XCJ0ckVsXCI+XG4gICAgPGZkLWNhcmQgW2ludGVyYWN0aXZlXT1cInRydWVcIiByb2xlPVwibGlzdGl0ZW1cIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCIgW2NsYXNzLnNlbGVjdGVkXT1cImlzQ2hlY2tlZFwiPlxuICAgICAgICA8ZmQtY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICA8ZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICAgICAgICAgICAgICBAaWYodmlld1NldHRpbmcuUGljdHVyZUZpZWxkKXtcbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCIndHJhdmVsLWV4cGVuc2UnXCJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIlwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiYXZhdGFyIGltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXIgaW1hZ2VcIlxuICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGgyXG4gICAgICAgICAgICAgICAgICAgIGZkLWNhcmQtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgI2hFbFxuICAgICAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0RWxdPVwiaEVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2RiTmFtZV09XCIoYWxsQ29sdW1ucyB8IGZpbmRDb2x1bW5CeURiTmFtZTogdmlld1NldHRpbmcuVGl0bGVGaWVsZCk/Lk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgdmlld1NldHRpbmcuVGl0bGVGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fVxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgQGlmKHZpZXdTZXR0aW5nLlN1YnRpdGxlRmllbGQpe1xuICAgICAgICAgICAgICAgIDxoM1xuICAgICAgICAgICAgICAgICAgICBmZC1jYXJkLXN1YnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICNoRWxTdWJ0aXRsZVxuICAgICAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0RWxdPVwiaEVsU3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBbZGJOYW1lXT1cIihhbGxDb2x1bW5zIHwgZmluZENvbHVtbkJ5RGJOYW1lOiB2aWV3U2V0dGluZy5TdWJ0aXRsZUZpZWxkKT8uTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyB2aWV3U2V0dGluZy5TdWJ0aXRsZUZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlIH19XG4gICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICB9IEBpZih2aWV3U2V0dGluZy5Db3VudGVyRmllbGQpe1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGZkLWNhcmQtY291bnRlclxuICAgICAgICAgICAgICAgICAgICAjaEVsQ291bnRlclxuICAgICAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0RWxdPVwiaEVsQ291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiKGFsbENvbHVtbnMgfCBmaW5kQ29sdW1uQnlEYk5hbWU6IHZpZXdTZXR0aW5nLkNvdW50ZXJGaWVsZCk/Lk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgICAgICA+e3sgdmlld1NldHRpbmcuQ291bnRlckZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZC1jYXJkLWhlYWRlci1hY3Rpb25cbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJvdmVyZmxvd1wiXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiTW9yZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJNb3JlXCJcbiAgICAgICAgICAgID48L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICA8L2ZkLWNhcmQtbWFpbi1oZWFkZXI+XG4gICAgICAgICAgICBAaWYodmlld1NldHRpbmcuSGVhZGVyUm93T25lRmllbGQgfHwgdmlld1NldHRpbmcuSGVhZGVyUm93VHdvRmllbGQgfHwgdmlld1NldHRpbmcuSGVhZGVyUm93UmlnaHRGaWVsZCApe1xuICAgICAgICAgICAgPGZkLWNhcmQtZXh0ZW5kZWQtaGVhZGVyIFthbGlnbl09XCInYm90dG9tJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtY2FyZC1oZWFkZXItY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICBAaWYodmlld1NldHRpbmcuSGVhZGVyUm93T25lRmllbGQpe1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWNhcmQtaGVhZGVyLXJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI2hFbEhlYWRlclJvd09uZUZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hvc3RFbF09XCJoRWxIZWFkZXJSb3dPbmVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RiTmFtZV09XCIoYWxsQ29sdW1ucyB8IGZpbmRDb2x1bW5CeURiTmFtZTogdmlld1NldHRpbmcuSGVhZGVyUm93T25lRmllbGQpPy5OYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2aWV3U2V0dGluZy5IZWFkZXJSb3dPbmVGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfSBAaWYodmlld1NldHRpbmcuSGVhZGVyUm93VHdvRmllbGQpe1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWNhcmQtaGVhZGVyLXJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI2VsSGVhZGVyUm93VHdvRmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaG9zdEVsXT1cImVsSGVhZGVyUm93VHdvRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiKGFsbENvbHVtbnMgfCBmaW5kQ29sdW1uQnlEYk5hbWU6IHZpZXdTZXR0aW5nLkhlYWRlclJvd1R3b0ZpZWxkKT8uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmlld1NldHRpbmcuSGVhZGVyUm93VHdvRmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zOnRydWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWNhcmQtaGVhZGVyLWNvbHVtbiBbYWxpZ25dPVwiJ3JpZ2h0J1wiPlxuICAgICAgICAgICAgICAgICAgICBAaWYodmlld1NldHRpbmcuSGVhZGVyUm93UmlnaHRGaWVsZCl7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtY2FyZC1oZWFkZXItcm93PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZWxIZWFkZXJSb3dSaWdodEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hvc3RFbF09XCJlbEhlYWRlclJvd1JpZ2h0RmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiKGFsbENvbHVtbnMgfCBmaW5kQ29sdW1uQnlEYk5hbWU6IHZpZXdTZXR0aW5nLkhlYWRlclJvd1JpZ2h0RmllbGQpPy5OYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgdmlld1NldHRpbmcuSGVhZGVyUm93UmlnaHRGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mZC1jYXJkLWV4dGVuZGVkLWhlYWRlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1jYXJkLWhlYWRlcj5cbiAgICAgICAgPCEtLSA8ZmQtY2FyZC1mb290ZXI+XG4gICAgICAgIDxidXR0b24gKmZkQ2FyZEZvb3RlckFjdGlvbkl0ZW0gZmQtYnV0dG9uIGZkVHlwZT1cInBvc2l0aXZlXCI+QXBwcm92ZTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpmZENhcmRGb290ZXJBY3Rpb25JdGVtIGZkLWJ1dHRvbiBmZFR5cGU9XCJuZWdhdGl2ZVwiPlJlamVjdDwvYnV0dG9uPlxuICAgIDwvZmQtY2FyZC1mb290ZXI+IC0tPlxuICAgIDwvZmQtY2FyZD5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjb2x1bW5UZW1wbGF0ZSBsZXQtY29sdW1uIGxldC1tbz1cIm1vXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiIGxldC1pc2NoZWNrZWQ9XCJpc2NoZWNrZWRcIlxuICAgID5AaWYgKGNvbHVtbikge1xuICAgIDxkaXZcbiAgICAgICAgI2RpdkVsXG4gICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgW2hvc3RFbF09XCJkaXZFbFwiXG4gICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgID5cbiAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcbiAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtpY29uXT1cImNvbHVtbiB8IGNvbHVtbkljb246IG1vXCJcbiAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpc0NoZWNrZWQgJiYgaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgW2NvbnRyb2xVaV09XCJjb2x1bW4uQ2FwdGlvbiB8IGNvbnRyb2xVaTogbGF5b3V0OTQ6Y29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXl1cC5lc2MpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cIm9uVGFiS2V5RG93bigkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICBbZm9ybUxheW91dFNob3dMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cbiAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { KanbanBaseComponent } from '../kanban-base/kanban-base.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@fundamental-ngx/core/button";
|
|
6
|
-
import * as i3 from "@fundamental-ngx/core/form";
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/info-label";
|
|
8
|
-
import * as i5 from "@fundamental-ngx/core/popover";
|
|
9
|
-
import * as i6 from "@angular/forms";
|
|
10
|
-
import * as i7 from "barsa-novin-ray-core";
|
|
11
|
-
export class KanbanTagsComponent extends KanbanBaseComponent {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.colorList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];
|
|
15
|
-
this.currentTagLabel = '';
|
|
16
|
-
this.selectedColor = '';
|
|
17
|
-
}
|
|
18
|
-
colorClick(color) {
|
|
19
|
-
this.selectedColor = color;
|
|
20
|
-
}
|
|
21
|
-
addTag() {
|
|
22
|
-
const newTag = { Id: '', $Caption: '' };
|
|
23
|
-
newTag[this.viewSetting.TagColor] = this.selectedColor;
|
|
24
|
-
newTag[this.viewSetting.TagName] = this.currentTagLabel;
|
|
25
|
-
this.tags.push(newTag);
|
|
26
|
-
this.currentTagLabel = '';
|
|
27
|
-
this.selectedColor = '';
|
|
28
|
-
}
|
|
29
|
-
deleteTag(index) {
|
|
30
|
-
this.tags.splice(index, 1);
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanTagsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KanbanTagsComponent, selector: "bk-kanban-tags", inputs: { tags: "tags", viewSetting: "viewSetting" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row tags-container\">\r\n @for (tag of tags; track tag; let i = $index) {\r\n <fd-popover placement=\"bottom\" [closeOnOutsideClick]=\"true\">\r\n <fd-popover-control>\r\n <div class=\"tag\">\r\n <fd-info-label\r\n [label]=\"tag[viewSetting.TagName]\"\r\n [color]=\"tag[viewSetting.TagColor]\"\r\n [title]=\"tag[viewSetting.TagName]\"\r\n ></fd-info-label>\r\n </div>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <div class=\"tag-delete\">\r\n <button fd-button (click)=\"deleteTag(i)\" [label]=\"'Delete' | bbbTranslate\" glyph=\"decline\"></button>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n }\r\n\r\n <fd-popover\r\n #tagPopover\r\n [triggers]=\"[]\"\r\n [focusTrapped]=\"false\"\r\n [closeOnOutsideClick]=\"true\"\r\n [noArrow]=\"false\"\r\n placement=\"bottom\"\r\n [focusAutoCapture]=\"true\"\r\n >\r\n <fd-popover-control>\r\n <div>\r\n <button\r\n fd-button\r\n (click)=\"openPopover($event, tagPopover)\"\r\n fdType=\"transparent\"\r\n glyph=\"sys-add\"\r\n ></button>\r\n </div>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <div class=\"new-tag\" (keydown.enter)=\"addTag()\">\r\n <div fd-form-item class=\"row\">\r\n <input fd-form-control type=\"text\" [(ngModel)]=\"currentTagLabel\" id=\"input-1\" placeholder=\" \u0646\u0627\u0645\" />\r\n </div>\r\n <div class=\"colors-colection row\">\r\n @for (color of colorList; track color) {\r\n <div\r\n (click)=\"colorClick(color)\"\r\n [ngClass]=\"'fd-info-label--accent-color-' + color\"\r\n [class.selected-color]=\"selectedColor === color\"\r\n class=\"color\"\r\n ></div>\r\n }\r\n </div>\r\n <div class=\"ok-cancel-btns row\">\r\n <button fd-button [label]=\"'Ok' | bbbTranslate\" [fdType]=\"'emphasized'\" (click)=\"addTag()\"></button>\r\n <button\r\n fd-button\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"closePopover(tagPopover)\"\r\n ></button>\r\n </div>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n</div>\r\n", styles: [":host ::ng-deep .fd-info-label__text{height:auto!important}.row,.new-tag .colors-colection{display:flex;align-items:center}.tags-container{column-gap:10px;flex-wrap:wrap}.new-tag{padding:15px;max-width:200px;row-gap:15px;display:flex;flex-direction:column;justify-content:center;align-items:center}.new-tag .row,.new-tag .colors-colection{column-gap:15px;width:100%}.new-tag .colors-colection{flex-wrap:wrap;row-gap:10px}.new-tag .colors-colection .color{width:40px;height:24px;border-radius:10px;border:1px solid var(--sapBackgroundColor, #f7f7f7)}.new-tag .colors-colection .selected-color{border-color:var(--sapList_SelectionBorderColor, #0854a0)}.ok-cancel-btns{justify-content:flex-end}.tag-delete{display:flex;align-items:center;justify-content:center;width:100px;height:80px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i4.InfoLabelComponent, selector: "fd-info-label", inputs: ["class", "type", "glyph", "font", "color", "label", "title", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanTagsComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{ selector: 'bk-kanban-tags', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row tags-container\">\r\n @for (tag of tags; track tag; let i = $index) {\r\n <fd-popover placement=\"bottom\" [closeOnOutsideClick]=\"true\">\r\n <fd-popover-control>\r\n <div class=\"tag\">\r\n <fd-info-label\r\n [label]=\"tag[viewSetting.TagName]\"\r\n [color]=\"tag[viewSetting.TagColor]\"\r\n [title]=\"tag[viewSetting.TagName]\"\r\n ></fd-info-label>\r\n </div>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <div class=\"tag-delete\">\r\n <button fd-button (click)=\"deleteTag(i)\" [label]=\"'Delete' | bbbTranslate\" glyph=\"decline\"></button>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n }\r\n\r\n <fd-popover\r\n #tagPopover\r\n [triggers]=\"[]\"\r\n [focusTrapped]=\"false\"\r\n [closeOnOutsideClick]=\"true\"\r\n [noArrow]=\"false\"\r\n placement=\"bottom\"\r\n [focusAutoCapture]=\"true\"\r\n >\r\n <fd-popover-control>\r\n <div>\r\n <button\r\n fd-button\r\n (click)=\"openPopover($event, tagPopover)\"\r\n fdType=\"transparent\"\r\n glyph=\"sys-add\"\r\n ></button>\r\n </div>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <div class=\"new-tag\" (keydown.enter)=\"addTag()\">\r\n <div fd-form-item class=\"row\">\r\n <input fd-form-control type=\"text\" [(ngModel)]=\"currentTagLabel\" id=\"input-1\" placeholder=\" \u0646\u0627\u0645\" />\r\n </div>\r\n <div class=\"colors-colection row\">\r\n @for (color of colorList; track color) {\r\n <div\r\n (click)=\"colorClick(color)\"\r\n [ngClass]=\"'fd-info-label--accent-color-' + color\"\r\n [class.selected-color]=\"selectedColor === color\"\r\n class=\"color\"\r\n ></div>\r\n }\r\n </div>\r\n <div class=\"ok-cancel-btns row\">\r\n <button fd-button [label]=\"'Ok' | bbbTranslate\" [fdType]=\"'emphasized'\" (click)=\"addTag()\"></button>\r\n <button\r\n fd-button\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"closePopover(tagPopover)\"\r\n ></button>\r\n </div>\r\n </div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n</div>\r\n", styles: [":host ::ng-deep .fd-info-label__text{height:auto!important}.row,.new-tag .colors-colection{display:flex;align-items:center}.tags-container{column-gap:10px;flex-wrap:wrap}.new-tag{padding:15px;max-width:200px;row-gap:15px;display:flex;flex-direction:column;justify-content:center;align-items:center}.new-tag .row,.new-tag .colors-colection{column-gap:15px;width:100%}.new-tag .colors-colection{flex-wrap:wrap;row-gap:10px}.new-tag .colors-colection .color{width:40px;height:24px;border-radius:10px;border:1px solid var(--sapBackgroundColor, #f7f7f7)}.new-tag .colors-colection .selected-color{border-color:var(--sapList_SelectionBorderColor, #0854a0)}.ok-cancel-btns{justify-content:flex-end}.tag-delete{display:flex;align-items:center;justify-content:center;width:100px;height:80px}\n"] }]
|
|
38
|
-
}], propDecorators: { tags: [{
|
|
39
|
-
type: Input
|
|
40
|
-
}], viewSetting: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLXRhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLXRhZ3Mva2FuYmFuLXRhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLXRhZ3Mva2FuYmFuLXRhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7OztBQVUzRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBTjVEOztRQVNJLGNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO0tBa0J0QjtJQWhCRyxVQUFVLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNGLE1BQU0sTUFBTSxHQUF3QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7K0dBdEJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1JQ1poQyxxd0ZBbUVBOzs0RkR2RGEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBLYW5iYW5CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4va2FuYmFuLWJhc2Uva2FuYmFuLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgS2FuYmFuVmlld1NldHRpbmcgfSBmcm9tICcuLi9Nb2RlbHMva2FuYmFuLXZpZXctc2V0dGluZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JrLWthbmJhbi10YWdzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9rYW5iYW4tdGFncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9rYW5iYW4tdGFncy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEthbmJhblRhZ3NDb21wb25lbnQgZXh0ZW5kcyBLYW5iYW5CYXNlQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIHRhZ3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcclxuICAgIEBJbnB1dCgpIHZpZXdTZXR0aW5nOiBLYW5iYW5WaWV3U2V0dGluZztcclxuICAgIGNvbG9yTGlzdCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLCAnMTAnXTtcclxuICAgIGN1cnJlbnRUYWdMYWJlbCA9ICcnO1xyXG4gICAgc2VsZWN0ZWRDb2xvciA9ICcnO1xyXG5cclxuICAgIGNvbG9yQ2xpY2soY29sb3I6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IGNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFRhZygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXdUYWc6IE1ldGFvYmplY3REYXRhTW9kZWwgPSB7IElkOiAnJywgJENhcHRpb246ICcnIH07XHJcbiAgICAgICAgbmV3VGFnW3RoaXMudmlld1NldHRpbmcuVGFnQ29sb3JdID0gdGhpcy5zZWxlY3RlZENvbG9yO1xyXG4gICAgICAgIG5ld1RhZ1t0aGlzLnZpZXdTZXR0aW5nLlRhZ05hbWVdID0gdGhpcy5jdXJyZW50VGFnTGFiZWw7XHJcbiAgICAgICAgdGhpcy50YWdzLnB1c2gobmV3VGFnKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWdMYWJlbCA9ICcnO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVRhZyhpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWdzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyB0YWdzLWNvbnRhaW5lclwiPlxyXG4gICAgQGZvciAodGFnIG9mIHRhZ3M7IHRyYWNrIHRhZzsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDxmZC1wb3BvdmVyIHBsYWNlbWVudD1cImJvdHRvbVwiIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtaW5mby1sYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ0YWdbdmlld1NldHRpbmcuVGFnTmFtZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJ0YWdbdmlld1NldHRpbmcuVGFnQ29sb3JdXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGFnW3ZpZXdTZXR0aW5nLlRhZ05hbWVdXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLWluZm8tbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctZGVsZXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlVGFnKGkpXCIgW2xhYmVsXT1cIidEZWxldGUnIHwgYmJiVHJhbnNsYXRlXCIgZ2x5cGg9XCJkZWNsaW5lXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgfVxyXG5cclxuICAgIDxmZC1wb3BvdmVyXHJcbiAgICAgICAgI3RhZ1BvcG92ZXJcclxuICAgICAgICBbdHJpZ2dlcnNdPVwiW11cIlxyXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIlxyXG4gICAgICAgIFtub0Fycm93XT1cImZhbHNlXCJcclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG4gICAgPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Qb3BvdmVyKCRldmVudCwgdGFnUG9wb3ZlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cInN5cy1hZGRcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LXRhZ1wiIChrZXlkb3duLmVudGVyKT1cImFkZFRhZygpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmZC1mb3JtLWNvbnRyb2wgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRUYWdMYWJlbFwiIGlkPVwiaW5wdXQtMVwiIHBsYWNlaG9sZGVyPVwiINmG2KfZhVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvcnMtY29sZWN0aW9uIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbG9yIG9mIGNvbG9yTGlzdDsgdHJhY2sgY29sb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb2xvckNsaWNrKGNvbG9yKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmZC1pbmZvLWxhYmVsLS1hY2NlbnQtY29sb3ItJyArIGNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLWNvbG9yXT1cInNlbGVjdGVkQ29sb3IgPT09IGNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9rLWNhbmNlbC1idG5zIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInT2snIHwgYmJiVHJhbnNsYXRlXCIgW2ZkVHlwZV09XCInZW1waGFzaXplZCdcIiAoY2xpY2spPVwiYWRkVGFnKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKHRhZ1BvcG92ZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICA8L2ZkLXBvcG92ZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|