@seniorsistemas/angular-components 17.9.1 → 17.9.2

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.
Files changed (25) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +50 -14
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/kanban/components/kanban-column/kanban-column.component.d.ts +2 -0
  6. package/components/kanban/components/kanban-item/kanban-item.component.d.ts +7 -4
  7. package/components/kanban/kanban.component.d.ts +7 -5
  8. package/components/kanban/models/index.d.ts +1 -1
  9. package/components/kanban/models/kanban-data.d.ts +9 -2
  10. package/esm2015/components/kanban/components/kanban-column/kanban-column.component.js +14 -2
  11. package/esm2015/components/kanban/components/kanban-item/kanban-item.component.js +20 -6
  12. package/esm2015/components/kanban/kanban.component.js +26 -18
  13. package/esm2015/components/kanban/models/index.js +1 -1
  14. package/esm2015/components/kanban/models/kanban-data.js +1 -1
  15. package/esm5/components/kanban/components/kanban-column/kanban-column.component.js +16 -3
  16. package/esm5/components/kanban/components/kanban-item/kanban-item.component.js +22 -7
  17. package/esm5/components/kanban/kanban.component.js +26 -18
  18. package/esm5/components/kanban/models/index.js +1 -1
  19. package/esm5/components/kanban/models/kanban-data.js +1 -1
  20. package/fesm2015/seniorsistemas-angular-components.js +48 -14
  21. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  22. package/fesm5/seniorsistemas-angular-components.js +50 -14
  23. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  24. package/package.json +1 -1
  25. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -5,12 +5,14 @@ import { FormControl } from "@angular/forms";
5
5
  export declare class KanbanColumnComponent implements OnInit, OnDestroy {
6
6
  private readonly kanbanEventService;
7
7
  data: KanbanColumn;
8
+ showCheckbox: boolean;
8
9
  headerTemplate: TemplateRef<any>;
9
10
  selectionControl: FormControl;
10
11
  private _unsubscribe$;
11
12
  constructor(kanbanEventService: KanbanEventService);
12
13
  ngOnInit(): void;
13
14
  ngOnDestroy(): void;
15
+ private _createTieredOptions;
14
16
  private _subscriveEvents;
15
17
  private _validateInputs;
16
18
  }
