barsa-kanban 2.2.1 → 2.2.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/esm2022/barsa-kanban.mjs +5 -0
- package/esm2022/lib/Models/drop-info.mjs +2 -0
- package/esm2022/lib/Models/kanban-view-setting.interface.mjs +2 -0
- package/esm2022/lib/avatar-group/barsa-avatar-group.component.mjs +82 -0
- package/esm2022/lib/barsa-kanban.module.mjs +77 -0
- package/esm2022/lib/kanban-base/kanban-base.component.mjs +20 -0
- package/esm2022/lib/kanban-card/kanban-card.component.mjs +33 -0
- package/esm2022/lib/kanban-tags/kanban-tags.component.mjs +43 -0
- package/esm2022/lib/kanban-view/kanban-view.component.mjs +275 -0
- package/esm2022/public-api.mjs +7 -0
- package/package.json +3 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Eta2FuYmFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9iYXJzYS1rYW5iYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIvTW9kZWxzL2Ryb3AtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRHJvcEluZm8ge1xyXG4gICAgZHJhZ2dlZElkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gICAgdGFyZ2V0SWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgICB0YXJnZXRTdGF0ZTogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw7XHJcbiAgICB0YXJnZXRJbmRleDogbnVtYmVyIHwgbnVsbDtcclxuICAgIGFjdGlvbj86IHN0cmluZyB8IG51bGw7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLXZpZXctc2V0dGluZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1rYW5iYW4vc3JjL2xpYi9Nb2RlbHMva2FuYmFuLXZpZXctc2V0dGluZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5WaWV3U2V0dGluZyBleHRlbmRzIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIHtcclxuICAgIENvbHVtbnNSZXBvcnQ6IGFueTtcclxuICAgIENvdmVyOiBzdHJpbmc7XHJcbiAgICBDYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBBc3NpZ25lZXM6IHN0cmluZztcclxuICAgIEFzc2lnbmVlSW1hZ2U6IHN0cmluZztcclxuICAgIEFzc2lnbmVlTmFtZTogc3RyaW5nO1xyXG4gICAgU3RhdGU6IHN0cmluZztcclxuICAgIFRhZ3M6IHN0cmluZztcclxuICAgIFRhZ05hbWU6IHN0cmluZztcclxuICAgIFRhZ0NvbG9yOiBzdHJpbmc7XHJcbiAgICBQcm9ncmVzc1BlcmNlbnRhZ2U6IHN0cmluZztcclxuICAgIFByb2dyZXNzTGFiZWw6IHN0cmluZztcclxuICAgIENvbW1lbnRzQ291bnQ6IHN0cmluZztcclxuICAgIEF0dGFjaGVzQ291bnQ6IHN0cmluZztcclxuICAgIFRpdGxlRmllbGQ6IHN0cmluZztcclxuICAgIFN1YnRpdGxlRmllbGQ6IHN0cmluZztcclxuICAgIENvdW50ZXJGaWVsZDogc3RyaW5nO1xyXG4gICAgSGVhZGVyUm93UmlnaHRGaWVsZDogc3RyaW5nO1xyXG4gICAgSGVhZGVyUm93VHdvRmllbGQ6IHN0cmluZztcclxuICAgIEhlYWRlclJvd09uZUZpZWxkOiBzdHJpbmc7XHJcbiAgICBQaWN0dXJlRmllbGQ6IHN0cmluZztcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,82 @@
|
|
|
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 </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, standalone: false, 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 </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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWthbmJhbi9zcmMvbGliL2F2YXRhci1ncm91cC9iYXJzYS1hdmF0YXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIvYXZhdGFyLWdyb3VwL2JhcnNhLWF2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQTBDLE1BQU0sdUJBQXVCLENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBVzNFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7SUFQbEU7O1FBY2Esa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFFN0IsU0FBSSxHQUFTLEdBQUcsQ0FBQztRQUUxQixrQkFBYSxHQUFRLElBQUksQ0FBQztRQUMxQix5QkFBb0IsR0FBc0IsTUFBTSxDQUFDO0tBK0NwRDtJQTdDRyxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFpQjtRQUMzQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBTztRQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztRQUVuQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsT0FBeUI7UUFDM0QsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFvQixFQUFFLE9BQXlCO1FBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDOytHQTFEUSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwrWEFHdkIsb0JBQW9CLDJCQUF3QixvQkFBb0Isa0VDbkIvRSxnalBBc0tBOzs0RkR0SmEseUJBQXlCO2tCQVByQyxTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBSWpCLG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBRStDLGNBQWM7c0JBQTVGLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtnQkFDcEUsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSwgU1BBQ0UsIFRBQiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IEtleVV0aWwsIFNpemUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xyXG5pbXBvcnQgeyBBdmF0YXJHcm91cENvbXBvbmVudCwgUG9wb3ZlckJvZHlDb21wb25lbnQsIFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBLYW5iYW5CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4va2FuYmFuLWJhc2Uva2FuYmFuLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgS2FuYmFuVmlld1NldHRpbmcgfSBmcm9tICcuLi9Nb2RlbHMva2FuYmFuLXZpZXctc2V0dGluZy5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JrLWF2YXRhci1ncm91cCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWF2YXRhci1ncm91cC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FBdmF0YXJHcm91cENvbXBvbmVudCBleHRlbmRzIEthbmJhbkJhc2VDb21wb25lbnQge1xyXG4gICAgQFZpZXdDaGlsZCgnb3ZlcmZsb3dQb3BvdmVyQm9keScpXHJcbiAgICBwb3BvdmVyQm9keUNvbXBvbmVudDogUG9wb3ZlckJvZHlDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKEF2YXRhckdyb3VwQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogQXZhdGFyR3JvdXBDb21wb25lbnQgfSkgYXZhdGFyR3JvdXBDb206IEF2YXRhckdyb3VwQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgZXhpc3RlZEl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcbiAgICBASW5wdXQoKSBhdmFpbGFibGVJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xyXG4gICAgQElucHV0KCkgdmlld1NldHRpbmc6IEthbmJhblZpZXdTZXR0aW5nO1xyXG4gICAgQElucHV0KCkgdmlzaWJsZUZpZWxkczogc3RyaW5nW10gPSBbXTtcclxuICAgIEBJbnB1dCgpIGFkZEl0ZW06IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzaXplOiBTaXplID0gJ2wnO1xyXG5cclxuICAgIHBlcnNvbkRldGFpbHM6IGFueSA9IG51bGw7XHJcbiAgICBvdmVyZmxvd1BvcG92ZXJTdGFnZTogJ21haW4nIHwgJ2RldGFpbCcgPSAnbWFpbic7XHJcbiAgICBvdmVyZmxvd0l0ZW1zQ291bnQ7XHJcbiAgICBnZXQgaXNEZXRhaWxTdGFnZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vdmVyZmxvd1BvcG92ZXJTdGFnZSA9PT0gJ2RldGFpbCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNPcGVuQ2hhbmdlZChpc09wZW5lZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc09wZW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5PdmVyZmxvd01haW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmV3SXRlbShuZXdJdGVtKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZXhpc3QgPSB0aGlzLmV4aXN0ZWRJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLklkID09PSBuZXdJdGVtLklkKTtcclxuICAgICAgICBpZiAoIWV4aXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXhpc3RlZEl0ZW1zLnB1c2gobmV3SXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUF2YXRhcihpZHg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXhpc3RlZEl0ZW1zLnNwbGljZShpZHgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5PdmVyZmxvd01haW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wZXJzb25EZXRhaWxzID0gbnVsbDtcclxuICAgICAgICB0aGlzLm92ZXJmbG93UG9wb3ZlclN0YWdlID0gJ21haW4nO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucG9wb3ZlckJvZHlDb21wb25lbnQ/Ll9mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCksIDApO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUNvbnRyb2xDbGljayhldmVudDogTW91c2VFdmVudCwgcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgICAgIHBvcG92ZXIub3BlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUNvbnRyb2xLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VTQ0FQRSwgVEFCLCBTUEFDRSwgRU5URVJdKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFU0NBUEUsIFRBQl0pKSB7XHJcbiAgICAgICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1NQQUNFLCBFTlRFUl0pKSB7XHJcbiAgICAgICAgICAgIHBvcG92ZXIub3BlbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZmQtYXZhdGFyLWdyb3VwICNhdmF0YXJHcm91cENvbSB0eXBlPVwiZ3JvdXBcIiBbc2l6ZV09XCJzaXplXCI+XHJcbiAgICA8ZmQtcG9wb3ZlclxyXG4gICAgICAgIFtub0Fycm93XT1cImZhbHNlXCJcclxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxyXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG4gICAgICAgIFt0cmlnZ2Vyc109XCJbXVwiXHJcbiAgICAgICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2Nsb3NlT25Fc2NhcGVLZXldPVwidHJ1ZVwiXHJcbiAgICAgICAgKGlzT3BlbkNoYW5nZSk9XCJpc09wZW5DaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgW21heFdpZHRoXT1cIjMxMlwiXHJcbiAgICAgICAgI292ZXJmbG93UG9wb3ZlclxyXG4gICAgPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2xcclxuICAgICAgICAgICAgZmQtYXZhdGFyLWdyb3VwLXBvcG92ZXItY29udHJvbFxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxyXG4gICAgICAgICAgICAgICAgJ0hhcyBwb3B1cCB0eXBlIGRpYWxvZyBDb25qb2luZWQgYXZhdGFycywgJyArXHJcbiAgICAgICAgICAgICAgICAnIGF2YXRhcnMgZGlzcGxheWVkLCAnICtcclxuICAgICAgICAgICAgICAgIDEgK1xyXG4gICAgICAgICAgICAgICAgJyBhdmF0YXJzIGhpZGRlbiwgYWN0aXZhdGUgZm9yIGNvbXBsZXRlIGxpc3QnXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDb250cm9sQ2xpY2soJGV2ZW50LCBvdmVyZmxvd1BvcG92ZXIpXCJcclxuICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlQ29udHJvbEtleWRvd24oJGV2ZW50LCBvdmVyZmxvd1BvcG92ZXIpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIEBmb3IgKHBlcnNvbiBvZiBleGlzdGVkSXRlbXM7IHRyYWNrIHBlcnNvbikge1xyXG4gICAgICAgICAgICA8ZGl2IGZkLWF2YXRhci1ncm91cC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgQGlmICghcGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlSW1hZ2VdKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZU5hbWVdXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlTmFtZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwicGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlTmFtZV0gKyAnIGF2YXRhcidcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2JvcmRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgIH0gQGlmIChwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVJbWFnZV07IGFzIGF2YXRhcikge1xyXG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXSArICcgYXZhdGFyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbYm9yZGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCIoYXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOnBlcnNvbi5JZCkgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkLWF2YXRhci1ncm91cC1vdmVyZmxvdy1idXR0b24gdGFiaW5kZXg9XCItMVwiIFtjb21wYWN0XT1cImZhbHNlXCIgW3NpemVdPVwic2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGJkaSBmZC1hdmF0YXItZ3JvdXAtb3ZlcmZsb3ctYnV0dG9uLXRleHQ+IDEgPC9iZGk+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgI292ZXJmbG93UG9wb3ZlckJvZHkgYXJpYS1sYWJlbGxlZGJ5PVwiYXZhdGFyLWdyb3VwLTEtcG9wb3Zlci1oZWFkZXJcIiByb2xlPVwidG9vbHRpcFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtcG9wb3Zlcl9fd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc0RldGFpbFN0YWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuT3ZlcmZsb3dNYWluKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwibmF2aWdhdGlvbi1sZWZ0LWFycm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkJhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQmFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50IGlkPVwiYXZhdGFyLWdyb3VwLTEtcG9wb3Zlci1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpc0RldGFpbFN0YWdlID8gJ0J1c2luZXNzIENhcmQnIDogJ1RlYW0gTWVtYmVycyAoJyArIGV4aXN0ZWRJdGVtcz8ubGVuZ3RoICsgJyknIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc0RldGFpbFN0YWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+Jm5ic3A7PC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYXZhdGFyLWdyb3VwLW92ZXJmbG93LWJvZHlcclxuICAgICAgICAgICAgICAgICAgICBbbm9QYWRkaW5nXT1cImlzRGV0YWlsU3RhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtub0hvcml6b250YWxTY3JvbGxdPVwiaXNEZXRhaWxTdGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25vVmVydGljYWxTY3JvbGxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAob3ZlcmZsb3dQb3BvdmVyU3RhZ2UgPT09ICdtYWluJykgeyBAZm9yIChwZXJzb24gb2YgZXhpc3RlZEl0ZW1zOyB0cmFjayBwZXJzb247IGxldCBpZHggPVxyXG4gICAgICAgICAgICAgICAgICAgICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYXZhdGFyLWdyb3VwLW92ZXJmbG93LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyIFt0cmlnZ2Vyc109XCJbJ2NsaWNrJ11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghcGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlSW1hZ2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1hdmF0YXItZ3JvdXAtZm9jdXNhYmxlLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwicGVyc29uW3ZpZXdTZXR0aW5nLkFzc2lnbmVlTmFtZV0gKyAnIGF2YXRhcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAaWYgKHBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZUltYWdlXTsgYXMgYXZhdGFyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1hdmF0YXItZ3JvdXAtZm9jdXNhYmxlLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInBlcnNvblt2aWV3U2V0dGluZy5Bc3NpZ25lZU5hbWVdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJwZXJzb25bdmlld1NldHRpbmcuQXNzaWduZWVOYW1lXSArICcgYXZhdGFyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIihhdmF0YXIuRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6cGVyc29uLklkKSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQXZhdGFyKGlkeClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidEZWxldGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2xhYmVsXT1cIidTaG93JyB8IGJiYlRyYW5zbGF0ZVwiIGdseXBoPVwiZGV0YWlsLXZpZXdcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgfSB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICA8L2ZkLXBvcG92ZXI+XHJcbjwvZmQtYXZhdGFyLWdyb3VwPlxyXG5cclxuQGlmIChhZGRJdGVtKSB7XHJcbjxmZC1wb3BvdmVyXHJcbiAgICAjcGVvcGxlUG9wb3ZlclxyXG4gICAgW3RyaWdnZXJzXT1cIltdXCJcclxuICAgIFtmb2N1c1RyYXBwZWRdPVwiZmFsc2VcIlxyXG4gICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXHJcbiAgICBbbm9BcnJvd109XCJmYWxzZVwiXHJcbiAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXHJcbj5cclxuICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblBvcG92ZXIoJGV2ZW50LCBwZW9wbGVQb3BvdmVyKVwiXHJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cInN5cy1hZGRcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgIDxmZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgPHVsIGZkLWxpc3Q+XHJcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYXZhaWxhYmxlSXRlbXM7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSAoY2xpY2spPVwibmV3SXRlbShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmICh2aXNpYmxlRmllbGRzLmxlbmd0aCA+IDApIHsgQGZvciAoZmllbGQgb2YgdmlzaWJsZUZpZWxkczsgdHJhY2sgZmllbGQpIHtcclxuICAgICAgICAgICAgICAgIHt7IGl0ZW1bZmllbGRdIH19XHJcbiAgICAgICAgICAgICAgICB9IH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAge3sgaXRlbSB9fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG48L2ZkLXBvcG92ZXI+XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,77 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Eta2FuYmFuLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWthbmJhbi9zcmMvbGliL2JhcnNhLWthbmJhbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFFL0QsTUFBTSxVQUFVLEdBQUc7SUFDZixtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0NBQ3RCLENBQUM7QUFrQkYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFVBQVU7SUFHN0MsWUFBc0IsR0FBNEIsRUFBWSx3QkFBa0Q7UUFDNUcsS0FBSyxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRHhDLFFBQUcsR0FBSCxHQUFHLENBQXlCO1FBQVksNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUZ0RyxzQkFBaUIsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFJOUMsQ0FBQzsrR0FMUSxpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkF2QjFCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixtQkFBbUIsYUFRZixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsY0FBYyxhQW5CbEIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLG1CQUFtQjtnSEFtQlYsaUJBQWlCLGFBRmYsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsWUFUcEQsWUFBWTtZQUNaLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLGNBQWM7OzRGQUlULGlCQUFpQjtrQkFoQjdCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztvQkFDeEIsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsY0FBYztxQkFDakI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2lCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgTmdNb2R1bGUsIE5PX0VSUk9SU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsIEJhc2VNb2R1bGUsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBLYW5iYW5WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9rYW5iYW4tdmlldy9rYW5iYW4tdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGdW5kYW1lbnRhbE5neENvcmVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBCYXJzYUF2YXRhckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXItZ3JvdXAvYmFyc2EtYXZhdGFyLWdyb3VwLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBCYXJzYUVjaGFydHNNb2R1bGUgfSBmcm9tICdiYXJzYS1lY2hhcnRzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEthbmJhbkNhcmRDb21wb25lbnQgfSBmcm9tICcuL2thbmJhbi1jYXJkL2thbmJhbi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEthbmJhblRhZ3NDb21wb25lbnQgfSBmcm9tICcuL2thbmJhbi10YWdzL2thbmJhbi10YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEthbmJhbkJhc2VDb21wb25lbnQgfSBmcm9tICcuL2thbmJhbi1iYXNlL2thbmJhbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHByb3ZpZGVIdHRwQ2xpZW50LCB3aXRoSW50ZXJjZXB0b3JzRnJvbURpIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBCYXJzYVNhcFVpTW9kdWxlIH0gZnJvbSAnYmFyc2Etc2FwLXVpJztcclxuaW1wb3J0IHsgUGxhdGZvcm1NZW51TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcblxyXG5jb25zdCBjb21wb25lbnRzID0gW1xyXG4gICAgS2FuYmFuVmlld0NvbXBvbmVudCxcclxuICAgIEJhcnNhQXZhdGFyR3JvdXBDb21wb25lbnQsXHJcbiAgICBLYW5iYW5DYXJkQ29tcG9uZW50LFxyXG4gICAgS2FuYmFuVGFnc0NvbXBvbmVudCxcclxuICAgIEthbmJhbkJhc2VDb21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5jb21wb25lbnRzXSxcclxuICAgIHNjaGVtYXM6IFtOT19FUlJPUlNfU0NIRU1BXSxcclxuICAgIGV4cG9ydHM6IFsuLi5jb21wb25lbnRzXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsXHJcbiAgICAgICAgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlLFxyXG4gICAgICAgIFBsYXRmb3JtTWVudU1vZHVsZSxcclxuICAgICAgICBCYXJzYUVjaGFydHNNb2R1bGUsXHJcbiAgICAgICAgQmFyc2FTYXBVaU1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBEcmFnRHJvcE1vZHVsZVxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUthbmJhbk1vZHVsZSBleHRlbmRzIEJhc2VNb2R1bGUge1xyXG4gICAgcHJvdGVjdGVkIGR5bmFtaWNDb21wb25lbnRzID0gWy4uLmNvbXBvbmVudHNdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkY206IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLCBwcm90ZWN0ZWQgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICAgICAgICBzdXBlcihkY20sIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgJ0JhcnNhS2FuYmFuTW9kdWxlJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
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, standalone: false, template: "<p>kanban-base works!</p>\r\n" }]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWJhc2Uva2FuYmFuLWJhc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWJhc2Uva2FuYmFuLWJhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBVXJELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBQ2xELFdBQVcsQ0FBQyxDQUFDLEVBQUUsT0FBeUI7UUFDcEMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUF5QjtRQUNsQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzsrR0FUUSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2RUNaaEMsK0JBQ0E7OzRGRFdhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmsta2FuYmFuLWJhc2UnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2thbmJhbi1iYXNlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2thbmJhbi1iYXNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLYW5iYW5CYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgICBvcGVuUG9wb3ZlcihlLCBwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgcG9wb3Zlci50b2dnbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZVBvcG92ZXIocG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcclxuICAgIH1cclxufVxyXG4iLCI8cD5rYW5iYW4tYmFzZSB3b3JrcyE8L3A+XHJcbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
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\">\r\n <fd-card [interactive]=\"true\" role=\"listitem\" (click)=\"onRowCheck()\" [class.selected]=\"isChecked\">\r\n <fd-card-header>\r\n <fd-card-main-header>\r\n @if(viewSetting.PictureField){\r\n <fd-avatar\r\n [glyph]=\"'travel-expense'\"\r\n [image]=\"\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n ></fd-avatar>\r\n }\r\n <h2\r\n fd-card-title\r\n #hEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hEl\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.TitleField)?.Name\"\r\n [mo]=\"mo\"\r\n >\r\n {{ viewSetting.TitleField | rval: mo:allColumns:true }}\r\n </h2>\r\n @if(viewSetting.SubtitleField){\r\n <h3\r\n fd-card-subtitle\r\n #hElSubtitle\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hElSubtitle\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.SubtitleField)?.Name\"\r\n >\r\n {{ viewSetting.SubtitleField | rval: mo:allColumns:true }}\r\n </h3>\r\n } @if(viewSetting.CounterField){\r\n <span\r\n fd-card-counter\r\n #hElCounter\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hElCounter\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.CounterField)?.Name\"\r\n [mo]=\"mo\"\r\n >{{ viewSetting.CounterField | rval: mo:allColumns:true }}\r\n </span>\r\n }\r\n <!-- <button\r\n fd-button\r\n fd-card-header-action\r\n fdType=\"transparent\"\r\n glyph=\"overflow\"\r\n ariaLabel=\"More\"\r\n title=\"More\"\r\n ></button> -->\r\n </fd-card-main-header>\r\n @if(viewSetting.HeaderRowOneField || viewSetting.HeaderRowTwoField || viewSetting.HeaderRowRightField ){\r\n <fd-card-extended-header [align]=\"'bottom'\">\r\n <div fd-card-header-column>\r\n @if(viewSetting.HeaderRowOneField){\r\n <div fd-card-header-row>\r\n <span\r\n #hElHeaderRowOneField\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hElHeaderRowOneField\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowOneField)?.Name\"\r\n >\r\n {{ viewSetting.HeaderRowOneField | rval: mo:allColumns:true }}\r\n </span>\r\n </div>\r\n } @if(viewSetting.HeaderRowTwoField){\r\n <div fd-card-header-row>\r\n <span\r\n #elHeaderRowTwoField\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"elHeaderRowTwoField\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowTwoField)?.Name\"\r\n >\r\n {{ viewSetting.HeaderRowTwoField | rval: mo:allColumns:true }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div fd-card-header-column [align]=\"'right'\">\r\n @if(viewSetting.HeaderRowRightField){\r\n <div fd-card-header-row>\r\n <span\r\n #elHeaderRowRightField\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"elHeaderRowRightField\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowRightField)?.Name\"\r\n >{{ viewSetting.HeaderRowRightField | rval: mo:allColumns:true }}</span\r\n >\r\n </div>\r\n }\r\n </div>\r\n </fd-card-extended-header>\r\n }\r\n </fd-card-header>\r\n <!-- <fd-card-footer>\r\n <button *fdCardFooterActionItem fd-button fdType=\"positive\">Approve</button>\r\n <button *fdCardFooterActionItem fd-button fdType=\"negative\">Reject</button>\r\n </fd-card-footer> -->\r\n </fd-card>\r\n</div>\r\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\" let-ischecked=\"ischecked\"\r\n >@if (column) {\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [isChecked]=\"isChecked\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\r\n [formLayoutShowLabel]=\"true\"\r\n ></bsu-column-renderer>\r\n </div>\r\n }\r\n</ng-template>\r\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", "allColumns", "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, standalone: false, template: "<div #trEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"trEl\">\r\n <fd-card [interactive]=\"true\" role=\"listitem\" (click)=\"onRowCheck()\" [class.selected]=\"isChecked\">\r\n <fd-card-header>\r\n <fd-card-main-header>\r\n @if(viewSetting.PictureField){\r\n <fd-avatar\r\n [glyph]=\"'travel-expense'\"\r\n [image]=\"\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n ></fd-avatar>\r\n }\r\n <h2\r\n fd-card-title\r\n #hEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hEl\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.TitleField)?.Name\"\r\n [mo]=\"mo\"\r\n >\r\n {{ viewSetting.TitleField | rval: mo:allColumns:true }}\r\n </h2>\r\n @if(viewSetting.SubtitleField){\r\n <h3\r\n fd-card-subtitle\r\n #hElSubtitle\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hElSubtitle\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.SubtitleField)?.Name\"\r\n >\r\n {{ viewSetting.SubtitleField | rval: mo:allColumns:true }}\r\n </h3>\r\n } @if(viewSetting.CounterField){\r\n <span\r\n fd-card-counter\r\n #hElCounter\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hElCounter\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.CounterField)?.Name\"\r\n [mo]=\"mo\"\r\n >{{ viewSetting.CounterField | rval: mo:allColumns:true }}\r\n </span>\r\n }\r\n <!-- <button\r\n fd-button\r\n fd-card-header-action\r\n fdType=\"transparent\"\r\n glyph=\"overflow\"\r\n ariaLabel=\"More\"\r\n title=\"More\"\r\n ></button> -->\r\n </fd-card-main-header>\r\n @if(viewSetting.HeaderRowOneField || viewSetting.HeaderRowTwoField || viewSetting.HeaderRowRightField ){\r\n <fd-card-extended-header [align]=\"'bottom'\">\r\n <div fd-card-header-column>\r\n @if(viewSetting.HeaderRowOneField){\r\n <div fd-card-header-row>\r\n <span\r\n #hElHeaderRowOneField\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"hElHeaderRowOneField\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowOneField)?.Name\"\r\n >\r\n {{ viewSetting.HeaderRowOneField | rval: mo:allColumns:true }}\r\n </span>\r\n </div>\r\n } @if(viewSetting.HeaderRowTwoField){\r\n <div fd-card-header-row>\r\n <span\r\n #elHeaderRowTwoField\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"elHeaderRowTwoField\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowTwoField)?.Name\"\r\n >\r\n {{ viewSetting.HeaderRowTwoField | rval: mo:allColumns:true }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n <div fd-card-header-column [align]=\"'right'\">\r\n @if(viewSetting.HeaderRowRightField){\r\n <div fd-card-header-row>\r\n <span\r\n #elHeaderRowRightField\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"elHeaderRowRightField\"\r\n [dbName]=\"(allColumns | findColumnByDbName: viewSetting.HeaderRowRightField)?.Name\"\r\n >{{ viewSetting.HeaderRowRightField | rval: mo:allColumns:true }}</span\r\n >\r\n </div>\r\n }\r\n </div>\r\n </fd-card-extended-header>\r\n }\r\n </fd-card-header>\r\n <!-- <fd-card-footer>\r\n <button *fdCardFooterActionItem fd-button fdType=\"positive\">Approve</button>\r\n <button *fdCardFooterActionItem fd-button fdType=\"negative\">Reject</button>\r\n </fd-card-footer> -->\r\n </fd-card>\r\n</div>\r\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\" let-ischecked=\"ischecked\"\r\n >@if (column) {\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [isChecked]=\"isChecked\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\r\n [formLayoutShowLabel]=\"true\"\r\n ></bsu-column-renderer>\r\n </div>\r\n }\r\n</ng-template>\r\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWNhcmQva2FuYmFuLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLWNhcmQva2FuYmFuLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUF1QixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFXekcsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDBCQUEwQjtJQVJuRTs7UUFjSSxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQix5QkFBb0IsR0FBRyxDQUFDLENBQUM7S0FPNUI7SUFKRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM5RixDQUFDOytHQWJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJKQUpqQixDQUFDLGdCQUFnQixDQUFDLGlEQ1RqQyx1aE5BeUlBOzs0RkQ1SGEsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNJLGdCQUFnQixhQUdmLENBQUMsZ0JBQWdCLENBQUMsbUJBQ1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdSLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgS2FuYmFuVmlld1NldHRpbmcgfSBmcm9tICcuLi9Nb2RlbHMva2FuYmFuLXZpZXctc2V0dGluZy5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JrLWthbmJhbi1jYXJkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9rYW5iYW4tY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9rYW5iYW4tY2FyZC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLYW5iYW5DYXJkQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgdmlld1NldHRpbmc6IEthbmJhblZpZXdTZXR0aW5nO1xyXG4gICAgQElucHV0KCkgYWxsQXZhaWxhYmxlQXNzaWduZWVzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcblxyXG4gICAgbW9UYXNrc0NvdW50ID0gNDtcclxuICAgIG1vRmluaXNoZWRUYXNrc0NvdW50ID0gMjtcclxuICAgIG1vVGFza1BlcmNlbnRhZ2U7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLm1vVGFza1BlcmNlbnRhZ2UgPSBNYXRoLmZsb29yKCh0aGlzLm1vRmluaXNoZWRUYXNrc0NvdW50IC8gdGhpcy5tb1Rhc2tzQ291bnQpICogMTAwKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICN0ckVsIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIiBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCIgW2hvc3RFbF09XCJ0ckVsXCI+XHJcbiAgICA8ZmQtY2FyZCBbaW50ZXJhY3RpdmVdPVwidHJ1ZVwiIHJvbGU9XCJsaXN0aXRlbVwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCI+XHJcbiAgICAgICAgPGZkLWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgICA8ZmQtY2FyZC1tYWluLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIEBpZih2aWV3U2V0dGluZy5QaWN0dXJlRmllbGQpe1xyXG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCIndHJhdmVsLWV4cGVuc2UnXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VdPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiYXZhdGFyIGltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cImF2YXRhciBpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8aDJcclxuICAgICAgICAgICAgICAgICAgICBmZC1jYXJkLXRpdGxlXHJcbiAgICAgICAgICAgICAgICAgICAgI2hFbFxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtob3N0RWxdPVwiaEVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGJOYW1lXT1cIihhbGxDb2x1bW5zIHwgZmluZENvbHVtbkJ5RGJOYW1lOiB2aWV3U2V0dGluZy5UaXRsZUZpZWxkKT8uTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyB2aWV3U2V0dGluZy5UaXRsZUZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlIH19XHJcbiAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgQGlmKHZpZXdTZXR0aW5nLlN1YnRpdGxlRmllbGQpe1xyXG4gICAgICAgICAgICAgICAgPGgzXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtY2FyZC1zdWJ0aXRsZVxyXG4gICAgICAgICAgICAgICAgICAgICNoRWxTdWJ0aXRsZVxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtob3N0RWxdPVwiaEVsU3VidGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiKGFsbENvbHVtbnMgfCBmaW5kQ29sdW1uQnlEYk5hbWU6IHZpZXdTZXR0aW5nLlN1YnRpdGxlRmllbGQpPy5OYW1lXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyB2aWV3U2V0dGluZy5TdWJ0aXRsZUZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlIH19XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgfSBAaWYodmlld1NldHRpbmcuQ291bnRlckZpZWxkKXtcclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtY2FyZC1jb3VudGVyXHJcbiAgICAgICAgICAgICAgICAgICAgI2hFbENvdW50ZXJcclxuICAgICAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbaG9zdEVsXT1cImhFbENvdW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiKGFsbENvbHVtbnMgfCBmaW5kQ29sdW1uQnlEYk5hbWU6IHZpZXdTZXR0aW5nLkNvdW50ZXJGaWVsZCk/Lk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IHZpZXdTZXR0aW5nLkNvdW50ZXJGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWNhcmQtaGVhZGVyLWFjdGlvblxyXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJvdmVyZmxvd1wiXHJcbiAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJNb3JlXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwiTW9yZVwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cclxuICAgICAgICAgICAgQGlmKHZpZXdTZXR0aW5nLkhlYWRlclJvd09uZUZpZWxkIHx8IHZpZXdTZXR0aW5nLkhlYWRlclJvd1R3b0ZpZWxkIHx8IHZpZXdTZXR0aW5nLkhlYWRlclJvd1JpZ2h0RmllbGQgKXtcclxuICAgICAgICAgICAgPGZkLWNhcmQtZXh0ZW5kZWQtaGVhZGVyIFthbGlnbl09XCInYm90dG9tJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1jYXJkLWhlYWRlci1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmKHZpZXdTZXR0aW5nLkhlYWRlclJvd09uZUZpZWxkKXtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWNhcmQtaGVhZGVyLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNoRWxIZWFkZXJSb3dPbmVGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtob3N0RWxdPVwiaEVsSGVhZGVyUm93T25lRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RiTmFtZV09XCIoYWxsQ29sdW1ucyB8IGZpbmRDb2x1bW5CeURiTmFtZTogdmlld1NldHRpbmcuSGVhZGVyUm93T25lRmllbGQpPy5OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmlld1NldHRpbmcuSGVhZGVyUm93T25lRmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zOnRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGlmKHZpZXdTZXR0aW5nLkhlYWRlclJvd1R3b0ZpZWxkKXtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWNhcmQtaGVhZGVyLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNlbEhlYWRlclJvd1R3b0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hvc3RFbF09XCJlbEhlYWRlclJvd1R3b0ZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiKGFsbENvbHVtbnMgfCBmaW5kQ29sdW1uQnlEYk5hbWU6IHZpZXdTZXR0aW5nLkhlYWRlclJvd1R3b0ZpZWxkKT8uTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZpZXdTZXR0aW5nLkhlYWRlclJvd1R3b0ZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtY2FyZC1oZWFkZXItY29sdW1uIFthbGlnbl09XCIncmlnaHQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmKHZpZXdTZXR0aW5nLkhlYWRlclJvd1JpZ2h0RmllbGQpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtY2FyZC1oZWFkZXItcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI2VsSGVhZGVyUm93UmlnaHRGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtob3N0RWxdPVwiZWxIZWFkZXJSb3dSaWdodEZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiKGFsbENvbHVtbnMgfCBmaW5kQ29sdW1uQnlEYk5hbWU6IHZpZXdTZXR0aW5nLkhlYWRlclJvd1JpZ2h0RmllbGQpPy5OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyB2aWV3U2V0dGluZy5IZWFkZXJSb3dSaWdodEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mZC1jYXJkLWV4dGVuZGVkLWhlYWRlcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgPCEtLSA8ZmQtY2FyZC1mb290ZXI+XHJcbiAgICAgICAgPGJ1dHRvbiAqZmRDYXJkRm9vdGVyQWN0aW9uSXRlbSBmZC1idXR0b24gZmRUeXBlPVwicG9zaXRpdmVcIj5BcHByb3ZlPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAqZmRDYXJkRm9vdGVyQWN0aW9uSXRlbSBmZC1idXR0b24gZmRUeXBlPVwibmVnYXRpdmVcIj5SZWplY3Q8L2J1dHRvbj5cclxuICAgIDwvZmQtY2FyZC1mb290ZXI+IC0tPlxyXG4gICAgPC9mZC1jYXJkPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNjb2x1bW5UZW1wbGF0ZSBsZXQtY29sdW1uIGxldC1tbz1cIm1vXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiIGxldC1pc2NoZWNrZWQ9XCJpc2NoZWNrZWRcIlxyXG4gICAgPkBpZiAoY29sdW1uKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgI2RpdkVsXHJcbiAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXHJcbiAgICAgICAgW2hvc3RFbF09XCJkaXZFbFwiXHJcbiAgICAgICAgW2RiTmFtZV09XCJjb2x1bW4uTmFtZVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcclxuICAgICAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxyXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXHJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxyXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgICAgIFtjb250cm9sVWldPVwiY29sdW1uLkNhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0OmNvbHVtbi5OYW1lXCJcclxuICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLlRhYik9XCJvblRhYktleURvd24oJGV2ZW50LCBpbmRleClcIlxyXG4gICAgICAgICAgICBbZm9ybUxheW91dFNob3dMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICA+PC9ic3UtY29sdW1uLXJlbmRlcmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
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, standalone: false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLXRhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLXRhZ3Mva2FuYmFuLXRhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLXRhZ3Mva2FuYmFuLXRhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7OztBQVczRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBUDVEOztRQVVJLGNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO0tBa0J0QjtJQWhCRyxVQUFVLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNGLE1BQU0sTUFBTSxHQUF3QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7K0dBdEJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1JQ2JoQyxxd0ZBbUVBOzs0RkR0RGEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7OEJBR1IsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgS2FuYmFuQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2thbmJhbi1iYXNlL2thbmJhbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEthbmJhblZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vTW9kZWxzL2thbmJhbi12aWV3LXNldHRpbmcuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiay1rYW5iYW4tdGFncycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4va2FuYmFuLXRhZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4va2FuYmFuLXRhZ3MuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEthbmJhblRhZ3NDb21wb25lbnQgZXh0ZW5kcyBLYW5iYW5CYXNlQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIHRhZ3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcclxuICAgIEBJbnB1dCgpIHZpZXdTZXR0aW5nOiBLYW5iYW5WaWV3U2V0dGluZztcclxuICAgIGNvbG9yTGlzdCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLCAnMTAnXTtcclxuICAgIGN1cnJlbnRUYWdMYWJlbCA9ICcnO1xyXG4gICAgc2VsZWN0ZWRDb2xvciA9ICcnO1xyXG5cclxuICAgIGNvbG9yQ2xpY2soY29sb3I6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IGNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFRhZygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXdUYWc6IE1ldGFvYmplY3REYXRhTW9kZWwgPSB7IElkOiAnJywgJENhcHRpb246ICcnIH07XHJcbiAgICAgICAgbmV3VGFnW3RoaXMudmlld1NldHRpbmcuVGFnQ29sb3JdID0gdGhpcy5zZWxlY3RlZENvbG9yO1xyXG4gICAgICAgIG5ld1RhZ1t0aGlzLnZpZXdTZXR0aW5nLlRhZ05hbWVdID0gdGhpcy5jdXJyZW50VGFnTGFiZWw7XHJcbiAgICAgICAgdGhpcy50YWdzLnB1c2gobmV3VGFnKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWdMYWJlbCA9ICcnO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVRhZyhpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWdzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyB0YWdzLWNvbnRhaW5lclwiPlxyXG4gICAgQGZvciAodGFnIG9mIHRhZ3M7IHRyYWNrIHRhZzsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDxmZC1wb3BvdmVyIHBsYWNlbWVudD1cImJvdHRvbVwiIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtaW5mby1sYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ0YWdbdmlld1NldHRpbmcuVGFnTmFtZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJ0YWdbdmlld1NldHRpbmcuVGFnQ29sb3JdXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGFnW3ZpZXdTZXR0aW5nLlRhZ05hbWVdXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLWluZm8tbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctZGVsZXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlVGFnKGkpXCIgW2xhYmVsXT1cIidEZWxldGUnIHwgYmJiVHJhbnNsYXRlXCIgZ2x5cGg9XCJkZWNsaW5lXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgfVxyXG5cclxuICAgIDxmZC1wb3BvdmVyXHJcbiAgICAgICAgI3RhZ1BvcG92ZXJcclxuICAgICAgICBbdHJpZ2dlcnNdPVwiW11cIlxyXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIlxyXG4gICAgICAgIFtub0Fycm93XT1cImZhbHNlXCJcclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG4gICAgPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Qb3BvdmVyKCRldmVudCwgdGFnUG9wb3ZlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cInN5cy1hZGRcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LXRhZ1wiIChrZXlkb3duLmVudGVyKT1cImFkZFRhZygpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmZC1mb3JtLWNvbnRyb2wgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRUYWdMYWJlbFwiIGlkPVwiaW5wdXQtMVwiIHBsYWNlaG9sZGVyPVwiINmG2KfZhVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvcnMtY29sZWN0aW9uIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbG9yIG9mIGNvbG9yTGlzdDsgdHJhY2sgY29sb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb2xvckNsaWNrKGNvbG9yKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmZC1pbmZvLWxhYmVsLS1hY2NlbnQtY29sb3ItJyArIGNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLWNvbG9yXT1cInNlbGVjdGVkQ29sb3IgPT09IGNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9rLWNhbmNlbC1idG5zIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInT2snIHwgYmJiVHJhbnNsYXRlXCIgW2ZkVHlwZV09XCInZW1waGFzaXplZCdcIiAoY2xpY2spPVwiYWRkVGFnKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKHRhZ1BvcG92ZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICA8L2ZkLXBvcG92ZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, ViewChild, signal } from '@angular/core';
|
|
2
|
+
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
3
|
+
import { MultipleGroupByPipe, ReportViewBaseComponent, SortDirection } from 'barsa-novin-ray-core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
7
|
+
import * as i3 from "@fundamental-ngx/core/card";
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/checkbox";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/layout-grid";
|
|
10
|
+
import * as i6 from "@fundamental-ngx/core/layout-panel";
|
|
11
|
+
import * as i7 from "@fundamental-ngx/core/title";
|
|
12
|
+
import * as i8 from "@fundamental-ngx/core/table";
|
|
13
|
+
import * as i9 from "@angular/forms";
|
|
14
|
+
import * as i10 from "@angular/cdk/drag-drop";
|
|
15
|
+
import * as i11 from "../kanban-card/kanban-card.component";
|
|
16
|
+
export class KanbanViewComponent extends ReportViewBaseComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.groupbyProperty = 'State';
|
|
20
|
+
this.isNewColumnMode = false;
|
|
21
|
+
this.newCard = { Id: null, $Caption: null };
|
|
22
|
+
this.newColumn = { Id: null, $Caption: null };
|
|
23
|
+
this._multipleGroup = inject(MultipleGroupByPipe);
|
|
24
|
+
this.groupedMoList = signal({});
|
|
25
|
+
this.sceneConfig = {
|
|
26
|
+
scene: { url: 'assets/images/sapIllus-Scene-NoMail.svg', id: 'sapIllus-Scene-NoMail-1' },
|
|
27
|
+
dialog: { url: 'assets/images/sapIllus-Dialog-NoMail.svg', id: 'sapIllus-Dialog-NoMail' }
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
super.ngOnInit();
|
|
32
|
+
const columnsReport = this.viewSetting.ColumnsReport.$Caption;
|
|
33
|
+
this._portalService.ReportExecute(columnsReport).subscribe((report) => {
|
|
34
|
+
this.kanbanColumns = report.MoDataList;
|
|
35
|
+
this._changeDetect();
|
|
36
|
+
});
|
|
37
|
+
// this.formSetting.View.ControlInfo.forEach((c) => (c.InlineEditMode = true));
|
|
38
|
+
const assigneesReport = this.viewSetting.AssigneesReport?.$Caption;
|
|
39
|
+
if (assigneesReport) {
|
|
40
|
+
this._portalService.ReportExecute(assigneesReport).subscribe((report) => {
|
|
41
|
+
this.allAvailableAssignees = report.MoDataList;
|
|
42
|
+
this._changeDetect();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
this.viewSetting = {
|
|
46
|
+
...this.viewSetting,
|
|
47
|
+
...this._findColumn(this.allColumns, [
|
|
48
|
+
this.viewSetting.Cover,
|
|
49
|
+
this.viewSetting.State,
|
|
50
|
+
this.viewSetting.Caption
|
|
51
|
+
])
|
|
52
|
+
};
|
|
53
|
+
this._prepareGroupMoList(this.moDataList);
|
|
54
|
+
}
|
|
55
|
+
ngOnChanges(changes) {
|
|
56
|
+
super.ngOnChanges(changes);
|
|
57
|
+
const { moDataList } = changes;
|
|
58
|
+
if (moDataList && !moDataList.firstChange) {
|
|
59
|
+
this._prepareGroupMoList(moDataList.currentValue);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
_prepareGroupMoList(molist) {
|
|
63
|
+
const column = this._findColumnByDbName.transform(this.allColumns, this.viewSetting.State);
|
|
64
|
+
const name = column?.Name || this.viewSetting.State;
|
|
65
|
+
const dict = {};
|
|
66
|
+
const s = this._multipleGroup.transform(molist, [
|
|
67
|
+
{
|
|
68
|
+
IsGrouped: true,
|
|
69
|
+
Name: name,
|
|
70
|
+
SortDirection: SortDirection.ASC
|
|
71
|
+
}
|
|
72
|
+
]);
|
|
73
|
+
s.forEach((c) => {
|
|
74
|
+
if (c.$Group) {
|
|
75
|
+
dict[c.$Group] = c.$Children;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
this.groupedMoList.set(dict);
|
|
79
|
+
}
|
|
80
|
+
onAddNewColumn() {
|
|
81
|
+
this.kanbanColumns.push(this.newColumn);
|
|
82
|
+
this._cdr.detectChanges();
|
|
83
|
+
this._resetNewColumn();
|
|
84
|
+
this._scrollInputIntoView();
|
|
85
|
+
}
|
|
86
|
+
onActiveNewColumnMode() {
|
|
87
|
+
this._changeNewColumnMode(true);
|
|
88
|
+
}
|
|
89
|
+
onCancelNewColumn() {
|
|
90
|
+
this._changeNewColumnMode(false);
|
|
91
|
+
this._resetNewColumn();
|
|
92
|
+
}
|
|
93
|
+
onInitNewCard(groupby) {
|
|
94
|
+
this._resetNewCard();
|
|
95
|
+
this.newCard[this.groupbyProperty] = groupby;
|
|
96
|
+
}
|
|
97
|
+
onAddNewCard(e) {
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
this._addNewCard();
|
|
101
|
+
}
|
|
102
|
+
onNewCardInputFocusout() {
|
|
103
|
+
if (this.newCard.$Caption) {
|
|
104
|
+
this._addNewCard();
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this._cancelNewCard();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
onCancelNewCard(e) {
|
|
111
|
+
e.stopPropagation();
|
|
112
|
+
e.preventDefault();
|
|
113
|
+
this._cancelNewCard();
|
|
114
|
+
}
|
|
115
|
+
onDrop(event, isColumn) {
|
|
116
|
+
let previousIndex;
|
|
117
|
+
let currentIndex;
|
|
118
|
+
const array = event.container.data;
|
|
119
|
+
if (isColumn) {
|
|
120
|
+
previousIndex = event.previousIndex;
|
|
121
|
+
currentIndex = event.currentIndex;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const draggedItemId = this.dropActionTodo.draggedId;
|
|
125
|
+
if (!draggedItemId) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const draggedItem = this._getMoById(draggedItemId);
|
|
129
|
+
const targetState = this.dropActionTodo.targetState;
|
|
130
|
+
previousIndex = array.indexOf(draggedItem);
|
|
131
|
+
currentIndex = this.dropActionTodo.targetIndex;
|
|
132
|
+
draggedItem.State = targetState;
|
|
133
|
+
this._stopDragging();
|
|
134
|
+
}
|
|
135
|
+
moveItemInArray(array, previousIndex, currentIndex);
|
|
136
|
+
}
|
|
137
|
+
onDragMove(event, draggedMo, draggedIndex, targetState) {
|
|
138
|
+
const elementFromPoint = document.elementFromPoint(event.pointerPosition.x, event.pointerPosition.y);
|
|
139
|
+
if (targetState) {
|
|
140
|
+
}
|
|
141
|
+
if (!elementFromPoint) {
|
|
142
|
+
this._stopDragging();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const targetNodeElement = elementFromPoint.closest('[state]');
|
|
146
|
+
if (!targetNodeElement) {
|
|
147
|
+
this._stopDragging();
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
this.dropActionTodo = {
|
|
151
|
+
draggedId: draggedMo.Id,
|
|
152
|
+
targetId: targetNodeElement.getAttribute('id'),
|
|
153
|
+
targetState: null,
|
|
154
|
+
targetIndex: Number(targetNodeElement.getAttribute('index'))
|
|
155
|
+
};
|
|
156
|
+
const targetRect = targetNodeElement.getBoundingClientRect();
|
|
157
|
+
const oneThird = targetRect.height / 3;
|
|
158
|
+
const isCardTarget = !targetNodeElement.classList.contains('column');
|
|
159
|
+
const isBefore = event.pointerPosition.y - targetRect.top < oneThird && isCardTarget;
|
|
160
|
+
const isAfter = event.pointerPosition.y - targetRect.top > 2 * oneThird && isCardTarget;
|
|
161
|
+
const isInside = !isCardTarget;
|
|
162
|
+
const targetIndex = this.dropActionTodo.targetIndex ?? -1;
|
|
163
|
+
const targetMo = this.moDataList[targetIndex];
|
|
164
|
+
if (isCardTarget) {
|
|
165
|
+
this.dropActionTodo.targetState = targetMo[this.viewSetting.State];
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this.dropActionTodo.targetState = {
|
|
169
|
+
$Caption: targetNodeElement.getAttribute('state'),
|
|
170
|
+
Id: targetNodeElement.getAttribute('id'),
|
|
171
|
+
$TypeDefId: draggedMo[this.viewSetting.State]?.$TypeDefId
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
if (isBefore) {
|
|
175
|
+
this.dropActionTodo.action = 'before';
|
|
176
|
+
this.dropActionTodo.targetIndex = draggedIndex > targetIndex ? targetIndex : targetIndex - 1;
|
|
177
|
+
}
|
|
178
|
+
else if (isAfter) {
|
|
179
|
+
this.dropActionTodo.action = 'after';
|
|
180
|
+
this.dropActionTodo.targetIndex = draggedIndex < targetIndex ? targetIndex : targetIndex + 1;
|
|
181
|
+
}
|
|
182
|
+
else if (isInside) {
|
|
183
|
+
this.dropActionTodo.action = 'inside';
|
|
184
|
+
this.dropActionTodo.targetIndex = 0;
|
|
185
|
+
}
|
|
186
|
+
// console.log(this.dropActionTodo.targetState);
|
|
187
|
+
this._showDragInfo();
|
|
188
|
+
}
|
|
189
|
+
_changeDetect() {
|
|
190
|
+
this._cdr.detectChanges();
|
|
191
|
+
}
|
|
192
|
+
_stopDragging() {
|
|
193
|
+
this._clearDragInfo();
|
|
194
|
+
this._resetDropActionTodo();
|
|
195
|
+
}
|
|
196
|
+
_changeNewColumnMode(mode) {
|
|
197
|
+
this.isNewColumnMode = mode;
|
|
198
|
+
}
|
|
199
|
+
_resetDropActionTodo() {
|
|
200
|
+
this.dropActionTodo = {
|
|
201
|
+
targetId: null,
|
|
202
|
+
draggedId: null,
|
|
203
|
+
targetState: null,
|
|
204
|
+
targetIndex: null,
|
|
205
|
+
action: null
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
_scrollInputIntoView() {
|
|
209
|
+
const inputEl = this.inputEl.nativeElement;
|
|
210
|
+
inputEl.focus();
|
|
211
|
+
inputEl.scrollIntoView({ inline: 'end' });
|
|
212
|
+
}
|
|
213
|
+
_resetNewColumn() {
|
|
214
|
+
this.newColumn = { Id: '', $Caption: '' };
|
|
215
|
+
}
|
|
216
|
+
_clearDragInfo(dropped = false) {
|
|
217
|
+
if (dropped) {
|
|
218
|
+
this._resetDropActionTodo();
|
|
219
|
+
}
|
|
220
|
+
const elDom = this._el.nativeElement;
|
|
221
|
+
elDom
|
|
222
|
+
.querySelectorAll('.drop-before')
|
|
223
|
+
.forEach((element) => this._renderer2.removeClass(element, 'drop-before'));
|
|
224
|
+
elDom.querySelectorAll('.drop-after').forEach((element) => this._renderer2.removeClass(element, 'drop-after'));
|
|
225
|
+
elDom
|
|
226
|
+
.querySelectorAll('.drop-inside')
|
|
227
|
+
.forEach((element) => this._renderer2.removeClass(element, 'drop-inside'));
|
|
228
|
+
}
|
|
229
|
+
_showDragInfo() {
|
|
230
|
+
this._clearDragInfo();
|
|
231
|
+
if (this.dropActionTodo.targetId) {
|
|
232
|
+
const targetNodeElement = this._el.nativeElement.querySelector('#' + this.dropActionTodo.targetId);
|
|
233
|
+
if (!targetNodeElement) {
|
|
234
|
+
this._resetDropActionTodo();
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
this._renderer2.addClass(targetNodeElement, 'drop-' + this.dropActionTodo?.action);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
_addNewCard() {
|
|
241
|
+
this.moDataList.push(this.newCard);
|
|
242
|
+
const currentGroupby = this.newCard[this.groupbyProperty];
|
|
243
|
+
this.onInitNewCard(currentGroupby);
|
|
244
|
+
}
|
|
245
|
+
_resetNewCard() {
|
|
246
|
+
this.newCard = { Id: null, $Caption: null };
|
|
247
|
+
}
|
|
248
|
+
_cancelNewCard() {
|
|
249
|
+
this._resetNewCard();
|
|
250
|
+
}
|
|
251
|
+
_getMoById(id) {
|
|
252
|
+
return this.moDataList.find((c) => c.Id === id);
|
|
253
|
+
}
|
|
254
|
+
_findColumn(allColumns, columnsName) {
|
|
255
|
+
const columns = {};
|
|
256
|
+
columnsName.forEach((name) => {
|
|
257
|
+
columns[name + 'Column'] = this._findColumnByDbName.transform(this.allColumns, name);
|
|
258
|
+
});
|
|
259
|
+
return columns;
|
|
260
|
+
}
|
|
261
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
262
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KanbanViewComponent, selector: "bk-kanban-view", inputs: { kanbanColumns: "kanbanColumns", groupbyProperty: "groupbyProperty" }, viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-layout-panel>\r\n <fd-layout-panel-body [bleed]=\"true\">\r\n @if (isCheckList) {\r\n <table fd-table>\r\n <thead fd-table-header>\r\n <tr fd-table-row>\r\n <th fd-table-cell>\r\n <fd-checkbox\r\n name=\"allCheckbox\"\r\n [ngModel]=\"allChecked\"\r\n (ngModelChange)=\"onAllCheckbox($event)\"\r\n >{{ 'All' | bbbTranslate }}</fd-checkbox\r\n >\r\n </th>\r\n </tr>\r\n </thead>\r\n </table>\r\n }\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n<fd-layout-grid\r\n class=\"columns\"\r\n fillEmptySpace\r\n [setMinHeight]=\"true\"\r\n [disable]=\"true\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"kanbanColumns\"\r\n [id]=\"'$Root'\"\r\n (cdkDropListDropped)=\"onDrop($event, true)\"\r\n>\r\n @for (column of kanbanColumns; track column; let columnIndex = $index) {\r\n <div\r\n [fdLayoutGridCol]=\"12\"\r\n [colMd]=\"4\"\r\n [colLg]=\"3\"\r\n [colXl]=\"2\"\r\n class=\"column\"\r\n [id]=\"column.Id\"\r\n [attr.state]=\"column.$Caption\"\r\n cdkDrag\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnCard;\r\n context: {\r\n column: column,\r\n columnIndex: columnIndex\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n</fd-layout-grid>\r\n\r\n<!--noData-->\r\n\r\n<!--column card-->\r\n<ng-template #columnCard let-column=\"column\" let-columnIndex=\"columnIndex\">\r\n <fd-card cardType=\"quickView\" class=\"docs-flex-item-margin\" ellipsify>\r\n <fd-card-header>\r\n <fd-card-main-header [style.background]=\"column.Color\" [class.hasColumnColor]=\"column.Color\">\r\n <h2 fd-card-title>{{ column.$Caption }}</h2>\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n <fd-card-content\r\n cdkDropList\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [cdkDropListData]=\"moDataList\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnMoList;\r\n context: { $implicit: groupedMoList()[column.$Caption], column: column }\r\n \"\r\n >\r\n </ng-container>\r\n </fd-card-content>\r\n <!-- <fd-card-footer class=\"column-footer\">\r\n @if (newCard[groupbyProperty] === column.$Caption) {\r\n <div class=\"new-card\">\r\n <fd-card>\r\n <div fd-form-item>\r\n <textarea\r\n fd-form-control\r\n [autofocus]=\"true\"\r\n [(ngModel)]=\"newCard.$Caption\"\r\n (keydown.enter)=\"onAddNewCard($event)\"\r\n (focusout)=\"onNewCardInputFocusout()\"\r\n [placeholder]=\"'Title' | bbbTranslate\"\r\n ></textarea>\r\n </div>\r\n </fd-card>\r\n <div class=\"new-card-actions\">\r\n <button\r\n fd-button\r\n (click)=\"onAddNewCard($event)\"\r\n fdType=\"emphasized\"\r\n class=\"add-card-btn\"\r\n [label]=\"'\u0627\u0641\u0632\u0648\u062F\u0646'\"\r\n ></button>\r\n <fd-icon (mousedown)=\"onCancelNewCard($event)\" glyph=\"decline\"></fd-icon>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"add-new-card\" (click)=\"onInitNewCard(column.$Caption)\">\r\n <span>\r\n <fd-icon glyph=\"add\"></fd-icon>\r\n \u06A9\u0627\u0631\u062A \u062C\u062F\u06CC\u062F\r\n </span>\r\n </div>\r\n }\r\n </fd-card-footer> -->\r\n </fd-card>\r\n</ng-template>\r\n\r\n<ng-template #columnMoList let-moList let-column=\"column\">\r\n @if(moList && moList.length>0){ @for (mo of moList; track mo; let index = $index) {\r\n <bk-kanban-card\r\n [mo]=\"mo\"\r\n [allColumns]=\"columns\"\r\n [viewSetting]=\"viewSetting\"\r\n [formSetting]=\"formSetting\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [allAvailableAssignees]=\"allAvailableAssignees\"\r\n [index]=\"index\"\r\n [attr.id]=\"mo.Id\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [attr.state]=\"column.$Caption\"\r\n [attr.index]=\"index\"\r\n [class.selected]=\"mo.$IsChecked\"\r\n (cdkDragMoved)=\"onDragMove($event, mo, index, column)\"\r\n (click)=\"onRowCheck({mo, index})\"\r\n (dblclick)=\"onRowClick({mo, index})\"\r\n cdkDrag\r\n >\r\n </bk-kanban-card>\r\n } }@else{\r\n\r\n <h3 fd-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n }\r\n</ng-template>\r\n", styles: ["fd-card-main-header.hasColumnColor{display:block}fd-card-main-header.hasColumnColor ::ng-deep .fd-card__header-main{background-color:transparent}figure{padding:0!important}figure ::ng-deep svg{margin:0}::-webkit-scrollbar{height:7px;width:7px}::-webkit-scrollbar-track{box-shadow:inset 0 0 2px #d0cece;border-radius:10px}::-webkit-scrollbar-thumb{background:#c8cacb;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#adb0b2}.columns{height:inherit;width:100%;column-gap:15px;flex-wrap:nowrap!important}.column{height:100%}.column.cdk-drag-placeholder{opacity:0}.column>fd-card{overflow-y:hidden;height:100%}.column>fd-card fd-card-content{flex:1;overflow-y:auto;padding:1rem .5rem;margin:0;display:flex;flex-direction:column;row-gap:1rem}.column>fd-card .column-footer{padding:1rem 1rem 1rem 1.5rem;position:sticky}.column>fd-card .column-footer .new-card{display:flex;flex-direction:column;justify-content:center;row-gap:1rem}.column>fd-card .column-footer .new-card fd-card{padding:0 1rem;background:var(--sapBackgroundColor, #f7f7f7)!important}.column>fd-card .column-footer .new-card textarea{background:var(--sapBackgroundColor, #f7f7f7)!important;border:none}.column>fd-card .column-footer .new-card span{height:auto!important}.column>fd-card .column-footer .new-card .new-card-actions{display:flex;align-items:center;column-gap:10px}.column>fd-card .column-footer .new-card .new-card-actions fd-icon{font-size:1rem}.column>fd-card .column-footer .add-new-card{padding:0 1rem}.column>fd-card .column-footer .add-new-card span{display:flex;column-gap:4px}.newColumn{background-color:var(--sapList_Background, #fff)!important;border-radius:var(--sapElement_BorderCornerRadius, .25rem);align-self:flex-start;height:100px;opacity:.5;display:flex;align-items:center;justify-content:center;border:1px dashed;position:relative;cursor:pointer}.newColumn span{position:absolute}.newColumn .new-column-popover{width:100%}.newColumn .new-column-popover fd-popover-control{width:100%;height:1px}.new-column-popover-body input{border:none}.row{display:flex;align-items:center}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:2px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:2px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.columns.cdk-drop-list-dragging .column:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i3.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: i3.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i3.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i3.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i3.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i5.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i5.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: i6.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i6.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i7.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i8.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY", "nonInteractive"] }, { kind: "directive", type: i8.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i8.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i10.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i11.KanbanCardComponent, selector: "bk-kanban-card", inputs: ["index", "mo", "viewSetting", "allAvailableAssignees"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
263
|
+
}
|
|
264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KanbanViewComponent, decorators: [{
|
|
265
|
+
type: Component,
|
|
266
|
+
args: [{ selector: 'bk-kanban-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-layout-panel>\r\n <fd-layout-panel-body [bleed]=\"true\">\r\n @if (isCheckList) {\r\n <table fd-table>\r\n <thead fd-table-header>\r\n <tr fd-table-row>\r\n <th fd-table-cell>\r\n <fd-checkbox\r\n name=\"allCheckbox\"\r\n [ngModel]=\"allChecked\"\r\n (ngModelChange)=\"onAllCheckbox($event)\"\r\n >{{ 'All' | bbbTranslate }}</fd-checkbox\r\n >\r\n </th>\r\n </tr>\r\n </thead>\r\n </table>\r\n }\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n<fd-layout-grid\r\n class=\"columns\"\r\n fillEmptySpace\r\n [setMinHeight]=\"true\"\r\n [disable]=\"true\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"kanbanColumns\"\r\n [id]=\"'$Root'\"\r\n (cdkDropListDropped)=\"onDrop($event, true)\"\r\n>\r\n @for (column of kanbanColumns; track column; let columnIndex = $index) {\r\n <div\r\n [fdLayoutGridCol]=\"12\"\r\n [colMd]=\"4\"\r\n [colLg]=\"3\"\r\n [colXl]=\"2\"\r\n class=\"column\"\r\n [id]=\"column.Id\"\r\n [attr.state]=\"column.$Caption\"\r\n cdkDrag\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnCard;\r\n context: {\r\n column: column,\r\n columnIndex: columnIndex\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n</fd-layout-grid>\r\n\r\n<!--noData-->\r\n\r\n<!--column card-->\r\n<ng-template #columnCard let-column=\"column\" let-columnIndex=\"columnIndex\">\r\n <fd-card cardType=\"quickView\" class=\"docs-flex-item-margin\" ellipsify>\r\n <fd-card-header>\r\n <fd-card-main-header [style.background]=\"column.Color\" [class.hasColumnColor]=\"column.Color\">\r\n <h2 fd-card-title>{{ column.$Caption }}</h2>\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n <fd-card-content\r\n cdkDropList\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [cdkDropListData]=\"moDataList\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnMoList;\r\n context: { $implicit: groupedMoList()[column.$Caption], column: column }\r\n \"\r\n >\r\n </ng-container>\r\n </fd-card-content>\r\n <!-- <fd-card-footer class=\"column-footer\">\r\n @if (newCard[groupbyProperty] === column.$Caption) {\r\n <div class=\"new-card\">\r\n <fd-card>\r\n <div fd-form-item>\r\n <textarea\r\n fd-form-control\r\n [autofocus]=\"true\"\r\n [(ngModel)]=\"newCard.$Caption\"\r\n (keydown.enter)=\"onAddNewCard($event)\"\r\n (focusout)=\"onNewCardInputFocusout()\"\r\n [placeholder]=\"'Title' | bbbTranslate\"\r\n ></textarea>\r\n </div>\r\n </fd-card>\r\n <div class=\"new-card-actions\">\r\n <button\r\n fd-button\r\n (click)=\"onAddNewCard($event)\"\r\n fdType=\"emphasized\"\r\n class=\"add-card-btn\"\r\n [label]=\"'\u0627\u0641\u0632\u0648\u062F\u0646'\"\r\n ></button>\r\n <fd-icon (mousedown)=\"onCancelNewCard($event)\" glyph=\"decline\"></fd-icon>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"add-new-card\" (click)=\"onInitNewCard(column.$Caption)\">\r\n <span>\r\n <fd-icon glyph=\"add\"></fd-icon>\r\n \u06A9\u0627\u0631\u062A \u062C\u062F\u06CC\u062F\r\n </span>\r\n </div>\r\n }\r\n </fd-card-footer> -->\r\n </fd-card>\r\n</ng-template>\r\n\r\n<ng-template #columnMoList let-moList let-column=\"column\">\r\n @if(moList && moList.length>0){ @for (mo of moList; track mo; let index = $index) {\r\n <bk-kanban-card\r\n [mo]=\"mo\"\r\n [allColumns]=\"columns\"\r\n [viewSetting]=\"viewSetting\"\r\n [formSetting]=\"formSetting\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [allAvailableAssignees]=\"allAvailableAssignees\"\r\n [index]=\"index\"\r\n [attr.id]=\"mo.Id\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [attr.state]=\"column.$Caption\"\r\n [attr.index]=\"index\"\r\n [class.selected]=\"mo.$IsChecked\"\r\n (cdkDragMoved)=\"onDragMove($event, mo, index, column)\"\r\n (click)=\"onRowCheck({mo, index})\"\r\n (dblclick)=\"onRowClick({mo, index})\"\r\n cdkDrag\r\n >\r\n </bk-kanban-card>\r\n } }@else{\r\n\r\n <h3 fd-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n }\r\n</ng-template>\r\n", styles: ["fd-card-main-header.hasColumnColor{display:block}fd-card-main-header.hasColumnColor ::ng-deep .fd-card__header-main{background-color:transparent}figure{padding:0!important}figure ::ng-deep svg{margin:0}::-webkit-scrollbar{height:7px;width:7px}::-webkit-scrollbar-track{box-shadow:inset 0 0 2px #d0cece;border-radius:10px}::-webkit-scrollbar-thumb{background:#c8cacb;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#adb0b2}.columns{height:inherit;width:100%;column-gap:15px;flex-wrap:nowrap!important}.column{height:100%}.column.cdk-drag-placeholder{opacity:0}.column>fd-card{overflow-y:hidden;height:100%}.column>fd-card fd-card-content{flex:1;overflow-y:auto;padding:1rem .5rem;margin:0;display:flex;flex-direction:column;row-gap:1rem}.column>fd-card .column-footer{padding:1rem 1rem 1rem 1.5rem;position:sticky}.column>fd-card .column-footer .new-card{display:flex;flex-direction:column;justify-content:center;row-gap:1rem}.column>fd-card .column-footer .new-card fd-card{padding:0 1rem;background:var(--sapBackgroundColor, #f7f7f7)!important}.column>fd-card .column-footer .new-card textarea{background:var(--sapBackgroundColor, #f7f7f7)!important;border:none}.column>fd-card .column-footer .new-card span{height:auto!important}.column>fd-card .column-footer .new-card .new-card-actions{display:flex;align-items:center;column-gap:10px}.column>fd-card .column-footer .new-card .new-card-actions fd-icon{font-size:1rem}.column>fd-card .column-footer .add-new-card{padding:0 1rem}.column>fd-card .column-footer .add-new-card span{display:flex;column-gap:4px}.newColumn{background-color:var(--sapList_Background, #fff)!important;border-radius:var(--sapElement_BorderCornerRadius, .25rem);align-self:flex-start;height:100px;opacity:.5;display:flex;align-items:center;justify-content:center;border:1px dashed;position:relative;cursor:pointer}.newColumn span{position:absolute}.newColumn .new-column-popover{width:100%}.newColumn .new-column-popover fd-popover-control{width:100%;height:1px}.new-column-popover-body input{border:none}.row{display:flex;align-items:center}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:2px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:2px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.columns.cdk-drop-list-dragging .column:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
267
|
+
}], propDecorators: { inputEl: [{
|
|
268
|
+
type: ViewChild,
|
|
269
|
+
args: ['inputEl', { read: ElementRef }]
|
|
270
|
+
}], kanbanColumns: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}], groupbyProperty: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}] } });
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLXZpZXcva2FuYmFuLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Eta2FuYmFuL3NyYy9saWIva2FuYmFuLXZpZXcva2FuYmFuLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBR0wsU0FBUyxFQUNULE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsT0FBTyxFQUF1QixtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVd4SCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQTBDO0lBUG5GOztRQVVhLG9CQUFlLEdBQUcsT0FBTyxDQUFDO1FBR25DLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLFlBQU8sR0FBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVDLGNBQVMsR0FBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzlDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDN0Msa0JBQWEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBRztZQUNWLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSx5Q0FBeUMsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUU7WUFDeEYsTUFBTSxF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O0lBRU8sYUFBYTtRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVPLGNBQWM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxVQUFVLENBQUMsRUFBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxXQUFXLENBQUMsVUFBVSxFQUFFLFdBQXFCO1FBQ2pELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOytHQWhSUSxtQkFBbUI7bUdBQW5CLG1CQUFtQixxTkFDRSxVQUFVLHlFQ3pCNUMseTJLQWtKQTs7NEZEMUhhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUcyQixPQUFPO3NCQUFsRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ2pDLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBpbmplY3QsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBzaWduYWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5pbXBvcnQgeyBNZXRhb2JqZWN0RGF0YU1vZGVsLCBNdWx0aXBsZUdyb3VwQnlQaXBlLCBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudCwgU29ydERpcmVjdGlvbiB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgS2FuYmFuVmlld1NldHRpbmcgfSBmcm9tICcuLi9Nb2RlbHMva2FuYmFuLXZpZXctc2V0dGluZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBEcm9wSW5mbyB9IGZyb20gJy4uL01vZGVscy9kcm9wLWluZm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JrLWthbmJhbi12aWV3JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9rYW5iYW4tdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9rYW5iYW4tdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS2FuYmFuVmlld0NvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PEthbmJhblZpZXdTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dEVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGlucHV0RWw6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIGthbmJhbkNvbHVtbnM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcclxuICAgIEBJbnB1dCgpIGdyb3VwYnlQcm9wZXJ0eSA9ICdTdGF0ZSc7XHJcbiAgICBkcm9wQWN0aW9uVG9kbzogRHJvcEluZm87XHJcbiAgICBhbGxBdmFpbGFibGVBc3NpZ25lZXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcclxuICAgIGlzTmV3Q29sdW1uTW9kZSA9IGZhbHNlO1xyXG4gICAgbmV3Q2FyZDogYW55ID0geyBJZDogbnVsbCwgJENhcHRpb246IG51bGwgfTtcclxuICAgIG5ld0NvbHVtbjogYW55ID0geyBJZDogbnVsbCwgJENhcHRpb246IG51bGwgfTtcclxuICAgIF9tdWx0aXBsZUdyb3VwID0gaW5qZWN0KE11bHRpcGxlR3JvdXBCeVBpcGUpO1xyXG4gICAgZ3JvdXBlZE1vTGlzdCA9IHNpZ25hbCh7fSk7XHJcbiAgICBzY2VuZUNvbmZpZyA9IHtcclxuICAgICAgICBzY2VuZTogeyB1cmw6ICdhc3NldHMvaW1hZ2VzL3NhcElsbHVzLVNjZW5lLU5vTWFpbC5zdmcnLCBpZDogJ3NhcElsbHVzLVNjZW5lLU5vTWFpbC0xJyB9LFxyXG4gICAgICAgIGRpYWxvZzogeyB1cmw6ICdhc3NldHMvaW1hZ2VzL3NhcElsbHVzLURpYWxvZy1Ob01haWwuc3ZnJywgaWQ6ICdzYXBJbGx1cy1EaWFsb2ctTm9NYWlsJyB9XHJcbiAgICB9O1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sdW1uc1JlcG9ydCA9IHRoaXMudmlld1NldHRpbmcuQ29sdW1uc1JlcG9ydC4kQ2FwdGlvbjtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLlJlcG9ydEV4ZWN1dGUoY29sdW1uc1JlcG9ydCkuc3Vic2NyaWJlKChyZXBvcnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5rYW5iYW5Db2x1bW5zID0gcmVwb3J0Lk1vRGF0YUxpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIHRoaXMuZm9ybVNldHRpbmcuVmlldy5Db250cm9sSW5mby5mb3JFYWNoKChjKSA9PiAoYy5JbmxpbmVFZGl0TW9kZSA9IHRydWUpKTtcclxuICAgICAgICBjb25zdCBhc3NpZ25lZXNSZXBvcnQgPSB0aGlzLnZpZXdTZXR0aW5nLkFzc2lnbmVlc1JlcG9ydD8uJENhcHRpb247XHJcbiAgICAgICAgaWYgKGFzc2lnbmVlc1JlcG9ydCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLlJlcG9ydEV4ZWN1dGUoYXNzaWduZWVzUmVwb3J0KS5zdWJzY3JpYmUoKHJlcG9ydCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxBdmFpbGFibGVBc3NpZ25lZXMgPSByZXBvcnQuTW9EYXRhTGlzdDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aWV3U2V0dGluZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy52aWV3U2V0dGluZyxcclxuICAgICAgICAgICAgLi4udGhpcy5fZmluZENvbHVtbih0aGlzLmFsbENvbHVtbnMsIFtcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld1NldHRpbmcuQ292ZXIsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdTZXR0aW5nLlN0YXRlLFxyXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3U2V0dGluZy5DYXB0aW9uXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLl9wcmVwYXJlR3JvdXBNb0xpc3QodGhpcy5tb0RhdGFMaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgY29uc3QgeyBtb0RhdGFMaXN0IH0gPSBjaGFuZ2VzO1xyXG4gICAgICAgIGlmIChtb0RhdGFMaXN0ICYmICFtb0RhdGFMaXN0LmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVHcm91cE1vTGlzdChtb0RhdGFMaXN0LmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX3ByZXBhcmVHcm91cE1vTGlzdChtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX2ZpbmRDb2x1bW5CeURiTmFtZS50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB0aGlzLnZpZXdTZXR0aW5nLlN0YXRlKTtcclxuICAgICAgICBjb25zdCBuYW1lID0gY29sdW1uPy5OYW1lIHx8IHRoaXMudmlld1NldHRpbmcuU3RhdGU7XHJcbiAgICAgICAgY29uc3QgZGljdCA9IHt9O1xyXG4gICAgICAgIGNvbnN0IHM6IGFueVtdID0gdGhpcy5fbXVsdGlwbGVHcm91cC50cmFuc2Zvcm0obW9saXN0LCBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIElzR3JvdXBlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIE5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICBTb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLkFTQ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgcy5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjLiRHcm91cCkge1xyXG4gICAgICAgICAgICAgICAgZGljdFtjLiRHcm91cF0gPSBjLiRDaGlsZHJlbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBlZE1vTGlzdC5zZXQoZGljdCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25BZGROZXdDb2x1bW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5rYW5iYW5Db2x1bW5zLnB1c2godGhpcy5uZXdDb2x1bW4pO1xyXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXROZXdDb2x1bW4oKTtcclxuICAgICAgICB0aGlzLl9zY3JvbGxJbnB1dEludG9WaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25BY3RpdmVOZXdDb2x1bW5Nb2RlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZU5ld0NvbHVtbk1vZGUodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DYW5jZWxOZXdDb2x1bW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlTmV3Q29sdW1uTW9kZShmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXROZXdDb2x1bW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkluaXROZXdDYXJkKGdyb3VwYnk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Jlc2V0TmV3Q2FyZCgpO1xyXG4gICAgICAgIHRoaXMubmV3Q2FyZFt0aGlzLmdyb3VwYnlQcm9wZXJ0eV0gPSBncm91cGJ5O1xyXG4gICAgfVxyXG5cclxuICAgIG9uQWRkTmV3Q2FyZChlKTogdm9pZCB7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5fYWRkTmV3Q2FyZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmV3Q2FyZElucHV0Rm9jdXNvdXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubmV3Q2FyZC4kQ2FwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9hZGROZXdDYXJkKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fY2FuY2VsTmV3Q2FyZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbE5ld0NhcmQoZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHRoaXMuX2NhbmNlbE5ld0NhcmQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRyb3AoZXZlbnQsIGlzQ29sdW1uPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGxldCBwcmV2aW91c0luZGV4O1xyXG4gICAgICAgIGxldCBjdXJyZW50SW5kZXg7XHJcbiAgICAgICAgY29uc3QgYXJyYXkgPSBldmVudC5jb250YWluZXIuZGF0YTtcclxuXHJcbiAgICAgICAgaWYgKGlzQ29sdW1uKSB7XHJcbiAgICAgICAgICAgIHByZXZpb3VzSW5kZXggPSBldmVudC5wcmV2aW91c0luZGV4O1xyXG4gICAgICAgICAgICBjdXJyZW50SW5kZXggPSBldmVudC5jdXJyZW50SW5kZXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZHJhZ2dlZEl0ZW1JZCA9IHRoaXMuZHJvcEFjdGlvblRvZG8uZHJhZ2dlZElkO1xyXG4gICAgICAgICAgICBpZiAoIWRyYWdnZWRJdGVtSWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IHRoaXMuX2dldE1vQnlJZChkcmFnZ2VkSXRlbUlkKTtcclxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0U3RhdGUgPSB0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldFN0YXRlO1xyXG4gICAgICAgICAgICBwcmV2aW91c0luZGV4ID0gYXJyYXkuaW5kZXhPZihkcmFnZ2VkSXRlbSk7XHJcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SW5kZXg7XHJcbiAgICAgICAgICAgIGRyYWdnZWRJdGVtLlN0YXRlID0gdGFyZ2V0U3RhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuX3N0b3BEcmFnZ2luZygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KGFycmF5LCBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRHJhZ01vdmUoZXZlbnQsIGRyYWdnZWRNbywgZHJhZ2dlZEluZGV4OiBudW1iZXIsIHRhcmdldFN0YXRlOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudEZyb21Qb2ludCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoZXZlbnQucG9pbnRlclBvc2l0aW9uLngsIGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55KTtcclxuXHJcbiAgICAgICAgaWYgKHRhcmdldFN0YXRlKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZWxlbWVudEZyb21Qb2ludCkge1xyXG4gICAgICAgICAgICB0aGlzLl9zdG9wRHJhZ2dpbmcoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0YXJnZXROb2RlRWxlbWVudCA9IGVsZW1lbnRGcm9tUG9pbnQuY2xvc2VzdCgnW3N0YXRlXScpO1xyXG4gICAgICAgIGlmICghdGFyZ2V0Tm9kZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RvcERyYWdnaW5nKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kbyA9IHtcclxuICAgICAgICAgICAgZHJhZ2dlZElkOiBkcmFnZ2VkTW8uSWQsXHJcbiAgICAgICAgICAgIHRhcmdldElkOiB0YXJnZXROb2RlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJyksXHJcbiAgICAgICAgICAgIHRhcmdldFN0YXRlOiBudWxsLFxyXG4gICAgICAgICAgICB0YXJnZXRJbmRleDogTnVtYmVyKHRhcmdldE5vZGVFbGVtZW50LmdldEF0dHJpYnV0ZSgnaW5kZXgnKSlcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0YXJnZXROb2RlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBjb25zdCBvbmVUaGlyZCA9IHRhcmdldFJlY3QuaGVpZ2h0IC8gMztcclxuXHJcbiAgICAgICAgY29uc3QgaXNDYXJkVGFyZ2V0ID0gIXRhcmdldE5vZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnY29sdW1uJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzQmVmb3JlID0gZXZlbnQucG9pbnRlclBvc2l0aW9uLnkgLSB0YXJnZXRSZWN0LnRvcCA8IG9uZVRoaXJkICYmIGlzQ2FyZFRhcmdldDtcclxuXHJcbiAgICAgICAgY29uc3QgaXNBZnRlciA9IGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55IC0gdGFyZ2V0UmVjdC50b3AgPiAyICogb25lVGhpcmQgJiYgaXNDYXJkVGFyZ2V0O1xyXG5cclxuICAgICAgICBjb25zdCBpc0luc2lkZSA9ICFpc0NhcmRUYXJnZXQ7XHJcblxyXG4gICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJbmRleCA/PyAtMTtcclxuICAgICAgICBjb25zdCB0YXJnZXRNbyA9IHRoaXMubW9EYXRhTGlzdFt0YXJnZXRJbmRleF07XHJcblxyXG4gICAgICAgIGlmIChpc0NhcmRUYXJnZXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRTdGF0ZSA9IHRhcmdldE1vW3RoaXMudmlld1NldHRpbmcuU3RhdGVdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0U3RhdGUgPSB7XHJcbiAgICAgICAgICAgICAgICAkQ2FwdGlvbjogdGFyZ2V0Tm9kZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzdGF0ZScpISxcclxuICAgICAgICAgICAgICAgIElkOiB0YXJnZXROb2RlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJykhLFxyXG4gICAgICAgICAgICAgICAgJFR5cGVEZWZJZDogZHJhZ2dlZE1vW3RoaXMudmlld1NldHRpbmcuU3RhdGVdPy4kVHlwZURlZklkXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0JlZm9yZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdiZWZvcmUnO1xyXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldEluZGV4ID0gZHJhZ2dlZEluZGV4ID4gdGFyZ2V0SW5kZXggPyB0YXJnZXRJbmRleCA6IHRhcmdldEluZGV4IC0gMTtcclxuICAgICAgICB9IGVsc2UgaWYgKGlzQWZ0ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb24gPSAnYWZ0ZXInO1xyXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldEluZGV4ID0gZHJhZ2dlZEluZGV4IDwgdGFyZ2V0SW5kZXggPyB0YXJnZXRJbmRleCA6IHRhcmdldEluZGV4ICsgMTtcclxuICAgICAgICB9IGVsc2UgaWYgKGlzSW5zaWRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID0gJ2luc2lkZSc7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SW5kZXggPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldFN0YXRlKTtcclxuICAgICAgICB0aGlzLl9zaG93RHJhZ0luZm8oKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N0b3BEcmFnZ2luZygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXREcm9wQWN0aW9uVG9kbygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NoYW5nZU5ld0NvbHVtbk1vZGUobW9kZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNOZXdDb2x1bW5Nb2RlID0gbW9kZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZXNldERyb3BBY3Rpb25Ub2RvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8gPSB7XHJcbiAgICAgICAgICAgIHRhcmdldElkOiBudWxsLFxyXG4gICAgICAgICAgICBkcmFnZ2VkSWQ6IG51bGwsXHJcbiAgICAgICAgICAgIHRhcmdldFN0YXRlOiBudWxsLFxyXG4gICAgICAgICAgICB0YXJnZXRJbmRleDogbnVsbCxcclxuICAgICAgICAgICAgYWN0aW9uOiBudWxsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zY3JvbGxJbnB1dEludG9WaWV3KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGlucHV0RWw6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBpbnB1dEVsLmZvY3VzKCk7XHJcbiAgICAgICAgaW5wdXRFbC5zY3JvbGxJbnRvVmlldyh7IGlubGluZTogJ2VuZCcgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVzZXROZXdDb2x1bW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5uZXdDb2x1bW4gPSB7IElkOiAnJywgJENhcHRpb246ICcnIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xlYXJEcmFnSW5mbyhkcm9wcGVkID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZHJvcHBlZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNldERyb3BBY3Rpb25Ub2RvKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVsRG9tID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBlbERvbVxyXG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmRyb3AtYmVmb3JlJylcclxuICAgICAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHRoaXMuX3JlbmRlcmVyMi5yZW1vdmVDbGFzcyhlbGVtZW50LCAnZHJvcC1iZWZvcmUnKSk7XHJcbiAgICAgICAgZWxEb20ucXVlcnlTZWxlY3RvckFsbCgnLmRyb3AtYWZ0ZXInKS5mb3JFYWNoKChlbGVtZW50KSA9PiB0aGlzLl9yZW5kZXJlcjIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtYWZ0ZXInKSk7XHJcbiAgICAgICAgZWxEb21cclxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcm9wLWluc2lkZScpXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB0aGlzLl9yZW5kZXJlcjIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtaW5zaWRlJykpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Nob3dEcmFnSW5mbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQpIHtcclxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZUVsZW1lbnQgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgdGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJZCk7XHJcbiAgICAgICAgICAgIGlmICghdGFyZ2V0Tm9kZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0RHJvcEFjdGlvblRvZG8oKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYWRkQ2xhc3ModGFyZ2V0Tm9kZUVsZW1lbnQsICdkcm9wLScgKyB0aGlzLmRyb3BBY3Rpb25Ub2RvPy5hY3Rpb24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hZGROZXdDYXJkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubW9EYXRhTGlzdC5wdXNoKHRoaXMubmV3Q2FyZCk7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEdyb3VwYnkgPSB0aGlzLm5ld0NhcmRbdGhpcy5ncm91cGJ5UHJvcGVydHldO1xyXG4gICAgICAgIHRoaXMub25Jbml0TmV3Q2FyZChjdXJyZW50R3JvdXBieSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVzZXROZXdDYXJkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmV3Q2FyZCA9IHsgSWQ6IG51bGwsICRDYXB0aW9uOiBudWxsIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2FuY2VsTmV3Q2FyZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZXNldE5ld0NhcmQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRNb0J5SWQoaWQ6IHN0cmluZyk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vRGF0YUxpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZpbmRDb2x1bW4oYWxsQ29sdW1ucywgY29sdW1uc05hbWU6IHN0cmluZ1tdKTogb2JqZWN0IHtcclxuICAgICAgICBjb25zdCBjb2x1bW5zID0ge307XHJcbiAgICAgICAgY29sdW1uc05hbWUuZm9yRWFjaCgobmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBjb2x1bW5zW25hbWUgKyAnQ29sdW1uJ10gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWUudHJhbnNmb3JtKHRoaXMuYWxsQ29sdW1ucywgbmFtZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLWxheW91dC1wYW5lbD5cclxuICAgIDxmZC1sYXlvdXQtcGFuZWwtYm9keSBbYmxlZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIEBpZiAoaXNDaGVja0xpc3QpIHtcclxuICAgICAgICA8dGFibGUgZmQtdGFibGU+XHJcbiAgICAgICAgICAgIDx0aGVhZCBmZC10YWJsZS1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8dHIgZmQtdGFibGUtcm93PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBmZC10YWJsZS1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhbGxDaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhbGxDaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQWxsQ2hlY2tib3goJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgJ0FsbCcgfCBiYmJUcmFuc2xhdGUgfX08L2ZkLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtbGF5b3V0LXBhbmVsLWJvZHk+XHJcbjwvZmQtbGF5b3V0LXBhbmVsPlxyXG5cclxuPGZkLWxheW91dC1ncmlkXHJcbiAgICBjbGFzcz1cImNvbHVtbnNcIlxyXG4gICAgZmlsbEVtcHR5U3BhY2VcclxuICAgIFtzZXRNaW5IZWlnaHRdPVwidHJ1ZVwiXHJcbiAgICBbZGlzYWJsZV09XCJ0cnVlXCJcclxuICAgIGNka0Ryb3BMaXN0XHJcbiAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgICBbY2RrRHJvcExpc3REYXRhXT1cImthbmJhbkNvbHVtbnNcIlxyXG4gICAgW2lkXT1cIickUm9vdCdcIlxyXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50LCB0cnVlKVwiXHJcbj5cclxuICAgIEBmb3IgKGNvbHVtbiBvZiBrYW5iYW5Db2x1bW5zOyB0cmFjayBjb2x1bW47IGxldCBjb2x1bW5JbmRleCA9ICRpbmRleCkge1xyXG4gICAgPGRpdlxyXG4gICAgICAgIFtmZExheW91dEdyaWRDb2xdPVwiMTJcIlxyXG4gICAgICAgIFtjb2xNZF09XCI0XCJcclxuICAgICAgICBbY29sTGddPVwiM1wiXHJcbiAgICAgICAgW2NvbFhsXT1cIjJcIlxyXG4gICAgICAgIGNsYXNzPVwiY29sdW1uXCJcclxuICAgICAgICBbaWRdPVwiY29sdW1uLklkXCJcclxuICAgICAgICBbYXR0ci5zdGF0ZV09XCJjb2x1bW4uJENhcHRpb25cIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5DYXJkO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4OiBjb2x1bW5JbmRleFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG48L2ZkLWxheW91dC1ncmlkPlxyXG5cclxuPCEtLW5vRGF0YS0tPlxyXG5cclxuPCEtLWNvbHVtbiBjYXJkLS0+XHJcbjxuZy10ZW1wbGF0ZSAjY29sdW1uQ2FyZCBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbkluZGV4PVwiY29sdW1uSW5kZXhcIj5cclxuICAgIDxmZC1jYXJkIGNhcmRUeXBlPVwicXVpY2tWaWV3XCIgY2xhc3M9XCJkb2NzLWZsZXgtaXRlbS1tYXJnaW5cIiBlbGxpcHNpZnk+XHJcbiAgICAgICAgPGZkLWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgICA8ZmQtY2FyZC1tYWluLWhlYWRlciBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2x1bW4uQ29sb3JcIiBbY2xhc3MuaGFzQ29sdW1uQ29sb3JdPVwiY29sdW1uLkNvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgZmQtY2FyZC10aXRsZT57eyBjb2x1bW4uJENhcHRpb24gfX08L2gyPlxyXG4gICAgICAgICAgICA8L2ZkLWNhcmQtbWFpbi1oZWFkZXI+XHJcbiAgICAgICAgPC9mZC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8ZmQtY2FyZC1jb250ZW50XHJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKCRldmVudClcIlxyXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwibW9EYXRhTGlzdFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbk1vTGlzdDtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogZ3JvdXBlZE1vTGlzdCgpW2NvbHVtbi4kQ2FwdGlvbl0sIGNvbHVtbjogY29sdW1uIH1cclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9mZC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPCEtLSA8ZmQtY2FyZC1mb290ZXIgY2xhc3M9XCJjb2x1bW4tZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIEBpZiAobmV3Q2FyZFtncm91cGJ5UHJvcGVydHldID09PSBjb2x1bW4uJENhcHRpb24pIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5ldy1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtY2FyZD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld0NhcmQuJENhcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BZGROZXdDYXJkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cIm9uTmV3Q2FyZElucHV0Rm9jdXNvdXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RpdGxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mZC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5ldy1jYXJkLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGROZXdDYXJkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGQtY2FyZC1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ9in2YHYstmI2K/ZhidcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiAobW91c2Vkb3duKT1cIm9uQ2FuY2VsTmV3Q2FyZCgkZXZlbnQpXCIgZ2x5cGg9XCJkZWNsaW5lXCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1uZXctY2FyZFwiIChjbGljayk9XCJvbkluaXROZXdDYXJkKGNvbHVtbi4kQ2FwdGlvbilcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiYWRkXCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgINqp2KfYsdiqINis2K/bjNivXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC1jYXJkLWZvb3Rlcj4gLS0+XHJcbiAgICA8L2ZkLWNhcmQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbHVtbk1vTGlzdCBsZXQtbW9MaXN0IGxldC1jb2x1bW49XCJjb2x1bW5cIj5cclxuICAgIEBpZihtb0xpc3QgJiYgbW9MaXN0Lmxlbmd0aD4wKXsgQGZvciAobW8gb2YgbW9MaXN0OyB0cmFjayBtbzsgbGV0IGluZGV4ID0gJGluZGV4KSB7XHJcbiAgICA8Ymsta2FuYmFuLWNhcmRcclxuICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICAgIFt2aWV3U2V0dGluZ109XCJ2aWV3U2V0dGluZ1wiXHJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcclxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXHJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgIFthbGxBdmFpbGFibGVBc3NpZ25lZXNdPVwiYWxsQXZhaWxhYmxlQXNzaWduZWVzXCJcclxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxyXG4gICAgICAgIFthdHRyLmlkXT1cIm1vLklkXCJcclxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxyXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibW8uJElzQ2hlY2tlZFwiXHJcbiAgICAgICAgW2F0dHIuc3RhdGVdPVwiY29sdW1uLiRDYXB0aW9uXCJcclxuICAgICAgICBbYXR0ci5pbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIm1vLiRJc0NoZWNrZWRcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwib25EcmFnTW92ZSgkZXZlbnQsIG1vLCBpbmRleCwgY29sdW1uKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soe21vLCBpbmRleH0pXCJcclxuICAgICAgICAoZGJsY2xpY2spPVwib25Sb3dDbGljayh7bW8sIGluZGV4fSlcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgID5cclxuICAgIDwvYmsta2FuYmFuLWNhcmQ+XHJcbiAgICB9IH1AZWxzZXtcclxuXHJcbiAgICA8aDMgZmQtdGl0bGU+e3sgJ05vRGF0YScgfCBiYmJUcmFuc2xhdGUgfX08L2gzPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './lib/kanban-base/kanban-base.component';
|
|
2
|
+
export * from './lib/kanban-tags/kanban-tags.component';
|
|
3
|
+
export * from './lib/kanban-card/kanban-card.component';
|
|
4
|
+
export * from './lib/avatar-group/barsa-avatar-group.component';
|
|
5
|
+
export * from './lib/kanban-view/kanban-view.component';
|
|
6
|
+
export * from './lib/barsa-kanban.module';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWthbmJhbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2thbmJhbi1iYXNlL2thbmJhbi1iYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2thbmJhbi10YWdzL2thbmJhbi10YWdzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2thbmJhbi1jYXJkL2thbmJhbi1jYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci1ncm91cC9iYXJzYS1hdmF0YXItZ3JvdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIva2FuYmFuLXZpZXcva2FuYmFuLXZpZXcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFyc2Eta2FuYmFuLm1vZHVsZSc7XHJcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "barsa-kanban",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": "^18.0.3",
|
|
6
6
|
"@angular/common": "^18.0.3"
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
},
|
|
17
17
|
".": {
|
|
18
18
|
"types": "./index.d.ts",
|
|
19
|
+
"esm2022": "./esm2022/barsa-kanban.mjs",
|
|
20
|
+
"esm": "./esm2022/barsa-kanban.mjs",
|
|
19
21
|
"default": "./fesm2022/barsa-kanban.mjs"
|
|
20
22
|
}
|
|
21
23
|
},
|