barsa-kanban 2.3.104 → 2.3.107

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.
@@ -15,8 +15,7 @@ import * as i2$1 from '@fundamental-ngx/core/card';
15
15
  import * as i3$1 from 'barsa-sap-ui';
16
16
  import { BarsaSapUiModule } from 'barsa-sap-ui';
17
17
  import { ESCAPE, TAB, SPACE, ENTER } from '@angular/cdk/keycodes';
18
- import { KeyUtil } from '@fundamental-ngx/core/utils';
19
- import { AvatarGroupComponent, FundamentalNgxCoreModule } from '@fundamental-ngx/core';
18
+ import { KeyUtil, AvatarGroupComponent, FundamentalNgxCoreModule } from '@fundamental-ngx/core';
20
19
  import * as i2$2 from '@fundamental-ngx/core/bar';
21
20
  import * as i4$2 from '@fundamental-ngx/core/list';
22
21
  import * as i10 from '@angular/cdk/drag-drop';
@@ -69,7 +68,7 @@ class KanbanTagsComponent extends KanbanBaseComponent {
69
68
  this.tags.splice(index, 1);
70
69
  }
71
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: KanbanTagsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: KanbanTagsComponent, isStandalone: false, 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: i4$1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: KanbanTagsComponent, isStandalone: false, 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", "id"], 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: i4$1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
72
  }