@@ -1,13 +1,16 @@
1
- import { TemplateRef } from '@angular/core';
2
- import { KanbanItem } from '../../models';
3
- import { KanbanEventService } from '../../kanban-event.service';
4
- export declare class KanbanItemComponent {
1
+ import { OnInit, TemplateRef } from "@angular/core";
2
+ import { KanbanItem } from "../../models";
3
+ import { KanbanEventService } from "../../kanban-event.service";
4
+ export declare class KanbanItemComponent implements OnInit {
5
5
  private readonly _kanbanEventService;
6
6
  item: KanbanItem;
7
7
  selected: boolean;
8
+ showCheckbox: boolean;
8
9
  headerTemplate: TemplateRef<any>;
9
10
  bodyTemplate: TemplateRef<any>;
10
11
  footerTemplate: TemplateRef<any>;
11
12
  constructor(_kanbanEventService: KanbanEventService);
13
+ ngOnInit(): void;
12
14
  onSelectedChange(value: any): void;
15
+ private _createTieredOptions;
13
16
  }
@@ -1,11 +1,13 @@
1
- import { CdkDragDrop } from '@angular/cdk/drag-drop';
2
- import { AfterContentInit, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
3
- import { TemplateDirective } from '../template/template.directive';
4
- import { KanbanEventService } from './kanban-event.service';
5
- import { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData } from './models/index';
1
+ import { CdkDragDrop } from "@angular/cdk/drag-drop";
2
+ import { AfterContentInit, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from "@angular/core";
3
+ import { TemplateDirective } from "../template/template.directive";
4
+ import { KanbanEventService } from "./kanban-event.service";
5
+ import { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData } from "./models/index";
6
6
  export declare class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {
7
7
  private readonly kanbanEventService;
8
8
  data: KanbanData;
9
+ showItemCheckboxes: boolean;
10
+ showColumnCheckboxes: boolean;
9
11
  itemsMoved: EventEmitter<KanbanItemMovedData>;
10
12
  dataUpdated: EventEmitter<KanbanData>;
11
13
  itemsSelected: EventEmitter<KanbanItem[]>;
@@ -1,2 +1,2 @@
1
- export { KanbanData, KanbanColumn, KanbanItem, KanbanItemMovedData } from "./kanban-data";
1
+ export { KanbanData, KanbanColumn, KanbanItem, KanbanItemMovedData, KanbanItemOption } from "./kanban-data";
2
2
  export { KanbanTemplateTypes } from "./kanban-template-types";
@@ -6,11 +6,12 @@ export interface KanbanColumn {
6
6
  id?: string;
7
7
  title: string;
8
8
  items: KanbanItem[];
9
- options?: TieredMenuItemData[];
9
+ options?: KanbanColumnOption[];
10
10
  }
11
11
  export interface KanbanItem {
12
- options?: TieredMenuItemData[];
12
+ options?: KanbanItemOption[];
13
13
  disabled?: boolean;
14
+ frozen?: boolean;
14
15
  data: any;
15
16
  }
16
17
  export interface KanbanItemMovedData {
@@ -18,3 +19,9 @@ export interface KanbanItemMovedData {
18
19
  previousColumn: KanbanColumn;
19
20
  targetColumn: KanbanColumn;
20
21
  }
22
+ export interface KanbanColumnOption extends Omit<TieredMenuItemData, 'command'> {
23
+ command: (column: KanbanColumn) => void;
24
+ }
25
+ export interface KanbanItemOption extends Omit<TieredMenuItemData, 'command'> {
26
+ command: (item: KanbanItem) => void;
27
+ }
@@ -7,17 +7,26 @@ import { FormControl } from "@angular/forms";
7
7
  let KanbanColumnComponent = class KanbanColumnComponent {
8
8
  constructor(kanbanEventService) {
9
9
  this.kanbanEventService = kanbanEventService;
10
+ this.showCheckbox = true;
10
11
  this.selectionControl = new FormControl(false);
11
12
  this._unsubscribe$ = new Subject();
12
13
  }
13
14
  ngOnInit() {
14
15
  this._validateInputs();
15
16
  this._subscriveEvents();
17
+ this._createTieredOptions();
16
18
  }
17
19
  ngOnDestroy() {
18
20
  this._unsubscribe$.next();
19
21
  this._unsubscribe$.complete();
20
22
  }
23
+ _createTieredOptions() {
24
+ const options = [];
25
+ this.data.options.forEach((option) => {
26
+ options.push(Object.assign(Object.assign({}, option), { command: () => { option.command(this.data); } }));
27
+ });
28
+ this.data.options = options;
29
+ }
21
30
  _subscriveEvents() {
22
31
  this.selectionControl.valueChanges
23
32
  .pipe(takeUntil(this._unsubscribe$))
@@ -68,15 +77,18 @@ KanbanColumnComponent.ctorParameters = () => [
68
77
  __decorate([
69
78
  Input()
70
79
  ], KanbanColumnComponent.prototype, "data", void 0);
80
+ __decorate([
81
+ Input()
82
+ ], KanbanColumnComponent.prototype, "showCheckbox", void 0);
71
83
  __decorate([
72
84
  Input()
73
85
  ], KanbanColumnComponent.prototype, "headerTemplate", void 0);
74
86
  KanbanColumnComponent = __decorate([
75
87
  Component({
76
88
  selector: "s-kanban-column",
77
- template: "<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\">\n </form>\n\n <ng-container *ngIf=\"!headerTemplate; then defaultHeaderTemplate else customHeaderTemplate\"></ng-container>\n \n <ng-template #defaultHeaderTemplate>\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n </ng-template>\n \n <ng-template #customHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n </ng-template>\n </div>\n <s-button\n *ngIf=\"data.options\"\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [model]=\"data.options\">\n </s-button>\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>",
89
+ template: "<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"showCheckbox\"\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\">\n </form>\n\n <ng-container *ngIf=\"!headerTemplate; then defaultHeaderTemplate else customHeaderTemplate\"></ng-container>\n \n <ng-template #defaultHeaderTemplate>\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n </ng-template>\n \n <ng-template #customHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n </ng-template>\n </div>\n <s-button\n *ngIf=\"data.options\"\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [model]=\"data.options\">\n </s-button>\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>",
78
90
  styles: [".kanban-column{-ms-flex-align:center;align-items:center;background-color:#fbfafc;border:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;min-height:120px;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.kanban-column .kanban-column__header{-ms-flex-align:center;align-items:center;border-bottom:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:16px 16px 8px;width:100%}.kanban-column .kanban-column__header .content{display:-ms-flexbox;display:flex;gap:16px}.kanban-column .kanban-column__header .content .teste{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-family:\"Open Sans\" sans-serif}.kanban-column .kanban-column__header .content .teste .title{font-size:14px;font-weight:800}.kanban-column .kanban-column__header .content .teste .description{font-size:12px}.kanban-column .kanban-column__body{display:-ms-flexbox;display:flex;height:100%;-ms-flex-pack:center;justify-content:center;width:100%}"]
79
91
  })
80
92
  ], KanbanColumnComponent);
81
93
  export { KanbanColumnComponent };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vY29tcG9uZW50cy9rYW5iYW4tY29sdW1uL2thbmJhbi1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBa0MsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdDLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBVzlCLFlBQ3FCLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTHBELHFCQUFnQixHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUl4QyxDQUFDO0lBRUUsUUFBUTtRQUNYLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQzFCLElBQUksS0FBSyxFQUFFO2dCQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEU7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0RTtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQjthQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZTthQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxJQUFnQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMvRDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QjthQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMvRDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQjthQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMvRDtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7SUFDTCxDQUFDO0NBQ0osQ0FBQTs7WUE1RDRDLGtCQUFrQjs7QUFWM0Q7SUFEQyxLQUFLLEVBQUU7bURBQ2tCO0FBRzFCO0lBREMsS0FBSyxFQUFFOzZEQUNnQztBQUwvQixxQkFBcUI7SUFMakMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixpdkNBQTZDOztLQUVoRCxDQUFDO0dBQ1cscUJBQXFCLENBd0VqQztTQXhFWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBLYW5iYW5Db2x1bW4sIEthbmJhbkl0ZW0gfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBLYW5iYW5FdmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4va2FuYmFuLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMta2FuYmFuLWNvbHVtblwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4va2FuYmFuLWNvbHVtbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9rYW5iYW4tY29sdW1uLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBLYW5iYW5Db2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YTogS2FuYmFuQ29sdW1uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgc2VsZWN0aW9uQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XG5cbiAgICBwcml2YXRlIF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkga2FuYmFuRXZlbnRTZXJ2aWNlOiBLYW5iYW5FdmVudFNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVJbnB1dHMoKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXZlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdWJzY3JpdmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnQodGhpcy5kYXRhKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5lbWl0VW5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50KHRoaXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UudW5zZWxlY3RJdGVtRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZShmYWxzZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2Uuc2VsZWN0SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5pdGVtcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YSAhPT0gY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZShmYWxzZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEgIT09IGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbGlkYXRlSW5wdXRzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGF0YSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWRcIik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vY29tcG9uZW50cy9rYW5iYW4tY29sdW1uL2thbmJhbi1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBa0MsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTdDLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBYzlCLFlBQ3FCLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBVnBELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBS3BCLHFCQUFnQixHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUl4QyxDQUFDO0lBRUUsUUFBUTtRQUNYLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLE1BQU0sT0FBTyxHQUF5QixF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RTRDLGtCQUFrQjs7QUFiM0Q7SUFEQyxLQUFLLEVBQUU7bURBQ2tCO0FBRzFCO0lBREMsS0FBSyxFQUFFOzJEQUNtQjtBQUczQjtJQURDLEtBQUssRUFBRTs2REFDZ0M7QUFSL0IscUJBQXFCO0lBTGpDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsNnhDQUE2Qzs7S0FFaEQsQ0FBQztHQUNXLHFCQUFxQixDQTBGakM7U0ExRlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgS2FuYmFuQ29sdW1uLCBLYW5iYW5JdGVtIH0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xuaW1wb3J0IHsgS2FuYmFuRXZlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2thbmJhbi1ldmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgS2FuYmFuQ29sdW1uT3B0aW9uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9rYW5iYW4tZGF0YVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWthbmJhbi1jb2x1bW5cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2thbmJhbi1jb2x1bW4uY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4va2FuYmFuLWNvbHVtbi5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgS2FuYmFuQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRhdGE6IEthbmJhbkNvbHVtbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dDaGVja2JveCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBzZWxlY3Rpb25Db250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcblxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBrYW5iYW5FdmVudFNlcnZpY2U6IEthbmJhbkV2ZW50U2VydmljZSxcbiAgICApIHsgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWxpZGF0ZUlucHV0cygpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpdmVFdmVudHMoKTtcblxuICAgICAgICB0aGlzLl9jcmVhdGVUaWVyZWRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVUaWVyZWRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBLYW5iYW5Db2x1bW5PcHRpb25bXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuZGF0YS5vcHRpb25zLmZvckVhY2goKG9wdGlvbjogS2FuYmFuQ29sdW1uT3B0aW9uKSA9PiB7XG4gICAgICAgICAgb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbixcbiAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHsgb3B0aW9uLmNvbW1hbmQodGhpcy5kYXRhKSB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRhdGEub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXZlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLmVtaXRTZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50KHRoaXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudCh0aGlzLmRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnVuc2VsZWN0SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnNlbGVjdEl0ZW1FdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtOiBLYW5iYW5JdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaXRlbXMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLnNldFZhbHVlKGZhbHNlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2Uuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEgIT09IGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS51bnNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhICE9PSBjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLnNldFZhbHVlKGZhbHNlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGF0ZUlucHV0cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImRhdGEgcGFyYW1ldGVyIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,10 +1,14 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, Input } from '@angular/core';
3
- import { KanbanEventService } from '../../kanban-event.service';
2
+ import { Component, Input } from "@angular/core";
3
+ import { KanbanEventService } from "../../kanban-event.service";
4
4
  let KanbanItemComponent = class KanbanItemComponent {
5
5
  constructor(_kanbanEventService) {
6
6
  this._kanbanEventService = _kanbanEventService;
7
7
  this.selected = false;
8
+ this.showCheckbox = true;
9
+ }
10
+ ngOnInit() {
11
+ this._createTieredOptions();
8
12
  }
9
13
  onSelectedChange(value) {
10
14
  if (value) {
@@ -14,6 +18,13 @@ let KanbanItemComponent = class KanbanItemComponent {
14
18
  this._kanbanEventService.emitUnselectItemEvent(this.item);
15
19
  }
16
20
  }
21
+ _createTieredOptions() {
22
+ const options = [];
23
+ this.item.options.forEach((option) => {
24
+ options.push(Object.assign(Object.assign({}, option), { command: () => { option.command(this.item); } }));
25
+ });
26
+ this.item.options = options;
27
+ }
17
28
  };
18
29
  KanbanItemComponent.ctorParameters = () => [
19
30
  { type: KanbanEventService }
@@ -24,6 +35,9 @@ __decorate([
24
35
  __decorate([
25
36
  Input()
26
37
  ], KanbanItemComponent.prototype, "selected", void 0);
38
+ __decorate([
39
+ Input()
40
+ ], KanbanItemComponent.prototype, "showCheckbox", void 0);
27
41
  __decorate([
28
42
  Input()
29
43
  ], KanbanItemComponent.prototype, "headerTemplate", void 0);
@@ -35,10 +49,10 @@ __decorate([
35
49
  ], KanbanItemComponent.prototype, "footerTemplate", void 0);
36
50
  KanbanItemComponent = __decorate([
37
51
  Component({
38
- selector: 's-kanban-item',
39
- template: "<p-tieredMenu\n #optionsMenu\n [popup]=\"true\"\n appendTo=\"body\"\n [baseZIndex]=\"9999\"\n [model]=\"item.options\">\n</p-tieredMenu>\n\n<div\n class=\"kanban-item\"\n [ngClass]=\"{\n 'kanban-item--selected': selected && !item.disabled,\n 'kanban-item--disabled': item.disabled\n }\">\n <div class=\"kanban-item__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"!item.disabled\"\n type=\"checkbox\"\n name=\"checkbox\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n (click)=\"$event.stopPropagation()\">\n </form>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <button\n *ngIf=\"item.options && !item.disabled\"\n class=\"options-button\"\n (click)=\"optionsMenu.toggle($event); $event.stopPropagation();\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </button>\n </div>\n <div class=\"kanban-item__body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"kanban-item__footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container> \n </div>\n</div>",
40
- styles: [".kanban-item{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px 0 rgba(0,0,0,.25);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:16px;min-width:260px;padding:16px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.kanban-item .kanban-item__header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.kanban-item .kanban-item__header .content{display:-ms-flexbox;display:flex;gap:16px}.kanban-item .kanban-item__header .options-button{background-color:transparent;border:none;cursor:pointer;margin-right:-8px;padding:0 8px}.kanban-item .kanban-item__body{margin:16px 0}.kanban-item .kanban-item__footer{border-top:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.kanban-item .kanban-item__footer .date-info{-ms-flex-align:center;align-items:center;color:#6e7280;display:-ms-flexbox;display:flex;font-family:\"Open Sans\" sans-serif;font-size:12px;gap:4px;line-height:150%}.kanban-item--selected{border:1px solid #428bca}.kanban-item--disabled{opacity:50%}"]
52
+ selector: "s-kanban-item",
53
+ template: "<p-tieredMenu\n #optionsMenu\n [popup]=\"true\"\n appendTo=\"body\"\n [baseZIndex]=\"9999\"\n [model]=\"item.options\">\n</p-tieredMenu>\n\n<div\n class=\"kanban-item\"\n [ngClass]=\"{\n 'kanban-item--selected': selected && !item.disabled,\n 'kanban-item--disabled': item.disabled,\n 'kanban-item--frozen': !item.disabled && item.frozen\n }\">\n <div class=\"kanban-item__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"showCheckbox && !item.disabled && !item.frozen\"\n type=\"checkbox\"\n name=\"checkbox\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n (click)=\"$event.stopPropagation()\">\n </form>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <button\n *ngIf=\"item.options && !item.disabled\"\n class=\"options-button\"\n (click)=\"optionsMenu.toggle($event); $event.stopPropagation();\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </button>\n </div>\n <div class=\"kanban-item__body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"kanban-item__footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container> \n </div>\n</div>",
54
+ styles: [".kanban-item{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px 0 rgba(0,0,0,.25);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:16px;min-width:260px;padding:16px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.kanban-item .kanban-item__header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.kanban-item .kanban-item__header .content{display:-ms-flexbox;display:flex;gap:16px}.kanban-item .kanban-item__header .options-button{background-color:transparent;border:none;cursor:pointer;margin-right:-8px;padding:0 8px}.kanban-item .kanban-item__body{margin:16px 0}.kanban-item .kanban-item__footer{border-top:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.kanban-item .kanban-item__footer .date-info{-ms-flex-align:center;align-items:center;color:#6e7280;display:-ms-flexbox;display:flex;font-family:\"Open Sans\" sans-serif;font-size:12px;gap:4px;line-height:150%}.kanban-item--selected{border:1px solid #428bca}.kanban-item--disabled{opacity:50%}.kanban-item--frozen{box-shadow:none}"]
41
55
  })
42
56
  ], KanbanItemComponent);
43
57
  export { KanbanItemComponent };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMva2FuYmFuL2NvbXBvbmVudHMva2FuYmFuLWl0ZW0va2FuYmFuLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU9oRSxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQWdCOUIsWUFDbUIsbUJBQXVDO1FBQXZDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFabkQsYUFBUSxHQUFHLEtBQUssQ0FBQztJQWFwQixDQUFDO0lBRUUsZ0JBQWdCLENBQUMsS0FBVTtRQUNoQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0NBQ0YsQ0FBQTs7WUFWeUMsa0JBQWtCOztBQWYxRDtJQURDLEtBQUssRUFBRTtpREFDZ0I7QUFHeEI7SUFEQyxLQUFLLEVBQUU7cURBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOzJEQUNnQztBQUd4QztJQURDLEtBQUssRUFBRTt5REFDOEI7QUFHdEM7SUFEQyxLQUFLLEVBQUU7MkRBQ2dDO0FBZDdCLG1CQUFtQjtJQUwvQixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsZUFBZTtRQUN6Qiw4K0NBQTJDOztLQUU1QyxDQUFDO0dBQ1csbUJBQW1CLENBMkIvQjtTQTNCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBLYW5iYW5JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEthbmJhbkV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2thbmJhbi1ldmVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncy1rYW5iYW4taXRlbScsXG4gIHRlbXBsYXRlVXJsOiBcIi4va2FuYmFuLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2thbmJhbi1pdGVtLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBLYW5iYW5JdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW06IEthbmJhbkl0ZW07XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2thbmJhbkV2ZW50U2VydmljZTogS2FuYmFuRXZlbnRTZXJ2aWNlLFxuICApIHsgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2thbmJhbkV2ZW50U2VydmljZS5lbWl0U2VsZWN0SXRlbUV2ZW50KHRoaXMuaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2thbmJhbkV2ZW50U2VydmljZS5lbWl0VW5zZWxlY3RJdGVtRXZlbnQodGhpcy5pdGVtKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMva2FuYmFuL2NvbXBvbmVudHMva2FuYmFuLWl0ZW0va2FuYmFuLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFHdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFRaEUsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFtQjVCLFlBQTZCLG1CQUF1QztRQUF2Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBZDdELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFXNEMsQ0FBQztJQUVqRSxRQUFRO1FBQ1gsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQVU7UUFDOUIsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO2FBQU07WUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdEO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLE9BQU8sR0FBdUIsRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtZQUNyRCxPQUFPLENBQUMsSUFBSSxpQ0FDUCxNQUFNLEtBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUM1QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDaEMsQ0FBQztDQUNKLENBQUE7O1lBMUJxRCxrQkFBa0I7O0FBakJwRTtJQURDLEtBQUssRUFBRTtpREFDZ0I7QUFHeEI7SUFEQyxLQUFLLEVBQUU7cURBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFO3lEQUNtQjtBQUczQjtJQURDLEtBQUssRUFBRTsyREFDZ0M7QUFHeEM7SUFEQyxLQUFLLEVBQUU7eURBQzhCO0FBR3RDO0lBREMsS0FBSyxFQUFFOzJEQUNnQztBQWpCL0IsbUJBQW1CO0lBTC9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLDZrREFBMkM7O0tBRTlDLENBQUM7R0FDVyxtQkFBbUIsQ0E2Qy9CO1NBN0NZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBLYW5iYW5JdGVtIH0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xuaW1wb3J0IHsgS2FuYmFuRXZlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2thbmJhbi1ldmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBLYW5iYW5JdGVtT3B0aW9uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9rYW5iYW4tZGF0YVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWthbmJhbi1pdGVtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9rYW5iYW4taXRlbS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9rYW5iYW4taXRlbS5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgS2FuYmFuSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXRlbTogS2FuYmFuSXRlbTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Q2hlY2tib3ggPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2thbmJhbkV2ZW50U2VydmljZTogS2FuYmFuRXZlbnRTZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jcmVhdGVUaWVyZWRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0ZWRDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2thbmJhbkV2ZW50U2VydmljZS5lbWl0U2VsZWN0SXRlbUV2ZW50KHRoaXMuaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFVuc2VsZWN0SXRlbUV2ZW50KHRoaXMuaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVUaWVyZWRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBLYW5iYW5JdGVtT3B0aW9uW10gPSBbXTtcblxuICAgICAgICB0aGlzLml0ZW0ub3B0aW9ucy5mb3JFYWNoKChvcHRpb246IEthbmJhbkl0ZW1PcHRpb24pID0+IHtcbiAgICAgICAgICBvcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgLi4ub3B0aW9uLFxuICAgICAgICAgICAgY29tbWFuZDogKCkgPT4geyBvcHRpb24uY29tbWFuZCh0aGlzLml0ZW0pIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaXRlbS5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG59XG4iXX0=
@@ -1,14 +1,16 @@
1
1
  import { __decorate } from "tslib";
2
- import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
3
- import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
4
- import { Subject } from 'rxjs';
5
- import { takeUntil } from 'rxjs/operators';
6
- import { TemplateDirective } from '../template/template.directive';
7
- import { KanbanEventService } from './kanban-event.service';
8
- import { KanbanTemplateTypes } from './models/index';
2
+ import { moveItemInArray, transferArrayItem } from "@angular/cdk/drag-drop";
3
+ import { Component, ContentChildren, EventEmitter, Input, Output, } from "@angular/core";
4
+ import { Subject } from "rxjs";
5
+ import { takeUntil } from "rxjs/operators";
6
+ import { TemplateDirective } from "../template/template.directive";
7
+ import { KanbanEventService } from "./kanban-event.service";
8
+ import { KanbanTemplateTypes } from "./models/index";
9
9
  let KanbanComponent = class KanbanComponent {
10
10
  constructor(kanbanEventService) {
11
11
  this.kanbanEventService = kanbanEventService;
12
+ this.showItemCheckboxes = true;
13
+ this.showColumnCheckboxes = true;
12
14
  this.itemsMoved = new EventEmitter();
13
15
  this.dataUpdated = new EventEmitter();
14
16
  this.itemsSelected = new EventEmitter();
@@ -67,6 +69,8 @@ let KanbanComponent = class KanbanComponent {
67
69
  this.selectedItems.clear();
68
70
  }
69
71
  selectItem(event, item, column) {
72
+ if (item.disabled || item.frozen)
73
+ return;
70
74
  if (event.ctrlKey) {
71
75
  if (this.selectedItems.delete(item)) {
72
76
  this.kanbanEventService.emitUnselectItemEvent(item);
@@ -81,6 +85,8 @@ let KanbanComponent = class KanbanComponent {
81
85
  }
82
86
  }
83
87
  else {
88
+ if (this.selectedItems.delete(item))
89
+ return;
84
90
  this.selectedItems.clear();
85
91
  this.selectedItems.add(item);
86
92
  this.selectedColumn = column;
@@ -96,9 +102,7 @@ let KanbanComponent = class KanbanComponent {
96
102
  this.draggingItems.clear();
97
103
  }
98
104
  getLinkedColumns(currentColumn) {
99
- return this.data.columns
100
- .filter((column) => column != currentColumn)
101
- .map((column) => column.id);
105
+ return this.data.columns.filter((column) => column != currentColumn).map((column) => column.id);
102
106
  }
103
107
  getColumnHeaderTemplate() {
104
108
  return this._getCustomTemplate(KanbanTemplateTypes.ColumnHeader);
@@ -124,7 +128,7 @@ let KanbanComponent = class KanbanComponent {
124
128
  .pipe(takeUntil(this._unsubscribe$))
125
129
  .subscribe((column) => {
126
130
  column.items
127
- .filter((item) => !item.disabled)
131
+ .filter((item) => !item.disabled && !item.frozen)
128
132
  .forEach((item) => {
129
133
  this.selectedItems.add(item);
130
134
  });
@@ -154,9 +158,7 @@ let KanbanComponent = class KanbanComponent {
154
158
  });
155
159
  });
156
160
  });
157
- this.kanbanEventService.unselectItemEvent
158
- .pipe(takeUntil(this._unsubscribe$))
159
- .subscribe((item) => {
161
+ this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item) => {
160
162
  this.selectedItems.delete(item);
161
163
  });
162
164
  }
@@ -186,6 +188,12 @@ KanbanComponent.ctorParameters = () => [
186
188
  __decorate([
187
189
  Input()
188
190
  ], KanbanComponent.prototype, "data", void 0);
191
+ __decorate([
192
+ Input()
193
+ ], KanbanComponent.prototype, "showItemCheckboxes", void 0);
194
+ __decorate([
195
+ Input()
196
+ ], KanbanComponent.prototype, "showColumnCheckboxes", void 0);
189
197
  __decorate([
190
198
  Output()
191
199
  ], KanbanComponent.prototype, "itemsMoved", void 0);
@@ -200,10 +208,10 @@ __decorate([
200
208
  ], KanbanComponent.prototype, "templates", void 0);
201
209
  KanbanComponent = __decorate([
202
210
  Component({
203
- selector: 's-kanban',
204
- template: "<div class=\"kanban\">\n <s-kanban-column\n *ngFor=\"let column of data.columns\"\n [data]=\"column\"\n [headerTemplate]=\"columnHeaderTemplate\">\n <div\n [id]=\"column.id\"\n style=\"height: 100%; width: 100%;\"\n cdkDropList\n #dynamicList=\"cdkDropList\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"getLinkedColumns(column)\"\n (cdkDropListDropped)=\"drop($event)\">\n\n <ng-container *ngIf=\"!columnEmptyMessageTemplate; then defaultEmptyMessageTemplate else customEmptyMessageTemplate\"></ng-container>\n\n <ng-template #defaultEmptyMessageTemplate>\n <div *ngIf=\"!column.items.length\" class=\"empty-message\">\n <p class=\"text\">\n <span class=\"fas fa-clock\"></span>&nbsp;\n <span>{{ \"platform.angular_components.count_items_in_target\" | translate:{ count: column.items.length, target: column.title } }}</span>\n </p>\n </div>\n </ng-template>\n\n <ng-template #customEmptyMessageTemplate>\n <ng-container *ngTemplateOutlet=\"columnEmptyMessageTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n\n <div\n *ngFor=\"let item of column.items\"\n cdkDrag\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"item.disabled\"\n (cdkDragStarted)=\"dragStarted()\"\n (cdkDragReleased)=\"dragReleased()\"\n (click)=\"selectItem($event, item, column)\">\n \n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n\n <ng-container *cdkDragPreview>\n <ng-container *ngIf=\"selectedItems.size > 1; then itemDraggingTemplate else itemTemplate\"></ng-container>\n </ng-container>\n\n <ng-template #itemTemplate>\n <s-kanban-item\n [item]=\"item\"\n [selected]=\"selectedItems.has(item)\"\n [headerTemplate]=\"itemHeaderTemplate\"\n [bodyTemplate]=\"itemBodyTemplate\"\n [footerTemplate]=\"itemFooterTemplate\">\n </s-kanban-item>\n </ng-template>\n\n <ng-template #itemDraggingTemplate>\n <s-kanban-item-dragging [quantityItems]=\"selectedItems.size\"></s-kanban-item-dragging>\n </ng-template>\n\n <div *cdkDragPlaceholder>\n <div class=\"placeholder\">\n <div class=\"placeholder-line\"></div>\n </div>\n </div>\n </div>\n </div>\n </s-kanban-column>\n</div>\n\n",
205
- styles: [".kanban{display:-ms-flexbox;display:flex;gap:16px;width:100%}.kanban .empty-message{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin:16px}.kanban .empty-message .text{overflow:hidden;text-align:center;text-overflow:ellipsis;width:100%;white-space:nowrap}@media screen and (max-width:600px){.kanban{-ms-flex-direction:column;flex-direction:column}}s-kanban-column{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;min-width:292px}.placeholder{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.placeholder .placeholder-line{background-color:#a5a5b2;height:1px;margin:6px 0;width:50%}"]
211
+ selector: "s-kanban",
212
+ template: "<div class=\"kanban\">\n <s-kanban-column\n *ngFor=\"let column of data.columns\"\n [data]=\"column\"\n [showCheckbox]=\"showColumnCheckboxes\"\n [headerTemplate]=\"columnHeaderTemplate\">\n <div\n [id]=\"column.id\"\n style=\"height: 100%; width: 100%;\"\n cdkDropList\n #dynamicList=\"cdkDropList\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"getLinkedColumns(column)\"\n (cdkDropListDropped)=\"drop($event)\">\n\n <ng-container *ngIf=\"!columnEmptyMessageTemplate; then defaultEmptyMessageTemplate else customEmptyMessageTemplate\"></ng-container>\n\n <ng-template #defaultEmptyMessageTemplate>\n <div *ngIf=\"!column.items.length\" class=\"empty-message\">\n <p class=\"text\">\n <span class=\"fas fa-clock\"></span>&nbsp;\n <span>{{ \"platform.angular_components.count_items_in_target\" | translate:{ count: column.items.length, target: column.title } }}</span>\n </p>\n </div>\n </ng-template>\n\n <ng-template #customEmptyMessageTemplate>\n <ng-container *ngTemplateOutlet=\"columnEmptyMessageTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n\n <div\n *ngFor=\"let item of column.items\"\n cdkDrag\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"item.disabled || item.frozen\"\n (cdkDragStarted)=\"dragStarted()\"\n (cdkDragReleased)=\"dragReleased()\"\n (click)=\"selectItem($event, item, column)\">\n \n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n\n <ng-container *cdkDragPreview>\n <ng-container *ngIf=\"selectedItems.size > 1; then itemDraggingTemplate else itemTemplate\"></ng-container>\n </ng-container>\n\n <ng-template #itemTemplate>\n <s-kanban-item\n [item]=\"item\"\n [selected]=\"selectedItems.has(item)\"\n [showCheckbox]=\"showItemCheckboxes\"\n [headerTemplate]=\"itemHeaderTemplate\"\n [bodyTemplate]=\"itemBodyTemplate\"\n [footerTemplate]=\"itemFooterTemplate\">\n </s-kanban-item>\n </ng-template>\n\n <ng-template #itemDraggingTemplate>\n <s-kanban-item-dragging [quantityItems]=\"selectedItems.size\"></s-kanban-item-dragging>\n </ng-template>\n\n <div *cdkDragPlaceholder>\n <div class=\"placeholder\">\n <div class=\"placeholder-line\"></div>\n </div>\n </div>\n </div>\n </div>\n </s-kanban-column>\n</div>\n\n",
213
+ styles: [".kanban{display:-ms-flexbox;display:flex;gap:16px;overflow:auto;width:100%}.kanban .empty-message{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin:16px}.kanban .empty-message .text{overflow:hidden;text-align:center;text-overflow:ellipsis;width:100%;white-space:nowrap}@media screen and (max-width:600px){.kanban{-ms-flex-direction:column;flex-direction:column}}s-kanban-column{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;min-width:292px}.placeholder{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.placeholder .placeholder-line{background-color:#a5a5b2;height:1px;margin:6px 0;width:50%}"]
206
214
  })
207
215
  ], KanbanComponent);
208
216
  export { KanbanComponent };
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2thbmJhbi9rYW5iYW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFvQixTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFFckosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUE2RCxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2hILElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUEyQnhCLFlBQ3FCLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdkJwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFHckQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRzdDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFHakQsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO1FBQ3RDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWMsQ0FBQztRQVFyQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNeEMsQ0FBQztJQUVFLFFBQVE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJ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ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vdGVtcGxhdGUvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEthbmJhbkV2ZW50U2VydmljZSB9IGZyb20gJy4va2FuYmFuLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2FuYmFuQ29sdW1uLCBLYW5iYW5EYXRhLCBLYW5iYW5JdGVtLCBLYW5iYW5JdGVtTW92ZWREYXRhLCBLYW5iYW5UZW1wbGF0ZVR5cGVzIH0gZnJvbSAnLi9tb2RlbHMvaW5kZXgnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Mta2FuYmFuJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4va2FuYmFuLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9rYW5iYW4uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgS2FuYmFuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRhdGE6IEthbmJhbkRhdGE7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaXRlbXNNb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8S2FuYmFuSXRlbU1vdmVkRGF0YT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkYXRhVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8S2FuYmFuRGF0YT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpdGVtc1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxLYW5iYW5JdGVtW10+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRDb2x1bW46IEthbmJhbkNvbHVtbjtcbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IG5ldyBTZXQ8S2FuYmFuSXRlbT4oKTtcbiAgICBwdWJsaWMgZHJhZ2dpbmdJdGVtcyA9IG5ldyBTZXQ8S2FuYmFuSXRlbT4oKTtcblxuICAgIHB1YmxpYyBjb2x1bW5IZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgY29sdW1uRW1wdHlNZXNzYWdlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIGl0ZW1IZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgaXRlbUJvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgaXRlbUZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpIHRlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGthbmJhbkV2ZW50U2VydmljZTogS2FuYmFuRXZlbnRTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZUV2ZW50cygpO1xuICAgICAgICB0aGlzLl9ub3JtYWxpemVEYXRhKCk7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlSW5wdXRzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLl9nZXRUZW1wbGF0ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxLYW5iYW5JdGVtW10+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzQ29sdW1uID0gdGhpcy5kYXRhLmNvbHVtbnMuZmluZCgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IGNvbHVtbi5pZCA9PT0gZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQpO1xuICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW4gPSB0aGlzLmRhdGEuY29sdW1ucy5maW5kKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4gY29sdW1uLmlkID09PSBldmVudC5jb250YWluZXIuaWQpO1xuXG4gICAgICAgIGlmICghcHJldmlvdXNDb2x1bW4gfHwgIXRhcmdldENvbHVtbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIG9idGFpbiBpbmZvcm1hdGlvbiBhYm91dCBjb2x1bW5zIHdoZW4gcGVyZm9ybWluZyBkcmFnIGFuZCBkcm9wXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgICAgICAgIG1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cmFuc2ZlckFycmF5SXRlbShcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxuICAgICAgICAgICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBLYW5iYW5JdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YS5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzSW5kZXggIT09IC0xICYmIGl0ZW0gIT09IGV2ZW50Lml0ZW0uZGF0YSkge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2ZlckFycmF5SXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuYWRkKGV2ZW50Lml0ZW0uZGF0YSk7XG5cbiAgICAgICAgdGhpcy5pdGVtc01vdmVkLmVtaXQoe1xuICAgICAgICAgICAgaXRlbXM6IFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdLFxuICAgICAgICAgICAgcHJldmlvdXNDb2x1bW4sXG4gICAgICAgICAgICB0YXJnZXRDb2x1bW4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGFVcGRhdGVkLm9ic2VydmVycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFVcGRhdGVkLmVtaXQoeyAuLi50aGlzLmRhdGEgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudChjb2x1bW4pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEl0ZW0oZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEthbmJhbkl0ZW0sIGNvbHVtbjogS2FuYmFuQ29sdW1uKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLmRlbGV0ZShpdGVtKSkge1xuICAgICAgICAgICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLmVtaXRVbnNlbGVjdEl0ZW1FdmVudChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb2x1bW4gJiYgIXRoaXMuc2VsZWN0ZWRDb2x1bW4uaXRlbXMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmFkZChpdGVtKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uID0gY29sdW1uO1xuICAgICAgICAgICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLmVtaXRTZWxlY3RJdGVtRXZlbnQoaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5hZGQoaXRlbSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uID0gY29sdW1uO1xuICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFNlbGVjdEl0ZW1FdmVudChpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkcmFnU3RhcnRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmdJdGVtcy5hZGQoaXRlbSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBkcmFnUmVsZWFzZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJhZ2dpbmdJdGVtcy5jbGVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMaW5rZWRDb2x1bW5zKGN1cnJlbnRDb2x1bW46IEthbmJhbkNvbHVtbikge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmNvbHVtbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiBjb2x1bW4gIT0gY3VycmVudENvbHVtbilcbiAgICAgICAgICAgIC5tYXAoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiBjb2x1bW4uaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb2x1bW5IZWFkZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKEthbmJhblRlbXBsYXRlVHlwZXMuQ29sdW1uSGVhZGVyKVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb2x1bW5FbXB0eU1lc3NhZ2VUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKEthbmJhblRlbXBsYXRlVHlwZXMuQ29sdW1uRW1wdHlNZXNzYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SXRlbUhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoS2FuYmFuVGVtcGxhdGVUeXBlcy5JdGVtSGVhZGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SXRlbUJvZHlUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKEthbmJhblRlbXBsYXRlVHlwZXMuSXRlbUJvZHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtRm9vdGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZShLYW5iYW5UZW1wbGF0ZVR5cGVzLkl0ZW1Gb290ZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEN1c3RvbVRlbXBsYXRlKHR5cGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXMuZmluZCgodGVtcGxhdGU6IFRlbXBsYXRlRGlyZWN0aXZlKSA9PiB0ZW1wbGF0ZS50eXBlID09PSB0eXBlKT8udGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgY29sdW1uLml0ZW1zXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IEthbmJhbkl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoaXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmFkZChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zU2VsZWN0ZWQuZW1pdChbLi4udGhpcy5zZWxlY3RlZEl0ZW1zXSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS51bnNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2Uuc2VsZWN0SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENvbHVtbiAmJiAhdGhpcy5zZWxlY3RlZENvbHVtbi5pdGVtcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmFkZChpdGVtKTtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zU2VsZWN0ZWQuZW1pdChbLi4udGhpcy5zZWxlY3RlZEl0ZW1zXSk7XG5cbiAgICAgICAgICAgICAgICAvLyBGaW5kaW5nIHRoZSBpdGVtIGNvbHVtbiBhbmQgc2V0dGluZyBzZWxlY3RlZENvbHVtbi5cbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uaXRlbXMuZm9yRWFjaCgoY3VycmVudEl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnVuc2VsZWN0SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZGVsZXRlKGl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IHtcbiAgICAgICAgICAgIGNvbHVtbi5pZCA9IGNvbHVtbi5pZCB8fCBgaWQtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9LSR7RGF0ZS5ub3coKS50b1N0cmluZygzNil9YDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGVJbnB1dHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmRhdGEuY29sdW1ucztcbiAgICAgICAgY29uc3QgY29sdW1uSWRzID0gdGhpcy5kYXRhLmNvbHVtbnMubWFwKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4gY29sdW1uLmlkKTtcblxuICAgICAgICBpZiAobmV3IFNldChjb2x1bW5JZHMpLnNpemUgIT09IGNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXBlYXRlZCBJRHMgYXJlIG5vdCBhY2NlcHRlZC5cIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRUZW1wbGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sdW1uSGVhZGVyVGVtcGxhdGUgPSB0aGlzLmdldENvbHVtbkhlYWRlclRlbXBsYXRlKCk7XG4gICAgICAgIHRoaXMuY29sdW1uRW1wdHlNZXNzYWdlVGVtcGxhdGUgPSB0aGlzLmdldENvbHVtbkVtcHR5TWVzc2FnZVRlbXBsYXRlKCk7XG4gICAgICAgIHRoaXMuaXRlbUhlYWRlclRlbXBsYXRlID0gdGhpcy5nZXRJdGVtSGVhZGVyVGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy5pdGVtQm9keVRlbXBsYXRlID0gdGhpcy5nZXRJdGVtQm9keVRlbXBsYXRlKCk7XG4gICAgICAgIHRoaXMuaXRlbUZvb3RlclRlbXBsYXRlID0gdGhpcy5nZXRJdGVtRm9vdGVyVGVtcGxhdGUoKTtcbiAgICB9XG59XG4iXX0=
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2thbmJhbi9rYW5iYW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUVILFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBR1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUE2RCxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2hILElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFpQ3hCLFlBQTZCLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBNUI1RCx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFHMUIseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRzVCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUdyRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFHN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUdqRCxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFjLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO1FBUXJDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUkwQixD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O0FBR25DO0lBREMsTUFBTSxFQUFFO21EQUNtRDtBQUc1RDtJQURDLE1BQU0sRUFBRTtvREFDMkM7QUFHcEQ7SUFEQyxNQUFNLEVBQUU7c0RBQytDO0FBY3BCO0lBQW5DLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztrREFBeUM7QUEvQm5FLGVBQWU7SUFMM0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLFVBQVU7UUFDcEIsaWxGQUFzQzs7S0FFekMsQ0FBQztHQUNXLGVBQWUsQ0E4TjNCO1NBOU5ZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5LCB0cmFuc2ZlckFycmF5SXRlbSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IEthbmJhbkV2ZW50U2VydmljZSB9IGZyb20gXCIuL2thbmJhbi1ldmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBLYW5iYW5Db2x1bW4sIEthbmJhbkRhdGEsIEthbmJhbkl0ZW0sIEthbmJhbkl0ZW1Nb3ZlZERhdGEsIEthbmJhblRlbXBsYXRlVHlwZXMgfSBmcm9tIFwiLi9tb2RlbHMvaW5kZXhcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1rYW5iYW5cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2thbmJhbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9rYW5iYW4uY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEthbmJhbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkYXRhOiBLYW5iYW5EYXRhO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0l0ZW1DaGVja2JveGVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dDb2x1bW5DaGVja2JveGVzID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpdGVtc01vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxLYW5iYW5JdGVtTW92ZWREYXRhPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRhdGFVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxLYW5iYW5EYXRhPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGl0ZW1zU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEthbmJhbkl0ZW1bXT4oKTtcblxuICAgIHB1YmxpYyBzZWxlY3RlZENvbHVtbjogS2FuYmFuQ29sdW1uO1xuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1zID0gbmV3IFNldDxLYW5iYW5JdGVtPigpO1xuICAgIHB1YmxpYyBkcmFnZ2luZ0l0ZW1zID0gbmV3IFNldDxLYW5iYW5JdGVtPigpO1xuXG4gICAgcHVibGljIGNvbHVtbkhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBjb2x1bW5FbXB0eU1lc3NhZ2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgaXRlbUhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBpdGVtQm9keVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBpdGVtRm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcml2YXRlIF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBrYW5iYW5FdmVudFNlcnZpY2U6IEthbmJhbkV2ZW50U2VydmljZSkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuX25vcm1hbGl6ZURhdGEoKTtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVJbnB1dHMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMuX2dldFRlbXBsYXRlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEthbmJhbkl0ZW1bXT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNDb2x1bW4gPSB0aGlzLmRhdGEuY29sdW1ucy5maW5kKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4gY29sdW1uLmlkID09PSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCk7XG4gICAgICAgIGNvbnN0IHRhcmdldENvbHVtbiA9IHRoaXMuZGF0YS5jb2x1bW5zLmZpbmQoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiBjb2x1bW4uaWQgPT09IGV2ZW50LmNvbnRhaW5lci5pZCk7XG5cbiAgICAgICAgaWYgKCFwcmV2aW91c0NvbHVtbiB8fCAhdGFyZ2V0Q29sdW1uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IGNvbHVtbnMgd2hlbiBwZXJmb3JtaW5nIGRyYWcgYW5kIGRyb3BcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSwgZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGlmIChwcmV2aW91c0luZGV4ICE9PSAtMSAmJiBpdGVtICE9PSBldmVudC5pdGVtLmRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIHByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSwgZXZlbnQuY29udGFpbmVyLmRhdGEsIHByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuYWRkKGV2ZW50Lml0ZW0uZGF0YSk7XG5cbiAgICAgICAgdGhpcy5pdGVtc01vdmVkLmVtaXQoe1xuICAgICAgICAgICAgaXRlbXM6IFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdLFxuICAgICAgICAgICAgcHJldmlvdXNDb2x1bW4sXG4gICAgICAgICAgICB0YXJnZXRDb2x1bW4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGFVcGRhdGVkLm9ic2VydmVycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFVcGRhdGVkLmVtaXQoeyAuLi50aGlzLmRhdGEgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudChjb2x1bW4pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEl0ZW0oZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEthbmJhbkl0ZW0sIGNvbHVtbjogS2FuYmFuQ29sdW1uKTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtLmRpc2FibGVkIHx8IGl0ZW0uZnJvemVuKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMuZGVsZXRlKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFVuc2VsZWN0SXRlbUV2ZW50KGl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENvbHVtbiAmJiAhdGhpcy5zZWxlY3RlZENvbHVtbi5pdGVtcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuYWRkKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSBjb2x1bW47XG4gICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFNlbGVjdEl0ZW1FdmVudChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMuZGVsZXRlKGl0ZW0pKSByZXR1cm47XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmFkZChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSBjb2x1bW47XG4gICAgICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5lbWl0U2VsZWN0SXRlbUV2ZW50KGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRyYWdTdGFydGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZ0l0ZW1zLmFkZChpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRyYWdSZWxlYXNlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcmFnZ2luZ0l0ZW1zLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExpbmtlZENvbHVtbnMoY3VycmVudENvbHVtbjogS2FuYmFuQ29sdW1uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuY29sdW1ucy5maWx0ZXIoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiBjb2x1bW4gIT0gY3VycmVudENvbHVtbikubWFwKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4gY29sdW1uLmlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29sdW1uSGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZShLYW5iYW5UZW1wbGF0ZVR5cGVzLkNvbHVtbkhlYWRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbHVtbkVtcHR5TWVzc2FnZVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoS2FuYmFuVGVtcGxhdGVUeXBlcy5Db2x1bW5FbXB0eU1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtSGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZShLYW5iYW5UZW1wbGF0ZVR5cGVzLkl0ZW1IZWFkZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtQm9keVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoS2FuYmFuVGVtcGxhdGVUeXBlcy5JdGVtQm9keSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEl0ZW1Gb290ZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKEthbmJhblRlbXBsYXRlVHlwZXMuSXRlbUZvb3Rlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q3VzdG9tVGVtcGxhdGUodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlcy5maW5kKCh0ZW1wbGF0ZTogVGVtcGxhdGVEaXJlY3RpdmUpID0+IHRlbXBsYXRlLnR5cGUgPT09IHR5cGUpPy50ZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IHtcbiAgICAgICAgICAgIGNvbHVtbi5pdGVtc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IEthbmJhbkl0ZW0pID0+ICFpdGVtLmRpc2FibGVkICYmICFpdGVtLmZyb3plbilcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoaXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuYWRkKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNTZWxlY3RlZC5lbWl0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UudW5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnNlbGVjdEl0ZW1FdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtOiBLYW5iYW5JdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb2x1bW4gJiYgIXRoaXMuc2VsZWN0ZWRDb2x1bW4uaXRlbXMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5hZGQoaXRlbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtc1NlbGVjdGVkLmVtaXQoWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc10pO1xuXG4gICAgICAgICAgICAgICAgLy8gRmluZGluZyB0aGUgaXRlbSBjb2x1bW4gYW5kIHNldHRpbmcgc2VsZWN0ZWRDb2x1bW4uXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLml0ZW1zLmZvckVhY2goKGN1cnJlbnRJdGVtOiBLYW5iYW5JdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEl0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uID0gY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS51bnNlbGVjdEl0ZW1FdmVudC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5kZWxldGUoaXRlbSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25vcm1hbGl6ZURhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICBjb2x1bW4uaWQgPSBjb2x1bW4uaWQgfHwgYGlkLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfS0ke0RhdGUubm93KCkudG9TdHJpbmcoMzYpfWA7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbGlkYXRlSW5wdXRzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5kYXRhLmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IHRoaXMuZGF0YS5jb2x1bW5zLm1hcCgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IGNvbHVtbi5pZCk7XG5cbiAgICAgICAgaWYgKG5ldyBTZXQoY29sdW1uSWRzKS5zaXplICE9PSBjb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVwZWF0ZWQgSURzIGFyZSBub3QgYWNjZXB0ZWQuXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VGVtcGxhdGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbkhlYWRlclRlbXBsYXRlID0gdGhpcy5nZXRDb2x1bW5IZWFkZXJUZW1wbGF0ZSgpO1xuICAgICAgICB0aGlzLmNvbHVtbkVtcHR5TWVzc2FnZVRlbXBsYXRlID0gdGhpcy5nZXRDb2x1bW5FbXB0eU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICB0aGlzLml0ZW1IZWFkZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0SXRlbUhlYWRlclRlbXBsYXRlKCk7XG4gICAgICAgIHRoaXMuaXRlbUJvZHlUZW1wbGF0ZSA9IHRoaXMuZ2V0SXRlbUJvZHlUZW1wbGF0ZSgpO1xuICAgICAgICB0aGlzLml0ZW1Gb290ZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0SXRlbUZvb3RlclRlbXBsYXRlKCk7XG4gICAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export { KanbanTemplateTypes } from "./kanban-template-types";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgS2FuYmFuRGF0YSwgS2FuYmFuQ29sdW1uLCBLYW5iYW5JdGVtLCBLYW5iYW5JdGVtTW92ZWREYXRhIH0gZnJvbSBcIi4va2FuYmFuLWRhdGFcIjtcbmV4cG9ydCB7IEthbmJhblRlbXBsYXRlVHlwZXMgfSBmcm9tIFwiLi9rYW5iYW4tdGVtcGxhdGUtdHlwZXNcIjtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgS2FuYmFuRGF0YSwgS2FuYmFuQ29sdW1uLCBLYW5iYW5JdGVtLCBLYW5iYW5JdGVtTW92ZWREYXRhLCBLYW5iYW5JdGVtT3B0aW9uIH0gZnJvbSBcIi4va2FuYmFuLWRhdGFcIjtcbmV4cG9ydCB7IEthbmJhblRlbXBsYXRlVHlwZXMgfSBmcm9tIFwiLi9rYW5iYW4tdGVtcGxhdGUtdHlwZXNcIjtcbiJdfQ==
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWRhdGEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vbW9kZWxzL2thbmJhbi1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaWVyZWRNZW51SXRlbURhdGEgfSBmcm9tIFwiLi4vLi4vdGllcmVkLW1lbnUvbW9kZWxzL3RpZXJlZC1tZW51LWl0ZW0tZGF0YVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEthbmJhbkRhdGEge1xuICAgIGNvbHVtbnM6IEthbmJhbkNvbHVtbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEthbmJhbkNvbHVtbiB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBpdGVtczogS2FuYmFuSXRlbVtdO1xuICAgIG9wdGlvbnM/OiBUaWVyZWRNZW51SXRlbURhdGFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5JdGVtIHtcbiAgICBvcHRpb25zPzogVGllcmVkTWVudUl0ZW1EYXRhW107XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGRhdGE6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5JdGVtTW92ZWREYXRhIHtcbiAgICBpdGVtczogS2FuYmFuSXRlbVtdLFxuICAgIHByZXZpb3VzQ29sdW1uOiBLYW5iYW5Db2x1bW47XG4gICAgdGFyZ2V0Q29sdW1uOiBLYW5iYW5Db2x1bW47XG59XG4iXX0=
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWRhdGEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vbW9kZWxzL2thbmJhbi1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaWVyZWRNZW51SXRlbURhdGEgfSBmcm9tIFwiLi4vLi4vdGllcmVkLW1lbnUvbW9kZWxzL3RpZXJlZC1tZW51LWl0ZW0tZGF0YVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEthbmJhbkRhdGEge1xuICAgIGNvbHVtbnM6IEthbmJhbkNvbHVtbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEthbmJhbkNvbHVtbiB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBpdGVtczogS2FuYmFuSXRlbVtdO1xuICAgIG9wdGlvbnM/OiBLYW5iYW5Db2x1bW5PcHRpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5JdGVtIHtcbiAgICBvcHRpb25zPzogS2FuYmFuSXRlbU9wdGlvbltdO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBmcm96ZW4/OiBib29sZWFuO1xuICAgIGRhdGE6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5JdGVtTW92ZWREYXRhIHtcbiAgICBpdGVtczogS2FuYmFuSXRlbVtdLFxuICAgIHByZXZpb3VzQ29sdW1uOiBLYW5iYW5Db2x1bW47XG4gICAgdGFyZ2V0Q29sdW1uOiBLYW5iYW5Db2x1bW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2FuYmFuQ29sdW1uT3B0aW9uIGV4dGVuZHMgT21pdDxUaWVyZWRNZW51SXRlbURhdGEsICdjb21tYW5kJz4ge1xuICAgIGNvbW1hbmQ6IChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5JdGVtT3B0aW9uIGV4dGVuZHMgT21pdDxUaWVyZWRNZW51SXRlbURhdGEsICdjb21tYW5kJz4ge1xuICAgIGNvbW1hbmQ6IChpdGVtOiBLYW5iYW5JdGVtKSA9PiB2b2lkO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { __decorate } from "tslib";
1
+ import { __assign, __decorate } from "tslib";
2
2
  import { Component, Input } from "@angular/core";
3
3
  import { Subject } from "rxjs";
4
4
  import { takeUntil } from "rxjs/operators";
@@ -7,17 +7,27 @@ import { FormControl } from "@angular/forms";
7
7
  var KanbanColumnComponent = /** @class */ (function () {
8
8
  function KanbanColumnComponent(kanbanEventService) {
9
9
  this.kanbanEventService = kanbanEventService;
10
+ this.showCheckbox = true;
10
11
  this.selectionControl = new FormControl(false);
11
12
  this._unsubscribe$ = new Subject();
12
13
  }
13
14
  KanbanColumnComponent.prototype.ngOnInit = function () {
14
15
  this._validateInputs();
15
16
  this._subscriveEvents();
17
+ this._createTieredOptions();
16
18
  };
17
19
  KanbanColumnComponent.prototype.ngOnDestroy = function () {
18
20
  this._unsubscribe$.next();
19
21
  this._unsubscribe$.complete();
20
22
  };
23
+ KanbanColumnComponent.prototype._createTieredOptions = function () {
24
+ var _this = this;
25
+ var options = [];
26
+ this.data.options.forEach(function (option) {
27
+ options.push(__assign(__assign({}, option), { command: function () { option.command(_this.data); } }));
28
+ });
29
+ this.data.options = options;
30
+ };
21
31
  KanbanColumnComponent.prototype._subscriveEvents = function () {
22
32
  var _this = this;
23
33
  this.selectionControl.valueChanges
@@ -68,17 +78,20 @@ var KanbanColumnComponent = /** @class */ (function () {
68
78
  __decorate([
69
79
  Input()
70
80
  ], KanbanColumnComponent.prototype, "data", void 0);
81
+ __decorate([
82
+ Input()
83
+ ], KanbanColumnComponent.prototype, "showCheckbox", void 0);
71
84
  __decorate([
72
85
  Input()
73
86
  ], KanbanColumnComponent.prototype, "headerTemplate", void 0);
74
87
  KanbanColumnComponent = __decorate([
75
88
  Component({
76
89
  selector: "s-kanban-column",
77
- template: "<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\">\n </form>\n\n <ng-container *ngIf=\"!headerTemplate; then defaultHeaderTemplate else customHeaderTemplate\"></ng-container>\n \n <ng-template #defaultHeaderTemplate>\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n </ng-template>\n \n <ng-template #customHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n </ng-template>\n </div>\n <s-button\n *ngIf=\"data.options\"\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [model]=\"data.options\">\n </s-button>\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>",
90
+ template: "<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"showCheckbox\"\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\">\n </form>\n\n <ng-container *ngIf=\"!headerTemplate; then defaultHeaderTemplate else customHeaderTemplate\"></ng-container>\n \n <ng-template #defaultHeaderTemplate>\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n </ng-template>\n \n <ng-template #customHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n </ng-template>\n </div>\n <s-button\n *ngIf=\"data.options\"\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [model]=\"data.options\">\n </s-button>\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>",
78
91
  styles: [".kanban-column{-ms-flex-align:center;align-items:center;background-color:#fbfafc;border:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;min-height:120px;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.kanban-column .kanban-column__header{-ms-flex-align:center;align-items:center;border-bottom:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:16px 16px 8px;width:100%}.kanban-column .kanban-column__header .content{display:-ms-flexbox;display:flex;gap:16px}.kanban-column .kanban-column__header .content .teste{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-family:\"Open Sans\" sans-serif}.kanban-column .kanban-column__header .content .teste .title{font-size:14px;font-weight:800}.kanban-column .kanban-column__header .content .teste .description{font-size:12px}.kanban-column .kanban-column__body{display:-ms-flexbox;display:flex;height:100%;-ms-flex-pack:center;justify-content:center;width:100%}"]
79
92
  })
80
93
  ], KanbanColumnComponent);
81
94
  return KanbanColumnComponent;
82
95
  }());
83
96
  export { KanbanColumnComponent };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vY29tcG9uZW50cy9rYW5iYW4tY29sdW1uL2thbmJhbi1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBa0MsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdDO0lBV0ksK0JBQ3FCLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTHBELHFCQUFnQixHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUl4QyxDQUFDO0lBRUUsd0NBQVEsR0FBZjtRQUNJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sMkNBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLGdEQUFnQixHQUF4QjtRQUFBLGlCQXdDQztRQXZDRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWTthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsVUFBQyxLQUFjO1lBQ3RCLElBQUksS0FBSyxFQUFFO2dCQUNQLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEU7aUJBQU07Z0JBQ0gsS0FBSSxDQUFDLGtCQUFrQixDQUFDLCtCQUErQixDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0RTtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQjthQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsVUFBQyxDQUFDO1lBQ1QsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlO2FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxVQUFDLElBQWdCO1lBQ3hCLElBQUksQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDL0Q7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUI7YUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLFVBQUMsTUFBb0I7WUFDNUIsSUFBSSxLQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDdEIsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMvRDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQjthQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsVUFBQyxNQUFvQjtZQUM1QixJQUFJLEtBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN0QixLQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQy9EO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRU8sK0NBQWUsR0FBdkI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7O2dCQTNEd0Msa0JBQWtCOztJQVYzRDtRQURDLEtBQUssRUFBRTt1REFDa0I7SUFHMUI7UUFEQyxLQUFLLEVBQUU7aUVBQ2dDO0lBTC9CLHFCQUFxQjtRQUxqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLGl2Q0FBNkM7O1NBRWhELENBQUM7T0FDVyxxQkFBcUIsQ0F3RWpDO0lBQUQsNEJBQUM7Q0FBQSxBQXhFRCxJQXdFQztTQXhFWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBLYW5iYW5Db2x1bW4sIEthbmJhbkl0ZW0gfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBLYW5iYW5FdmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4va2FuYmFuLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMta2FuYmFuLWNvbHVtblwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4va2FuYmFuLWNvbHVtbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9rYW5iYW4tY29sdW1uLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBLYW5iYW5Db2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YTogS2FuYmFuQ29sdW1uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgc2VsZWN0aW9uQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XG5cbiAgICBwcml2YXRlIF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkga2FuYmFuRXZlbnRTZXJ2aWNlOiBLYW5iYW5FdmVudFNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVJbnB1dHMoKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXZlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdWJzY3JpdmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnQodGhpcy5kYXRhKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5lbWl0VW5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50KHRoaXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UudW5zZWxlY3RJdGVtRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZShmYWxzZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2Uuc2VsZWN0SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5pdGVtcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YSAhPT0gY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZShmYWxzZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEgIT09IGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbGlkYXRlSW5wdXRzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGF0YSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWRcIik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vY29tcG9uZW50cy9rYW5iYW4tY29sdW1uL2thbmJhbi1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBa0MsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTdDO0lBY0ksK0JBQ3FCLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBVnBELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBS3BCLHFCQUFnQixHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUl4QyxDQUFDO0lBRUUsd0NBQVEsR0FBZjtRQUNJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sMkNBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLG9EQUFvQixHQUE1QjtRQUFBLGlCQVdDO1FBVkcsSUFBTSxPQUFPLEdBQXlCLEVB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RUFBRTsrREFDbUI7SUFHM0I7UUFEQyxLQUFLLEVBQUU7aUVBQ2dDO0lBUi9CLHFCQUFxQjtRQUxqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLDZ4Q0FBNkM7O1NBRWhELENBQUM7T0FDVyxxQkFBcUIsQ0EwRmpDO0lBQUQsNEJBQUM7Q0FBQSxBQTFGRCxJQTBGQztTQTFGWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBLYW5iYW5Db2x1bW4sIEthbmJhbkl0ZW0gfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBLYW5iYW5FdmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4va2FuYmFuLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBLYW5iYW5Db2x1bW5PcHRpb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2thbmJhbi1kYXRhXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMta2FuYmFuLWNvbHVtblwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4va2FuYmFuLWNvbHVtbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9rYW5iYW4tY29sdW1uLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBLYW5iYW5Db2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YTogS2FuYmFuQ29sdW1uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0NoZWNrYm94ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgcHVibGljIHNlbGVjdGlvbkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGthbmJhbkV2ZW50U2VydmljZTogS2FuYmFuRXZlbnRTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlSW5wdXRzKCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcml2ZUV2ZW50cygpO1xuXG4gICAgICAgIHRoaXMuX2NyZWF0ZVRpZXJlZE9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRpZXJlZE9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IEthbmJhbkNvbHVtbk9wdGlvbltdID0gW107XG5cbiAgICAgICAgdGhpcy5kYXRhLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiBLYW5iYW5Db2x1bW5PcHRpb24pID0+IHtcbiAgICAgICAgICBvcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgLi4ub3B0aW9uLFxuICAgICAgICAgICAgY29tbWFuZDogKCkgPT4geyBvcHRpb24uY29tbWFuZCh0aGlzLmRhdGEpIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGF0YS5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdWJzY3JpdmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnQodGhpcy5kYXRhKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5lbWl0VW5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50KHRoaXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UudW5zZWxlY3RJdGVtRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZShmYWxzZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2Uuc2VsZWN0SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5pdGVtcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YSAhPT0gY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZShmYWxzZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEgIT09IGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoZmFsc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbGlkYXRlSW5wdXRzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGF0YSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWRcIik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=