74
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: KanbanTagsComponent, decorators: [{
75
74
  type: Component,
@@ -91,7 +90,7 @@ class KanbanCardComponent extends BaseViewItemPropsComponent {
91
90
  this.moTaskPercentage = Math.floor((this.moFinishedTasksCount / this.moTasksCount) * 100);
92
91
  }
93
92
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: KanbanCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: KanbanCardComponent, isStandalone: false, 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$1.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$1.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$1.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i2$1.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i2$1.CardExtendedHeaderComponent, selector: "fd-card-extended-header", inputs: ["ariaRoleDescription", "align"] }, { kind: "directive", type: i2$1.CardHeaderRowDirective, selector: "[fd-card-header-row]" }, { kind: "directive", type: i2$1.CardHeaderColumnDirective, selector: "[fd-card-header-column]", inputs: ["align"] }, { kind: "directive", type: i2$1.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i2$1.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "directive", type: i2$1.CardCounterDirective, selector: "[fd-card-counter]", inputs: ["statusInput"] }, { kind: "component", type: i3$1.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["cellEdit", "column", "allColumns", "mo", "index", "editMode", "attachmentViewType", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i3$1.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i4$1.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i4$1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i4$1.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i4$1.FindColumnByDbNamePipe, name: "findColumnByDbName" }, { kind: "pipe", type: i4$1.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i4$1.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: KanbanCardComponent, isStandalone: false, 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$1.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "interactive", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i2$1.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$1.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i2$1.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i2$1.CardExtendedHeaderComponent, selector: "fd-card-extended-header", inputs: ["ariaRoleDescription", "align"] }, { kind: "directive", type: i2$1.CardHeaderRowDirective, selector: "[fd-card-header-row]" }, { kind: "directive", type: i2$1.CardHeaderColumnDirective, selector: "[fd-card-header-column]", inputs: ["align"] }, { kind: "directive", type: i2$1.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i2$1.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "directive", type: i2$1.CardCounterDirective, selector: "[fd-card-counter]", inputs: ["statusInput"] }, { kind: "component", type: i3$1.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["cellEdit", "column", "allColumns", "mo", "index", "editMode", "attachmentViewType", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i3$1.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i4$1.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i4$1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i4$1.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i4$1.FindColumnByDbNamePipe, name: "findColumnByDbName" }, { kind: "pipe", type: i4$1.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i4$1.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
94
  }
96
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: KanbanCardComponent, decorators: [{
97
96
  type: Component,
@@ -151,7 +150,7 @@ class BarsaAvatarGroupComponent extends KanbanBaseComponent {
151
150
  }
152
151
  }
153
152
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BarsaAvatarGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BarsaAvatarGroupComponent, isStandalone: false, 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>&nbsp;</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$1.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$2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size", "role"] }, { kind: "directive", type: i2$2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2$2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i2$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4$2.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4$2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], 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: i4$1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i4$1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BarsaAvatarGroupComponent, isStandalone: false, 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>&nbsp;</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$1.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "interactive", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i2$2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "clear", "size", "role"] }, { kind: "directive", type: i2$2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2$2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i2$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class", "id"], exportAs: ["fd-button"] }, { kind: "component", type: i4$2.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4$2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { 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: i4$1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i4$1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
155
154
  }
156
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BarsaAvatarGroupComponent, decorators: [{
157
156
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"barsa-kanban.mjs","sources":["../../../projects/barsa-kanban/src/lib/kanban-base/kanban-base.component.ts","../../../projects/barsa-kanban/src/lib/kanban-base/kanban-base.component.html","../../../projects/barsa-kanban/src/lib/kanban-tags/kanban-tags.component.ts","../../../projects/barsa-kanban/src/lib/kanban-tags/kanban-tags.component.html","../../../projects/barsa-kanban/src/lib/kanban-card/kanban-card.component.ts","../../../projects/barsa-kanban/src/lib/kanban-card/kanban-card.component.html","../../../projects/barsa-kanban/src/lib/avatar-group/barsa-avatar-group.component.ts","../../../projects/barsa-kanban/src/lib/avatar-group/barsa-avatar-group.component.html","../../../projects/barsa-kanban/src/lib/kanban-view/kanban-view.component.ts","../../../projects/barsa-kanban/src/lib/kanban-view/kanban-view.component.html","../../../projects/barsa-kanban/src/lib/barsa-kanban.module.ts","../../../projects/barsa-kanban/src/barsa-kanban.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { BaseComponent } from 'barsa-novin-ray-core';\r\nimport { PopoverComponent } from '@fundamental-ngx/core';\r\n\r\n@Component({\r\n selector: 'bk-kanban-base',\r\n templateUrl: './kanban-base.component.html',\r\n styleUrls: ['./kanban-base.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanBaseComponent extends BaseComponent {\r\n openPopover(e, popover: PopoverComponent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n popover.toggle();\r\n }\r\n\r\n closePopover(popover: PopoverComponent): void {\r\n popover.close();\r\n }\r\n}\r\n","<p>kanban-base works!</p>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { KanbanBaseComponent } from '../kanban-base/kanban-base.component';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\nimport { MetaobjectDataModel } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n selector: 'bk-kanban-tags',\r\n templateUrl: './kanban-tags.component.html',\r\n styleUrls: ['./kanban-tags.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanTagsComponent extends KanbanBaseComponent {\r\n @Input() tags: MetaobjectDataModel[];\r\n @Input() viewSetting: KanbanViewSetting;\r\n colorList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];\r\n currentTagLabel = '';\r\n selectedColor = '';\r\n\r\n colorClick(color: string): void {\r\n this.selectedColor = color;\r\n }\r\n\r\n addTag(): void {\r\n const newTag: MetaobjectDataModel = { Id: '', $Caption: '' };\r\n newTag[this.viewSetting.TagColor] = this.selectedColor;\r\n newTag[this.viewSetting.TagName] = this.currentTagLabel;\r\n this.tags.push(newTag);\r\n this.currentTagLabel = '';\r\n this.selectedColor = '';\r\n }\r\n\r\n deleteTag(index: number): void {\r\n this.tags.splice(index, 1);\r\n }\r\n}\r\n","<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=\" نام\" />\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","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { BaseViewItemPropsComponent, FormPanelService, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\n\r\n@Component({\r\n selector: 'bk-kanban-card',\r\n templateUrl: './kanban-card.component.html',\r\n styleUrls: ['./kanban-card.component.scss'],\r\n providers: [FormPanelService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanCardComponent extends BaseViewItemPropsComponent implements OnInit {\r\n @Input() index: number;\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() viewSetting: KanbanViewSetting;\r\n @Input() allAvailableAssignees: MetaobjectDataModel[];\r\n\r\n moTasksCount = 4;\r\n moFinishedTasksCount = 2;\r\n moTaskPercentage;\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.moTaskPercentage = Math.floor((this.moFinishedTasksCount / this.moTasksCount) * 100);\r\n }\r\n}\r\n","<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","import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';\r\n\r\nimport { ENTER, ESCAPE, SPACE, TAB } from '@angular/cdk/keycodes';\r\nimport { KeyUtil, Size } from '@fundamental-ngx/core/utils';\r\nimport { AvatarGroupComponent, PopoverBodyComponent, PopoverComponent } from '@fundamental-ngx/core';\r\nimport { KanbanBaseComponent } from '../kanban-base/kanban-base.component';\r\nimport { MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\n\r\n@Component({\r\n selector: 'bk-avatar-group',\r\n templateUrl: './barsa-avatar-group.component.html',\r\n styleUrls: ['./barsa-avatar-group.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class BarsaAvatarGroupComponent extends KanbanBaseComponent {\r\n @ViewChild('overflowPopoverBody')\r\n popoverBodyComponent: PopoverBodyComponent;\r\n @ViewChild(AvatarGroupComponent, { static: true, read: AvatarGroupComponent }) avatarGroupCom: AvatarGroupComponent;\r\n @Input() existedItems: MetaobjectDataModel[];\r\n @Input() availableItems: MetaobjectDataModel[];\r\n @Input() viewSetting: KanbanViewSetting;\r\n @Input() visibleFields: string[] = [];\r\n @Input() addItem: boolean;\r\n @Input() size: Size = 'l';\r\n\r\n personDetails: any = null;\r\n overflowPopoverStage: 'main' | 'detail' = 'main';\r\n overflowItemsCount;\r\n get isDetailStage(): boolean {\r\n return this.overflowPopoverStage === 'detail';\r\n }\r\n\r\n isOpenChanged(isOpened: boolean): void {\r\n if (isOpened) {\r\n this.openOverflowMain();\r\n }\r\n }\r\n\r\n newItem(newItem): void {\r\n const exist = this.existedItems.find((item) => item.Id === newItem.Id);\r\n if (!exist) {\r\n this.existedItems.push(newItem);\r\n }\r\n }\r\n\r\n deleteAvatar(idx: number): void {\r\n this.existedItems.splice(idx, 1);\r\n }\r\n\r\n openOverflowMain(): void {\r\n this.personDetails = null;\r\n this.overflowPopoverStage = 'main';\r\n\r\n setTimeout(() => this.popoverBodyComponent?._focusFirstTabbableElement(), 0);\r\n }\r\n\r\n handleControlClick(_event: MouseEvent, popover: PopoverComponent): void {\r\n popover.open();\r\n }\r\n\r\n handleControlKeydown(event: KeyboardEvent, popover: PopoverComponent): void {\r\n if (!KeyUtil.isKeyCode(event, [ESCAPE, TAB, SPACE, ENTER])) {\r\n return;\r\n }\r\n\r\n if (KeyUtil.isKeyCode(event, [ESCAPE, TAB])) {\r\n popover.close();\r\n }\r\n\r\n if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\r\n popover.open();\r\n }\r\n }\r\n}\r\n","<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>&nbsp;</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","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n inject,\r\n Input,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n signal\r\n} from '@angular/core';\r\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\r\n\r\nimport { MetaobjectDataModel, MultipleGroupByPipe, ReportViewBaseComponent, SortDirection } from 'barsa-novin-ray-core';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\nimport { DropInfo } from '../Models/drop-info';\r\n\r\n@Component({\r\n selector: 'bk-kanban-view',\r\n templateUrl: './kanban-view.component.html',\r\n styleUrls: ['./kanban-view.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanViewComponent extends ReportViewBaseComponent<KanbanViewSetting> implements OnInit {\r\n @ViewChild('inputEl', { read: ElementRef }) inputEl: ElementRef<any>;\r\n @Input() kanbanColumns: MetaobjectDataModel[];\r\n @Input() groupbyProperty = 'State';\r\n dropActionTodo: DropInfo;\r\n allAvailableAssignees: MetaobjectDataModel[];\r\n isNewColumnMode = false;\r\n newCard: any = { Id: null, $Caption: null };\r\n newColumn: any = { Id: null, $Caption: null };\r\n _multipleGroup = inject(MultipleGroupByPipe);\r\n groupedMoList = signal({});\r\n sceneConfig = {\r\n scene: { url: 'assets/images/sapIllus-Scene-NoMail.svg', id: 'sapIllus-Scene-NoMail-1' },\r\n dialog: { url: 'assets/images/sapIllus-Dialog-NoMail.svg', id: 'sapIllus-Dialog-NoMail' }\r\n };\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n const columnsReport = this.viewSetting.ColumnsReport;\r\n this._portalService.ReportExecuteById(columnsReport?.Id).subscribe((report) => {\r\n this.kanbanColumns = report.MoDataList;\r\n this._changeDetect();\r\n });\r\n // this.formSetting.View.ControlInfo.forEach((c) => (c.InlineEditMode = true));\r\n const assigneesReport = this.viewSetting.AssigneesReport?.$Caption;\r\n if (assigneesReport) {\r\n this._portalService.ReportExecute(assigneesReport).subscribe((report) => {\r\n this.allAvailableAssignees = report.MoDataList;\r\n this._changeDetect();\r\n });\r\n }\r\n this.viewSetting = {\r\n ...this.viewSetting,\r\n ...this._findColumn(this.allColumns, [\r\n this.viewSetting.Cover,\r\n this.viewSetting.State,\r\n this.viewSetting.Caption\r\n ])\r\n };\r\n this._prepareGroupMoList(this.moDataList);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n super.ngOnChanges(changes);\r\n const { moDataList } = changes;\r\n if (moDataList && !moDataList.firstChange) {\r\n this._prepareGroupMoList(moDataList.currentValue);\r\n }\r\n }\r\n _prepareGroupMoList(molist: MetaobjectDataModel[]): void {\r\n const column = this._findColumnByDbName.transform(this.allColumns, this.viewSetting.State);\r\n const name = column?.Name || this.viewSetting.State;\r\n const dict = {};\r\n const s: any[] = this._multipleGroup.transform(molist, [\r\n {\r\n IsGrouped: true,\r\n Name: name,\r\n SortDirection: SortDirection.ASC\r\n }\r\n ]);\r\n s.forEach((c) => {\r\n if (c.$Group) {\r\n dict[c.$Group] = c.$Children;\r\n }\r\n });\r\n this.groupedMoList.set(dict);\r\n }\r\n\r\n onAddNewColumn(): void {\r\n this.kanbanColumns.push(this.newColumn);\r\n this._cdr.detectChanges();\r\n this._resetNewColumn();\r\n this._scrollInputIntoView();\r\n }\r\n\r\n onActiveNewColumnMode(): void {\r\n this._changeNewColumnMode(true);\r\n }\r\n\r\n onCancelNewColumn(): void {\r\n this._changeNewColumnMode(false);\r\n this._resetNewColumn();\r\n }\r\n\r\n onInitNewCard(groupby: string): void {\r\n this._resetNewCard();\r\n this.newCard[this.groupbyProperty] = groupby;\r\n }\r\n\r\n onAddNewCard(e): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this._addNewCard();\r\n }\r\n\r\n onNewCardInputFocusout(): void {\r\n if (this.newCard.$Caption) {\r\n this._addNewCard();\r\n } else {\r\n this._cancelNewCard();\r\n }\r\n }\r\n\r\n onCancelNewCard(e: MouseEvent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this._cancelNewCard();\r\n }\r\n\r\n onDrop(event, isColumn?: boolean): void {\r\n let previousIndex;\r\n let currentIndex;\r\n const array = event.container.data;\r\n\r\n if (isColumn) {\r\n previousIndex = event.previousIndex;\r\n currentIndex = event.currentIndex;\r\n } else {\r\n const draggedItemId = this.dropActionTodo.draggedId;\r\n if (!draggedItemId) {\r\n return;\r\n }\r\n const draggedItem = this._getMoById(draggedItemId);\r\n const targetState = this.dropActionTodo.targetState;\r\n previousIndex = array.indexOf(draggedItem);\r\n currentIndex = this.dropActionTodo.targetIndex;\r\n draggedItem.State = targetState;\r\n this._stopDragging();\r\n }\r\n\r\n moveItemInArray(array, previousIndex, currentIndex);\r\n }\r\n\r\n onDragMove(event, draggedMo, draggedIndex: number, targetState: MetaobjectDataModel): void {\r\n const elementFromPoint = document.elementFromPoint(event.pointerPosition.x, event.pointerPosition.y);\r\n\r\n if (targetState) {\r\n }\r\n if (!elementFromPoint) {\r\n this._stopDragging();\r\n return;\r\n }\r\n const targetNodeElement = elementFromPoint.closest('[state]');\r\n if (!targetNodeElement) {\r\n this._stopDragging();\r\n return;\r\n }\r\n this.dropActionTodo = {\r\n draggedId: draggedMo.Id,\r\n targetId: targetNodeElement.getAttribute('id'),\r\n targetState: null,\r\n targetIndex: Number(targetNodeElement.getAttribute('index'))\r\n };\r\n const targetRect = targetNodeElement.getBoundingClientRect();\r\n const oneThird = targetRect.height / 3;\r\n\r\n const isCardTarget = !targetNodeElement.classList.contains('column');\r\n\r\n const isBefore = event.pointerPosition.y - targetRect.top < oneThird && isCardTarget;\r\n\r\n const isAfter = event.pointerPosition.y - targetRect.top > 2 * oneThird && isCardTarget;\r\n\r\n const isInside = !isCardTarget;\r\n\r\n const targetIndex = this.dropActionTodo.targetIndex ?? -1;\r\n const targetMo = this.moDataList[targetIndex];\r\n\r\n if (isCardTarget) {\r\n this.dropActionTodo.targetState = targetMo[this.viewSetting.State];\r\n } else {\r\n const state = targetNodeElement.getAttribute('state');\r\n const moid = targetNodeElement.getAttribute('id');\r\n state !== null &&\r\n moid !== null &&\r\n (this.dropActionTodo.targetState = {\r\n $Caption: state,\r\n Id: moid,\r\n $TypeDefId: draggedMo[this.viewSetting.State]?.$TypeDefId\r\n });\r\n }\r\n if (isBefore) {\r\n this.dropActionTodo.action = 'before';\r\n this.dropActionTodo.targetIndex = draggedIndex > targetIndex ? targetIndex : targetIndex - 1;\r\n } else if (isAfter) {\r\n this.dropActionTodo.action = 'after';\r\n this.dropActionTodo.targetIndex = draggedIndex < targetIndex ? targetIndex : targetIndex + 1;\r\n } else if (isInside) {\r\n this.dropActionTodo.action = 'inside';\r\n this.dropActionTodo.targetIndex = 0;\r\n } \r\n this._showDragInfo();\r\n }\r\n private _changeDetect(): void {\r\n this._cdr.detectChanges();\r\n }\r\n\r\n private _stopDragging(): void {\r\n this._clearDragInfo();\r\n this._resetDropActionTodo();\r\n }\r\n\r\n private _changeNewColumnMode(mode: boolean): void {\r\n this.isNewColumnMode = mode;\r\n }\r\n\r\n private _resetDropActionTodo(): void {\r\n this.dropActionTodo = {\r\n targetId: null,\r\n draggedId: null,\r\n targetState: null,\r\n targetIndex: null,\r\n action: null\r\n };\r\n }\r\n\r\n private _scrollInputIntoView(): void {\r\n const inputEl: HTMLInputElement = this.inputEl.nativeElement;\r\n inputEl.focus();\r\n inputEl.scrollIntoView({ inline: 'end' });\r\n }\r\n\r\n private _resetNewColumn(): void {\r\n this.newColumn = { Id: '', $Caption: '' };\r\n }\r\n\r\n private _clearDragInfo(dropped = false): void {\r\n if (dropped) {\r\n this._resetDropActionTodo();\r\n }\r\n const elDom = this._el.nativeElement;\r\n elDom\r\n .querySelectorAll('.drop-before')\r\n .forEach((element) => this._renderer2.removeClass(element, 'drop-before'));\r\n elDom.querySelectorAll('.drop-after').forEach((element) => this._renderer2.removeClass(element, 'drop-after'));\r\n elDom\r\n .querySelectorAll('.drop-inside')\r\n .forEach((element) => this._renderer2.removeClass(element, 'drop-inside'));\r\n }\r\n\r\n private _showDragInfo(): void {\r\n this._clearDragInfo();\r\n if (this.dropActionTodo.targetId) {\r\n const targetNodeElement = this._el.nativeElement.querySelector('#' + this.dropActionTodo.targetId);\r\n if (!targetNodeElement) {\r\n this._resetDropActionTodo();\r\n return;\r\n }\r\n this._renderer2.addClass(targetNodeElement, 'drop-' + this.dropActionTodo?.action);\r\n }\r\n }\r\n\r\n private _addNewCard(): void {\r\n this.moDataList.push(this.newCard);\r\n const currentGroupby = this.newCard[this.groupbyProperty];\r\n this.onInitNewCard(currentGroupby);\r\n }\r\n\r\n private _resetNewCard(): void {\r\n this.newCard = { Id: null, $Caption: null };\r\n }\r\n\r\n private _cancelNewCard(): void {\r\n this._resetNewCard();\r\n }\r\n\r\n private _getMoById(id: string): MetaobjectDataModel {\r\n return this.moDataList.find((c) => c.Id === id);\r\n }\r\n\r\n private _findColumn(_allColumns, columnsName: string[]): object {\r\n const columns = {};\r\n columnsName.forEach((name) => {\r\n columns[name + 'Column'] = this._findColumnByDbName.transform(this.allColumns, name);\r\n });\r\n return columns;\r\n }\r\n}\r\n","<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 [cdkDropListDisabled]=\"viewSetting.CanReorder\"\r\n [cdkDropListSortingDisabled]=\"true\"\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 [cdkDropListDisabled]=\"viewSetting.CanReorder\"\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]=\"'افزودن'\"\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 کارت جدید\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 [cdkDropListDisabled]=\"viewSetting.CanReorder\"\r\n [cdkDragDisabled]=\"true\"\r\n >\r\n </bk-kanban-card>\r\n } }@else{\r\n <h3 fd-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n }\r\n</ng-template>\r\n","import { ComponentFactoryResolver, NgModule, NO_ERRORS_SCHEMA, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BarsaNovinRayCoreModule, BaseModule, DynamicComponentService } from 'barsa-novin-ray-core';\r\nimport { KanbanViewComponent } from './kanban-view/kanban-view.component';\r\nimport { FundamentalNgxCoreModule } from '@fundamental-ngx/core';\r\nimport { BarsaAvatarGroupComponent } from './avatar-group/barsa-avatar-group.component';\r\n\r\nimport { BarsaEchartsModule } from 'barsa-echarts';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { KanbanCardComponent } from './kanban-card/kanban-card.component';\r\nimport { KanbanTagsComponent } from './kanban-tags/kanban-tags.component';\r\nimport { KanbanBaseComponent } from './kanban-base/kanban-base.component';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { BarsaSapUiModule } from 'barsa-sap-ui';\r\nimport { PlatformMenuModule } from '@fundamental-ngx/platform';\r\n\r\nconst components = [\r\n KanbanViewComponent,\r\n BarsaAvatarGroupComponent,\r\n KanbanCardComponent,\r\n KanbanTagsComponent,\r\n KanbanBaseComponent\r\n];\r\n\r\n@NgModule({\r\n declarations: [...components],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n BarsaNovinRayCoreModule,\r\n FundamentalNgxCoreModule,\r\n PlatformMenuModule,\r\n BarsaEchartsModule,\r\n BarsaSapUiModule,\r\n FormsModule,\r\n DragDropModule\r\n ],\r\n providers: [provideHttpClient(withInterceptorsFromDi())]\r\n})\r\nexport class BarsaKanbanModule extends BaseModule {\r\n protected dcm: DynamicComponentService;\r\n protected componentFactoryResolver: ComponentFactoryResolver;\r\n\r\n protected dynamicComponents = [...components];\r\n\r\n /** Inserted by Angular inject() migration for backwards compatibility */\r\n \r\n\r\n constructor() {\r\n const dcm = inject(DynamicComponentService);\r\n const componentFactoryResolver = inject(ComponentFactoryResolver);\r\n\r\n super(dcm, componentFactoryResolver, 'BarsaKanbanModule');\r\n \r\n this.dcm = dcm;\r\n this.componentFactoryResolver = componentFactoryResolver;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i7","i1","i2","i3","i4","i6","i5","i9","i11.KanbanCardComponent"],"mappings":"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"}
1
+ {"version":3,"file":"barsa-kanban.mjs","sources":["../../../projects/barsa-kanban/src/lib/kanban-base/kanban-base.component.ts","../../../projects/barsa-kanban/src/lib/kanban-base/kanban-base.component.html","../../../projects/barsa-kanban/src/lib/kanban-tags/kanban-tags.component.ts","../../../projects/barsa-kanban/src/lib/kanban-tags/kanban-tags.component.html","../../../projects/barsa-kanban/src/lib/kanban-card/kanban-card.component.ts","../../../projects/barsa-kanban/src/lib/kanban-card/kanban-card.component.html","../../../projects/barsa-kanban/src/lib/avatar-group/barsa-avatar-group.component.ts","../../../projects/barsa-kanban/src/lib/avatar-group/barsa-avatar-group.component.html","../../../projects/barsa-kanban/src/lib/kanban-view/kanban-view.component.ts","../../../projects/barsa-kanban/src/lib/kanban-view/kanban-view.component.html","../../../projects/barsa-kanban/src/lib/barsa-kanban.module.ts","../../../projects/barsa-kanban/src/barsa-kanban.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { BaseComponent } from 'barsa-novin-ray-core';\r\nimport { PopoverComponent } from '@fundamental-ngx/core';\r\n\r\n@Component({\r\n selector: 'bk-kanban-base',\r\n templateUrl: './kanban-base.component.html',\r\n styleUrls: ['./kanban-base.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanBaseComponent extends BaseComponent {\r\n openPopover(e, popover: PopoverComponent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n popover.toggle();\r\n }\r\n\r\n closePopover(popover: PopoverComponent): void {\r\n popover.close();\r\n }\r\n}\r\n","<p>kanban-base works!</p>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { KanbanBaseComponent } from '../kanban-base/kanban-base.component';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\nimport { MetaobjectDataModel } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n selector: 'bk-kanban-tags',\r\n templateUrl: './kanban-tags.component.html',\r\n styleUrls: ['./kanban-tags.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanTagsComponent extends KanbanBaseComponent {\r\n @Input() tags: MetaobjectDataModel[];\r\n @Input() viewSetting: KanbanViewSetting;\r\n colorList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];\r\n currentTagLabel = '';\r\n selectedColor = '';\r\n\r\n colorClick(color: string): void {\r\n this.selectedColor = color;\r\n }\r\n\r\n addTag(): void {\r\n const newTag: MetaobjectDataModel = { Id: '', $Caption: '' };\r\n newTag[this.viewSetting.TagColor] = this.selectedColor;\r\n newTag[this.viewSetting.TagName] = this.currentTagLabel;\r\n this.tags.push(newTag);\r\n this.currentTagLabel = '';\r\n this.selectedColor = '';\r\n }\r\n\r\n deleteTag(index: number): void {\r\n this.tags.splice(index, 1);\r\n }\r\n}\r\n","<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=\" نام\" />\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","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { BaseViewItemPropsComponent, FormPanelService, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\n\r\n@Component({\r\n selector: 'bk-kanban-card',\r\n templateUrl: './kanban-card.component.html',\r\n styleUrls: ['./kanban-card.component.scss'],\r\n providers: [FormPanelService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanCardComponent extends BaseViewItemPropsComponent implements OnInit {\r\n @Input() index: number;\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() viewSetting: KanbanViewSetting;\r\n @Input() allAvailableAssignees: MetaobjectDataModel[];\r\n\r\n moTasksCount = 4;\r\n moFinishedTasksCount = 2;\r\n moTaskPercentage;\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.moTaskPercentage = Math.floor((this.moFinishedTasksCount / this.moTasksCount) * 100);\r\n }\r\n}\r\n","<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","import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';\r\n\r\nimport { ENTER, ESCAPE, SPACE, TAB } from '@angular/cdk/keycodes';\r\nimport { AvatarGroupComponent, KeyUtil, PopoverBodyComponent, PopoverComponent, Size } from '@fundamental-ngx/core';\r\nimport { KanbanBaseComponent } from '../kanban-base/kanban-base.component';\r\nimport { MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\n\r\n@Component({\r\n selector: 'bk-avatar-group',\r\n templateUrl: './barsa-avatar-group.component.html',\r\n styleUrls: ['./barsa-avatar-group.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class BarsaAvatarGroupComponent extends KanbanBaseComponent {\r\n @ViewChild('overflowPopoverBody')\r\n popoverBodyComponent: PopoverBodyComponent;\r\n @ViewChild(AvatarGroupComponent, { static: true, read: AvatarGroupComponent }) avatarGroupCom: AvatarGroupComponent;\r\n @Input() existedItems: MetaobjectDataModel[];\r\n @Input() availableItems: MetaobjectDataModel[];\r\n @Input() viewSetting: KanbanViewSetting;\r\n @Input() visibleFields: string[] = [];\r\n @Input() addItem: boolean;\r\n @Input() size: Size = 'l';\r\n\r\n personDetails: any = null;\r\n overflowPopoverStage: 'main' | 'detail' = 'main';\r\n overflowItemsCount;\r\n get isDetailStage(): boolean {\r\n return this.overflowPopoverStage === 'detail';\r\n }\r\n\r\n isOpenChanged(isOpened: boolean): void {\r\n if (isOpened) {\r\n this.openOverflowMain();\r\n }\r\n }\r\n\r\n newItem(newItem): void {\r\n const exist = this.existedItems.find((item) => item.Id === newItem.Id);\r\n if (!exist) {\r\n this.existedItems.push(newItem);\r\n }\r\n }\r\n\r\n deleteAvatar(idx: number): void {\r\n this.existedItems.splice(idx, 1);\r\n }\r\n\r\n openOverflowMain(): void {\r\n this.personDetails = null;\r\n this.overflowPopoverStage = 'main';\r\n\r\n setTimeout(() => this.popoverBodyComponent?._focusFirstTabbableElement(), 0);\r\n }\r\n\r\n handleControlClick(_event: MouseEvent, popover: PopoverComponent): void {\r\n popover.open();\r\n }\r\n\r\n handleControlKeydown(event: KeyboardEvent, popover: PopoverComponent): void {\r\n if (!KeyUtil.isKeyCode(event, [ESCAPE, TAB, SPACE, ENTER])) {\r\n return;\r\n }\r\n\r\n if (KeyUtil.isKeyCode(event, [ESCAPE, TAB])) {\r\n popover.close();\r\n }\r\n\r\n if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\r\n popover.open();\r\n }\r\n }\r\n}\r\n","<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>&nbsp;</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","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n inject,\r\n Input,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n signal\r\n} from '@angular/core';\r\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\r\n\r\nimport { MetaobjectDataModel, MultipleGroupByPipe, ReportViewBaseComponent, SortDirection } from 'barsa-novin-ray-core';\r\nimport { KanbanViewSetting } from '../Models/kanban-view-setting.interface';\r\nimport { DropInfo } from '../Models/drop-info';\r\n\r\n@Component({\r\n selector: 'bk-kanban-view',\r\n templateUrl: './kanban-view.component.html',\r\n styleUrls: ['./kanban-view.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class KanbanViewComponent extends ReportViewBaseComponent<KanbanViewSetting> implements OnInit {\r\n @ViewChild('inputEl', { read: ElementRef }) inputEl: ElementRef<any>;\r\n @Input() kanbanColumns: MetaobjectDataModel[];\r\n @Input() groupbyProperty = 'State';\r\n dropActionTodo: DropInfo;\r\n allAvailableAssignees: MetaobjectDataModel[];\r\n isNewColumnMode = false;\r\n newCard: any = { Id: null, $Caption: null };\r\n newColumn: any = { Id: null, $Caption: null };\r\n _multipleGroup = inject(MultipleGroupByPipe);\r\n groupedMoList = signal({});\r\n sceneConfig = {\r\n scene: { url: 'assets/images/sapIllus-Scene-NoMail.svg', id: 'sapIllus-Scene-NoMail-1' },\r\n dialog: { url: 'assets/images/sapIllus-Dialog-NoMail.svg', id: 'sapIllus-Dialog-NoMail' }\r\n };\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n const columnsReport = this.viewSetting.ColumnsReport;\r\n this._portalService.ReportExecuteById(columnsReport?.Id).subscribe((report) => {\r\n this.kanbanColumns = report.MoDataList;\r\n this._changeDetect();\r\n });\r\n // this.formSetting.View.ControlInfo.forEach((c) => (c.InlineEditMode = true));\r\n const assigneesReport = this.viewSetting.AssigneesReport?.$Caption;\r\n if (assigneesReport) {\r\n this._portalService.ReportExecute(assigneesReport).subscribe((report) => {\r\n this.allAvailableAssignees = report.MoDataList;\r\n this._changeDetect();\r\n });\r\n }\r\n this.viewSetting = {\r\n ...this.viewSetting,\r\n ...this._findColumn(this.allColumns, [\r\n this.viewSetting.Cover,\r\n this.viewSetting.State,\r\n this.viewSetting.Caption\r\n ])\r\n };\r\n this._prepareGroupMoList(this.moDataList);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n super.ngOnChanges(changes);\r\n const { moDataList } = changes;\r\n if (moDataList && !moDataList.firstChange) {\r\n this._prepareGroupMoList(moDataList.currentValue);\r\n }\r\n }\r\n _prepareGroupMoList(molist: MetaobjectDataModel[]): void {\r\n const column = this._findColumnByDbName.transform(this.allColumns, this.viewSetting.State);\r\n const name = column?.Name || this.viewSetting.State;\r\n const dict = {};\r\n const s: any[] = this._multipleGroup.transform(molist, [\r\n {\r\n IsGrouped: true,\r\n Name: name,\r\n SortDirection: SortDirection.ASC\r\n }\r\n ]);\r\n s.forEach((c) => {\r\n if (c.$Group) {\r\n dict[c.$Group] = c.$Children;\r\n }\r\n });\r\n this.groupedMoList.set(dict);\r\n }\r\n\r\n onAddNewColumn(): void {\r\n this.kanbanColumns.push(this.newColumn);\r\n this._cdr.detectChanges();\r\n this._resetNewColumn();\r\n this._scrollInputIntoView();\r\n }\r\n\r\n onActiveNewColumnMode(): void {\r\n this._changeNewColumnMode(true);\r\n }\r\n\r\n onCancelNewColumn(): void {\r\n this._changeNewColumnMode(false);\r\n this._resetNewColumn();\r\n }\r\n\r\n onInitNewCard(groupby: string): void {\r\n this._resetNewCard();\r\n this.newCard[this.groupbyProperty] = groupby;\r\n }\r\n\r\n onAddNewCard(e): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this._addNewCard();\r\n }\r\n\r\n onNewCardInputFocusout(): void {\r\n if (this.newCard.$Caption) {\r\n this._addNewCard();\r\n } else {\r\n this._cancelNewCard();\r\n }\r\n }\r\n\r\n onCancelNewCard(e: MouseEvent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this._cancelNewCard();\r\n }\r\n\r\n onDrop(event, isColumn?: boolean): void {\r\n let previousIndex;\r\n let currentIndex;\r\n const array = event.container.data;\r\n\r\n if (isColumn) {\r\n previousIndex = event.previousIndex;\r\n currentIndex = event.currentIndex;\r\n } else {\r\n const draggedItemId = this.dropActionTodo.draggedId;\r\n if (!draggedItemId) {\r\n return;\r\n }\r\n const draggedItem = this._getMoById(draggedItemId);\r\n const targetState = this.dropActionTodo.targetState;\r\n previousIndex = array.indexOf(draggedItem);\r\n currentIndex = this.dropActionTodo.targetIndex;\r\n draggedItem.State = targetState;\r\n this._stopDragging();\r\n }\r\n\r\n moveItemInArray(array, previousIndex, currentIndex);\r\n }\r\n\r\n onDragMove(event, draggedMo, draggedIndex: number, targetState: MetaobjectDataModel): void {\r\n const elementFromPoint = document.elementFromPoint(event.pointerPosition.x, event.pointerPosition.y);\r\n\r\n if (targetState) {\r\n }\r\n if (!elementFromPoint) {\r\n this._stopDragging();\r\n return;\r\n }\r\n const targetNodeElement = elementFromPoint.closest('[state]');\r\n if (!targetNodeElement) {\r\n this._stopDragging();\r\n return;\r\n }\r\n this.dropActionTodo = {\r\n draggedId: draggedMo.Id,\r\n targetId: targetNodeElement.getAttribute('id'),\r\n targetState: null,\r\n targetIndex: Number(targetNodeElement.getAttribute('index'))\r\n };\r\n const targetRect = targetNodeElement.getBoundingClientRect();\r\n const oneThird = targetRect.height / 3;\r\n\r\n const isCardTarget = !targetNodeElement.classList.contains('column');\r\n\r\n const isBefore = event.pointerPosition.y - targetRect.top < oneThird && isCardTarget;\r\n\r\n const isAfter = event.pointerPosition.y - targetRect.top > 2 * oneThird && isCardTarget;\r\n\r\n const isInside = !isCardTarget;\r\n\r\n const targetIndex = this.dropActionTodo.targetIndex ?? -1;\r\n const targetMo = this.moDataList[targetIndex];\r\n\r\n if (isCardTarget) {\r\n this.dropActionTodo.targetState = targetMo[this.viewSetting.State];\r\n } else {\r\n const state = targetNodeElement.getAttribute('state');\r\n const moid = targetNodeElement.getAttribute('id');\r\n state !== null &&\r\n moid !== null &&\r\n (this.dropActionTodo.targetState = {\r\n $Caption: state,\r\n Id: moid,\r\n $TypeDefId: draggedMo[this.viewSetting.State]?.$TypeDefId\r\n });\r\n }\r\n if (isBefore) {\r\n this.dropActionTodo.action = 'before';\r\n this.dropActionTodo.targetIndex = draggedIndex > targetIndex ? targetIndex : targetIndex - 1;\r\n } else if (isAfter) {\r\n this.dropActionTodo.action = 'after';\r\n this.dropActionTodo.targetIndex = draggedIndex < targetIndex ? targetIndex : targetIndex + 1;\r\n } else if (isInside) {\r\n this.dropActionTodo.action = 'inside';\r\n this.dropActionTodo.targetIndex = 0;\r\n } \r\n this._showDragInfo();\r\n }\r\n private _changeDetect(): void {\r\n this._cdr.detectChanges();\r\n }\r\n\r\n private _stopDragging(): void {\r\n this._clearDragInfo();\r\n this._resetDropActionTodo();\r\n }\r\n\r\n private _changeNewColumnMode(mode: boolean): void {\r\n this.isNewColumnMode = mode;\r\n }\r\n\r\n private _resetDropActionTodo(): void {\r\n this.dropActionTodo = {\r\n targetId: null,\r\n draggedId: null,\r\n targetState: null,\r\n targetIndex: null,\r\n action: null\r\n };\r\n }\r\n\r\n private _scrollInputIntoView(): void {\r\n const inputEl: HTMLInputElement = this.inputEl.nativeElement;\r\n inputEl.focus();\r\n inputEl.scrollIntoView({ inline: 'end' });\r\n }\r\n\r\n private _resetNewColumn(): void {\r\n this.newColumn = { Id: '', $Caption: '' };\r\n }\r\n\r\n private _clearDragInfo(dropped = false): void {\r\n if (dropped) {\r\n this._resetDropActionTodo();\r\n }\r\n const elDom = this._el.nativeElement;\r\n elDom\r\n .querySelectorAll('.drop-before')\r\n .forEach((element) => this._renderer2.removeClass(element, 'drop-before'));\r\n elDom.querySelectorAll('.drop-after').forEach((element) => this._renderer2.removeClass(element, 'drop-after'));\r\n elDom\r\n .querySelectorAll('.drop-inside')\r\n .forEach((element) => this._renderer2.removeClass(element, 'drop-inside'));\r\n }\r\n\r\n private _showDragInfo(): void {\r\n this._clearDragInfo();\r\n if (this.dropActionTodo.targetId) {\r\n const targetNodeElement = this._el.nativeElement.querySelector('#' + this.dropActionTodo.targetId);\r\n if (!targetNodeElement) {\r\n this._resetDropActionTodo();\r\n return;\r\n }\r\n this._renderer2.addClass(targetNodeElement, 'drop-' + this.dropActionTodo?.action);\r\n }\r\n }\r\n\r\n private _addNewCard(): void {\r\n this.moDataList.push(this.newCard);\r\n const currentGroupby = this.newCard[this.groupbyProperty];\r\n this.onInitNewCard(currentGroupby);\r\n }\r\n\r\n private _resetNewCard(): void {\r\n this.newCard = { Id: null, $Caption: null };\r\n }\r\n\r\n private _cancelNewCard(): void {\r\n this._resetNewCard();\r\n }\r\n\r\n private _getMoById(id: string): MetaobjectDataModel {\r\n return this.moDataList.find((c) => c.Id === id);\r\n }\r\n\r\n private _findColumn(_allColumns, columnsName: string[]): object {\r\n const columns = {};\r\n columnsName.forEach((name) => {\r\n columns[name + 'Column'] = this._findColumnByDbName.transform(this.allColumns, name);\r\n });\r\n return columns;\r\n }\r\n}\r\n","<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 [cdkDropListDisabled]=\"viewSetting.CanReorder\"\r\n [cdkDropListSortingDisabled]=\"true\"\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 [cdkDropListDisabled]=\"viewSetting.CanReorder\"\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]=\"'افزودن'\"\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 کارت جدید\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 [cdkDropListDisabled]=\"viewSetting.CanReorder\"\r\n [cdkDragDisabled]=\"true\"\r\n >\r\n </bk-kanban-card>\r\n } }@else{\r\n <h3 fd-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n }\r\n</ng-template>\r\n","import { ComponentFactoryResolver, NgModule, NO_ERRORS_SCHEMA, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BarsaNovinRayCoreModule, BaseModule, DynamicComponentService } from 'barsa-novin-ray-core';\r\nimport { KanbanViewComponent } from './kanban-view/kanban-view.component';\r\nimport { FundamentalNgxCoreModule } from '@fundamental-ngx/core';\r\nimport { BarsaAvatarGroupComponent } from './avatar-group/barsa-avatar-group.component';\r\n\r\nimport { BarsaEchartsModule } from 'barsa-echarts';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { KanbanCardComponent } from './kanban-card/kanban-card.component';\r\nimport { KanbanTagsComponent } from './kanban-tags/kanban-tags.component';\r\nimport { KanbanBaseComponent } from './kanban-base/kanban-base.component';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { BarsaSapUiModule } from 'barsa-sap-ui';\r\nimport { PlatformMenuModule } from '@fundamental-ngx/platform';\r\n\r\nconst components = [\r\n KanbanViewComponent,\r\n BarsaAvatarGroupComponent,\r\n KanbanCardComponent,\r\n KanbanTagsComponent,\r\n KanbanBaseComponent\r\n];\r\n\r\n@NgModule({\r\n declarations: [...components],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n BarsaNovinRayCoreModule,\r\n FundamentalNgxCoreModule,\r\n PlatformMenuModule,\r\n BarsaEchartsModule,\r\n BarsaSapUiModule,\r\n FormsModule,\r\n DragDropModule\r\n ],\r\n providers: [provideHttpClient(withInterceptorsFromDi())]\r\n})\r\nexport class BarsaKanbanModule extends BaseModule {\r\n protected dcm: DynamicComponentService;\r\n protected componentFactoryResolver: ComponentFactoryResolver;\r\n\r\n protected dynamicComponents = [...components];\r\n\r\n /** Inserted by Angular inject() migration for backwards compatibility */\r\n \r\n\r\n constructor() {\r\n const dcm = inject(DynamicComponentService);\r\n const componentFactoryResolver = inject(ComponentFactoryResolver);\r\n\r\n super(dcm, componentFactoryResolver, 'BarsaKanbanModule');\r\n \r\n this.dcm = dcm;\r\n this.componentFactoryResolver = componentFactoryResolver;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i7","i1","i2","i3","i4","i6","i5","i9","i11.KanbanCardComponent"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  import * as i7 from 'barsa-novin-ray-core';
2
2
  import { BaseComponent, UiReportViewBaseSetting, MetaobjectDataModel, BaseViewItemPropsComponent, ReportViewBaseComponent, MultipleGroupByPipe, BaseModule, DynamicComponentService } from 'barsa-novin-ray-core';
3
3
  import * as i8 from '@fundamental-ngx/core';
4
- import { PopoverComponent, PopoverBodyComponent, AvatarGroupComponent } from '@fundamental-ngx/core';
4
+ import { PopoverComponent, PopoverBodyComponent, AvatarGroupComponent, Size } from '@fundamental-ngx/core';
5
5
  import * as i0 from '@angular/core';
6
6
  import { OnInit, ElementRef, SimpleChanges, ComponentFactoryResolver } from '@angular/core';
7
- import { Size } from '@fundamental-ngx/core/utils';
8
7
  import * as i6 from '@angular/common';
9
8
  import * as i9 from '@fundamental-ngx/platform';
10
9
  import * as i10 from 'barsa-echarts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "barsa-kanban",
3
- "version": "2.3.104",
3
+ "version": "2.3.107",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^20.0.6",
6
6
  "@angular/common": "^20.0.6"