@seniorsistemas/angular-components 17.2.20 → 17.3.1

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 (56) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +444 -5
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/kanban/components/kanban-column/kanban-column.component.d.ts +16 -0
  6. package/components/kanban/components/kanban-item/kanban-item.component.d.ts +13 -0
  7. package/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +3 -0
  8. package/components/kanban/index.d.ts +4 -0
  9. package/components/kanban/kanban-event.service.d.ts +12 -0
  10. package/components/kanban/kanban.component.d.ts +41 -0
  11. package/components/kanban/kanban.module.d.ts +2 -0
  12. package/components/kanban/models/index.d.ts +2 -0
  13. package/components/kanban/models/kanban-data.d.ts +20 -0
  14. package/components/kanban/models/kanban-template-types.d.ts +7 -0
  15. package/components/kanban/template.directive.d.ts +6 -0
  16. package/components/slide-panel/slide-panel.component.d.ts +1 -0
  17. package/esm2015/components/kanban/components/kanban-column/kanban-column.component.js +82 -0
  18. package/esm2015/components/kanban/components/kanban-item/kanban-item.component.js +44 -0
  19. package/esm2015/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +19 -0
  20. package/esm2015/components/kanban/index.js +5 -0
  21. package/esm2015/components/kanban/kanban-event.service.js +27 -0
  22. package/esm2015/components/kanban/kanban.component.js +209 -0
  23. package/esm2015/components/kanban/kanban.module.js +45 -0
  24. package/esm2015/components/kanban/models/index.js +2 -0
  25. package/esm2015/components/kanban/models/kanban-data.js +1 -0
  26. package/esm2015/components/kanban/models/kanban-template-types.js +9 -0
  27. package/esm2015/components/kanban/template.directive.js +20 -0
  28. package/esm2015/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +1 -1
  29. package/esm2015/components/slide-panel/slide-panel.component.js +8 -1
  30. package/esm2015/locale/fallback.js +3 -1
  31. package/esm2015/public-api.js +2 -1
  32. package/esm2015/seniorsistemas-angular-components.js +5 -1
  33. package/esm5/components/kanban/components/kanban-column/kanban-column.component.js +84 -0
  34. package/esm5/components/kanban/components/kanban-item/kanban-item.component.js +45 -0
  35. package/esm5/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +20 -0
  36. package/esm5/components/kanban/index.js +5 -0
  37. package/esm5/components/kanban/kanban-event.service.js +28 -0
  38. package/esm5/components/kanban/kanban.component.js +213 -0
  39. package/esm5/components/kanban/kanban.module.js +48 -0
  40. package/esm5/components/kanban/models/index.js +2 -0
  41. package/esm5/components/kanban/models/kanban-data.js +1 -0
  42. package/esm5/components/kanban/models/kanban-template-types.js +9 -0
  43. package/esm5/components/kanban/template.directive.js +21 -0
  44. package/esm5/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +1 -1
  45. package/esm5/components/slide-panel/slide-panel.component.js +8 -1
  46. package/esm5/locale/fallback.js +3 -1
  47. package/esm5/public-api.js +2 -1
  48. package/esm5/seniorsistemas-angular-components.js +5 -1
  49. package/fesm2015/seniorsistemas-angular-components.js +422 -2
  50. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  51. package/fesm5/seniorsistemas-angular-components.js +435 -2
  52. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  53. package/package.json +1 -1
  54. package/public-api.d.ts +1 -0
  55. package/seniorsistemas-angular-components.d.ts +4 -0
  56. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -0,0 +1,45 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input } from '@angular/core';
3
+ import { KanbanEventService } from '../../kanban-event.service';
4
+ var KanbanItemComponent = /** @class */ (function () {
5
+ function KanbanItemComponent(_kanbanEventService) {
6
+ this._kanbanEventService = _kanbanEventService;
7
+ this.selected = false;
8
+ }
9
+ KanbanItemComponent.prototype.onSelectedChange = function (value) {
10
+ if (value) {
11
+ this._kanbanEventService.emitSelectItemEvent(this.item);
12
+ }
13
+ else {
14
+ this._kanbanEventService.emitUnselectItemEvent(this.item);
15
+ }
16
+ };
17
+ KanbanItemComponent.ctorParameters = function () { return [
18
+ { type: KanbanEventService }
19
+ ]; };
20
+ __decorate([
21
+ Input()
22
+ ], KanbanItemComponent.prototype, "item", void 0);
23
+ __decorate([
24
+ Input()
25
+ ], KanbanItemComponent.prototype, "selected", void 0);
26
+ __decorate([
27
+ Input()
28
+ ], KanbanItemComponent.prototype, "headerTemplate", void 0);
29
+ __decorate([
30
+ Input()
31
+ ], KanbanItemComponent.prototype, "bodyTemplate", void 0);
32
+ __decorate([
33
+ Input()
34
+ ], KanbanItemComponent.prototype, "footerTemplate", void 0);
35
+ KanbanItemComponent = __decorate([
36
+ Component({
37
+ selector: 's-kanban-item',
38
+ 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>",
39
+ 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%}"]
40
+ })
41
+ ], KanbanItemComponent);
42
+ return KanbanItemComponent;
43
+ }());
44
+ export { KanbanItemComponent };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMva2FuYmFuL2NvbXBvbmVudHMva2FuYmFuLWl0ZW0va2FuYmFuLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU9oRTtJQWdCRSw2QkFDbUIsbUJBQXVDO1FBQXZDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFabkQsYUFBUSxHQUFHLEtBQUssQ0FBQztJQWFwQixDQUFDO0lBRUUsOENBQWdCLEdBQXZCLFVBQXdCLEtBQVU7UUFDaEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzs7Z0JBVHVDLGtCQUFrQjs7SUFmMUQ7UUFEQyxLQUFLLEVBQUU7cURBQ2dCO0lBR3hCO1FBREMsS0FBSyxFQUFFO3lEQUNnQjtJQUd4QjtRQURDLEtBQUssRUFBRTsrREFDZ0M7SUFHeEM7UUFEQyxLQUFLLEVBQUU7NkRBQzhCO0lBR3RDO1FBREMsS0FBSyxFQUFFOytEQUNnQztJQWQ3QixtQkFBbUI7UUFML0IsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGVBQWU7WUFDekIsOCtDQUEyQzs7U0FFNUMsQ0FBQztPQUNXLG1CQUFtQixDQTJCL0I7SUFBRCwwQkFBQztDQUFBLEFBM0JELElBMkJDO1NBM0JZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEthbmJhbkl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgS2FuYmFuRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4va2FuYmFuLWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLWthbmJhbi1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6IFwiLi9rYW5iYW4taXRlbS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4va2FuYmFuLWl0ZW0uY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEthbmJhbkl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbTogS2FuYmFuSXRlbTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGJvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfa2FuYmFuRXZlbnRTZXJ2aWNlOiBLYW5iYW5FdmVudFNlcnZpY2UsXG4gICkgeyB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWRDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fa2FuYmFuRXZlbnRTZXJ2aWNlLmVtaXRTZWxlY3RJdGVtRXZlbnQodGhpcy5pdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fa2FuYmFuRXZlbnRTZXJ2aWNlLmVtaXRVbnNlbGVjdEl0ZW1FdmVudCh0aGlzLml0ZW0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input } from "@angular/core";
3
+ var KanbanItemDraggingComponent = /** @class */ (function () {
4
+ function KanbanItemDraggingComponent() {
5
+ this.quantityItems = 0;
6
+ }
7
+ __decorate([
8
+ Input()
9
+ ], KanbanItemDraggingComponent.prototype, "quantityItems", void 0);
10
+ KanbanItemDraggingComponent = __decorate([
11
+ Component({
12
+ selector: "s-kanban-item-dragging",
13
+ template: "<div\n *ngIf=\"quantityItems\"\n class=\"kanban-item-dragging\">\n</div>\n\n<div\n class=\"kanban-item-dragging\"\n [ngClass]=\"{ 'kanban-item-dragging--over': quantityItems }\">\n <div class=\"content\">\n <input type=\"checkbox\" checked />\n <s-badge\n [text]=\"'platform.angular_components.count_items_selected' | translate:{ count: quantityItems }\"\n color=\"blue\">\n </s-badge>\n </div>\n</div>",
14
+ styles: [".kanban-item-dragging{background-color:#fff;border:1px solid #428bca;border-radius:4px;box-shadow:0 1px 5px 0 rgba(0,0,0,.25);height:52px;padding:16px;width:260px}.kanban-item-dragging .content{display:-ms-flexbox;display:flex;gap:16px}.kanban-item-dragging--over{left:12px;position:relative;top:-64px}"]
15
+ })
16
+ ], KanbanItemDraggingComponent);
17
+ return KanbanItemDraggingComponent;
18
+ }());
19
+ export { KanbanItemDraggingComponent };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWl0ZW0tZHJhZ2dpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMva2FuYmFuL2NvbXBvbmVudHMva2FuYmFuLWl0ZW0tZHJhZ2dpbmcva2FuYmFuLWl0ZW0tZHJhZ2dpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9qRDtJQUFBO1FBRVcsa0JBQWEsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQURHO1FBREMsS0FBSyxFQUFFO3NFQUNpQjtJQUZoQiwyQkFBMkI7UUFMdkMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQywyZEFBb0Q7O1NBRXZELENBQUM7T0FDVywyQkFBMkIsQ0FHdkM7SUFBRCxrQ0FBQztDQUFBLEFBSEQsSUFHQztTQUhZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWthbmJhbi1pdGVtLWRyYWdnaW5nXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9rYW5iYW4taXRlbS1kcmFnZ2luZy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9rYW5iYW4taXRlbS1kcmFnZ2luZy5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgS2FuYmFuSXRlbURyYWdnaW5nQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBxdWFudGl0eUl0ZW1zID0gMDtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export { KanbanComponent } from "./kanban.component";
2
+ export { KanbanModule } from "./kanban.module";
3
+ export { KanbanTemplateTypes } from "./models";
4
+ export { TemplateDirective } from "./template.directive";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQTZELG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgS2FuYmFuQ29tcG9uZW50IH0gZnJvbSBcIi4va2FuYmFuLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgS2FuYmFuTW9kdWxlIH0gZnJvbSBcIi4va2FuYmFuLm1vZHVsZVwiO1xuXG5leHBvcnQgeyBLYW5iYW5EYXRhLCBLYW5iYW5Db2x1bW4sIEthbmJhbkl0ZW0sIEthbmJhbkl0ZW1Nb3ZlZERhdGEsIEthbmJhblRlbXBsYXRlVHlwZXMgfSBmcm9tIFwiLi9tb2RlbHNcIjtcblxuZXhwb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tIFwiLi90ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { __decorate } from "tslib";
2
+ import { EventEmitter, Injectable } from "@angular/core";
3
+ var KanbanEventService = /** @class */ (function () {
4
+ function KanbanEventService() {
5
+ this.selectAllColumnItemsEvent = new EventEmitter();
6
+ this.unselectAllColumnItemsEvent = new EventEmitter();
7
+ this.selectItemEvent = new EventEmitter();
8
+ this.unselectItemEvent = new EventEmitter();
9
+ }
10
+ KanbanEventService.prototype.emitSelectAllColumnItemsEvent = function (column) {
11
+ this.selectAllColumnItemsEvent.emit(column);
12
+ };
13
+ KanbanEventService.prototype.emitUnselectAllColumnItemsEvent = function (column) {
14
+ this.unselectAllColumnItemsEvent.emit(column);
15
+ };
16
+ KanbanEventService.prototype.emitSelectItemEvent = function (item) {
17
+ this.selectItemEvent.emit(item);
18
+ };
19
+ KanbanEventService.prototype.emitUnselectItemEvent = function (item) {
20
+ this.unselectItemEvent.emit(item);
21
+ };
22
+ KanbanEventService = __decorate([
23
+ Injectable()
24
+ ], KanbanEventService);
25
+ return KanbanEventService;
26
+ }());
27
+ export { KanbanEventService };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWV2ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4va2FuYmFuLWV2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3pEO0lBQUE7UUFDVyw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUM3RCxnQ0FBMkIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUMvRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDakQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQWlCOUQsQ0FBQztJQWZVLDBEQUE2QixHQUFwQyxVQUFxQyxNQUFvQjtRQUNyRCxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSw0REFBK0IsR0FBdEMsVUFBdUMsTUFBb0I7UUFDdkQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sZ0RBQW1CLEdBQTFCLFVBQTJCLElBQWdCO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxrREFBcUIsR0FBNUIsVUFBNkIsSUFBZ0I7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBcEJRLGtCQUFrQjtRQUQ5QixVQUFVLEVBQUU7T0FDQSxrQkFBa0IsQ0FxQjlCO0lBQUQseUJBQUM7Q0FBQSxBQXJCRCxJQXFCQztTQXJCWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBLYW5iYW5Db2x1bW4sIEthbmJhbkl0ZW0gfSBmcm9tIFwiLi9tb2RlbHNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEthbmJhbkV2ZW50U2VydmljZSB7XG4gICAgcHVibGljIHNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEthbmJhbkNvbHVtbj4oKTtcbiAgICBwdWJsaWMgdW5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxLYW5iYW5Db2x1bW4+KCk7XG4gICAgcHVibGljIHNlbGVjdEl0ZW1FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8S2FuYmFuSXRlbT4oKTtcbiAgICBwdWJsaWMgdW5zZWxlY3RJdGVtRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEthbmJhbkl0ZW0+KCk7XG5cbiAgICBwdWJsaWMgZW1pdFNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnQoY29sdW1uOiBLYW5iYW5Db2x1bW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50LmVtaXQoY29sdW1uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdFVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudChjb2x1bW46IEthbmJhbkNvbHVtbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudC5lbWl0KGNvbHVtbik7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRTZWxlY3RJdGVtRXZlbnQoaXRlbTogS2FuYmFuSXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW1FdmVudC5lbWl0KGl0ZW0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0VW5zZWxlY3RJdGVtRXZlbnQoaXRlbTogS2FuYmFuSXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc2VsZWN0SXRlbUV2ZW50LmVtaXQoaXRlbSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,213 @@
1
+ import { __assign, __decorate, __read, __spread } from "tslib";
2
+ import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
3
+ import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
4
+ import { KanbanTemplateTypes } from "./models/kanban-template-types";
5
+ import { TemplateDirective } from './template.directive';
6
+ import { KanbanEventService } from './kanban-event.service';
7
+ import { Subject } from 'rxjs';
8
+ import { takeUntil } from 'rxjs/operators';
9
+ var KanbanComponent = /** @class */ (function () {
10
+ function KanbanComponent(kanbanEventService) {
11
+ this.kanbanEventService = kanbanEventService;
12
+ this.itemsMoved = new EventEmitter();
13
+ this.dataUpdated = new EventEmitter();
14
+ this.itemsSelected = new EventEmitter();
15
+ this.selectedItems = new Set();
16
+ this.draggingItems = new Set();
17
+ this._unsubscribe$ = new Subject();
18
+ }
19
+ KanbanComponent.prototype.ngOnInit = function () {
20
+ this._subscribeEvents();
21
+ this._normalizeData();
22
+ this._validateInputs();
23
+ };
24
+ KanbanComponent.prototype.ngAfterContentInit = function () {
25
+ this._getTemplates();
26
+ };
27
+ KanbanComponent.prototype.ngOnDestroy = function () {
28
+ this._unsubscribe$.next();
29
+ this._unsubscribe$.complete();
30
+ };
31
+ KanbanComponent.prototype.drop = function (event) {
32
+ var _this = this;
33
+ var _a;
34
+ var previousColumn = this.data.columns.find(function (column) { return column.id === event.previousContainer.id; });
35
+ var targetColumn = this.data.columns.find(function (column) { return column.id === event.container.id; });
36
+ if (!previousColumn || !targetColumn) {
37
+ throw new Error("Unable to obtain information about columns when performing drag and drop");
38
+ }
39
+ if (event.previousContainer === event.container) {
40
+ moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
41
+ }
42
+ else {
43
+ transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
44
+ }
45
+ this.selectedItems.forEach(function (item) {
46
+ var previousIndex = event.previousContainer.data.indexOf(item);
47
+ if (previousIndex !== -1 && item !== event.item.data) {
48
+ if (event.previousContainer === event.container) {
49
+ moveItemInArray(event.container.data, previousIndex, event.currentIndex);
50
+ }
51
+ else {
52
+ transferArrayItem(event.previousContainer.data, event.container.data, previousIndex, event.currentIndex);
53
+ }
54
+ }
55
+ });
56
+ this.selectedItems.add(event.item.data);
57
+ this.itemsMoved.emit({
58
+ items: __spread(this.selectedItems),
59
+ previousColumn: previousColumn,
60
+ targetColumn: targetColumn,
61
+ });
62
+ if ((_a = this.dataUpdated.observers) === null || _a === void 0 ? void 0 : _a.length) {
63
+ this.dataUpdated.emit(__assign({}, this.data));
64
+ }
65
+ this.data.columns.forEach(function (column) {
66
+ _this.kanbanEventService.emitUnselectAllColumnItemsEvent(column);
67
+ });
68
+ this.selectedItems.clear();
69
+ };
70
+ KanbanComponent.prototype.selectItem = function (event, item, column) {
71
+ if (event.ctrlKey) {
72
+ if (this.selectedItems.delete(item)) {
73
+ this.kanbanEventService.emitUnselectItemEvent(item);
74
+ }
75
+ else {
76
+ if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {
77
+ this.selectedItems.clear();
78
+ }
79
+ this.selectedItems.add(item);
80
+ this.selectedColumn = column;
81
+ this.kanbanEventService.emitSelectItemEvent(item);
82
+ }
83
+ }
84
+ else {
85
+ this.selectedItems.clear();
86
+ this.selectedItems.add(item);
87
+ this.selectedColumn = column;
88
+ this.kanbanEventService.emitSelectItemEvent(item);
89
+ }
90
+ };
91
+ KanbanComponent.prototype.dragStarted = function () {
92
+ var _this = this;
93
+ this.selectedItems.forEach(function (item) {
94
+ _this.draggingItems.add(item);
95
+ });
96
+ };
97
+ KanbanComponent.prototype.dragReleased = function () {
98
+ this.draggingItems.clear();
99
+ };
100
+ KanbanComponent.prototype.getLinkedColumns = function (currentColumn) {
101
+ return this.data.columns
102
+ .filter(function (column) { return column != currentColumn; })
103
+ .map(function (column) { return column.id; });
104
+ };
105
+ KanbanComponent.prototype.getColumnHeaderTemplate = function () {
106
+ return this._getCustomTemplate(KanbanTemplateTypes.ColumnHeader);
107
+ };
108
+ KanbanComponent.prototype.getColumnEmptyMessageTemplate = function () {
109
+ return this._getCustomTemplate(KanbanTemplateTypes.ColumnEmptyMessage);
110
+ };
111
+ KanbanComponent.prototype.getItemHeaderTemplate = function () {
112
+ return this._getCustomTemplate(KanbanTemplateTypes.ItemHeader);
113
+ };
114
+ KanbanComponent.prototype.getItemBodyTemplate = function () {
115
+ return this._getCustomTemplate(KanbanTemplateTypes.ItemBody);
116
+ };
117
+ KanbanComponent.prototype.getItemFooterTemplate = function () {
118
+ return this._getCustomTemplate(KanbanTemplateTypes.ItemFooter);
119
+ };
120
+ KanbanComponent.prototype._getCustomTemplate = function (type) {
121
+ var _a;
122
+ return (_a = this.templates.find(function (template) { return template.type === type; })) === null || _a === void 0 ? void 0 : _a.template;
123
+ };
124
+ KanbanComponent.prototype._subscribeEvents = function () {
125
+ var _this = this;
126
+ this.kanbanEventService.selectAllColumnItemsEvent
127
+ .pipe(takeUntil(this._unsubscribe$))
128
+ .subscribe(function (column) {
129
+ column.items
130
+ .filter(function (item) { return !item.disabled; })
131
+ .forEach(function (item) {
132
+ _this.selectedItems.add(item);
133
+ });
134
+ _this.selectedColumn = column;
135
+ _this.itemsSelected.emit(__spread(_this.selectedItems));
136
+ });
137
+ this.kanbanEventService.unselectAllColumnItemsEvent
138
+ .pipe(takeUntil(this._unsubscribe$))
139
+ .subscribe(function (_) {
140
+ _this.selectedItems.clear();
141
+ });
142
+ this.kanbanEventService.selectItemEvent
143
+ .pipe(takeUntil(this._unsubscribe$))
144
+ .subscribe(function (item) {
145
+ if (_this.selectedColumn && !_this.selectedColumn.items.includes(item)) {
146
+ _this.selectedItems.clear();
147
+ }
148
+ _this.selectedItems.add(item);
149
+ _this.itemsSelected.emit(__spread(_this.selectedItems));
150
+ // Finding the item column and setting selectedColumn.
151
+ _this.data.columns.forEach(function (column) {
152
+ column.items.forEach(function (currentItem) {
153
+ if (currentItem === item) {
154
+ _this.selectedColumn = column;
155
+ return;
156
+ }
157
+ });
158
+ });
159
+ });
160
+ this.kanbanEventService.unselectItemEvent
161
+ .pipe(takeUntil(this._unsubscribe$))
162
+ .subscribe(function (item) {
163
+ _this.selectedItems.delete(item);
164
+ });
165
+ };
166
+ KanbanComponent.prototype._normalizeData = function () {
167
+ this.data.columns.forEach(function (column) {
168
+ column.id = column.id || "id-" + Math.random().toString(36).substring(2, 9) + "-" + Date.now().toString(36);
169
+ });
170
+ };
171
+ KanbanComponent.prototype._validateInputs = function () {
172
+ var columns = this.data.columns;
173
+ var columnIds = this.data.columns.map(function (column) { return column.id; });
174
+ if (new Set(columnIds).size !== columns.length) {
175
+ throw new Error("Repeated IDs are not accepted.");
176
+ }
177
+ };
178
+ KanbanComponent.prototype._getTemplates = function () {
179
+ this.columnHeaderTemplate = this.getColumnHeaderTemplate();
180
+ this.columnEmptyMessageTemplate = this.getColumnEmptyMessageTemplate();
181
+ this.itemHeaderTemplate = this.getItemHeaderTemplate();
182
+ this.itemBodyTemplate = this.getItemBodyTemplate();
183
+ this.itemFooterTemplate = this.getItemFooterTemplate();
184
+ };
185
+ KanbanComponent.ctorParameters = function () { return [
186
+ { type: KanbanEventService }
187
+ ]; };
188
+ __decorate([
189
+ Input()
190
+ ], KanbanComponent.prototype, "data", void 0);
191
+ __decorate([
192
+ Output()
193
+ ], KanbanComponent.prototype, "itemsMoved", void 0);
194
+ __decorate([
195
+ Output()
196
+ ], KanbanComponent.prototype, "dataUpdated", void 0);
197
+ __decorate([
198
+ Output()
199
+ ], KanbanComponent.prototype, "itemsSelected", void 0);
200
+ __decorate([
201
+ ContentChildren(TemplateDirective)
202
+ ], KanbanComponent.prototype, "templates", void 0);
203
+ KanbanComponent = __decorate([
204
+ Component({
205
+ selector: 's-kanban',
206
+ 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",
207
+ 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%}"]
208
+ })
209
+ ], KanbanComponent);
210
+ return KanbanComponent;
211
+ }());
212
+ export { KanbanComponent };
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2thbmJhbi9rYW5iYW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQTZDLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM5SyxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPM0M7SUEyQkkseUJBQ3FCLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdkJwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFHckQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRzdDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFHakQsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO1FBQ3RDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWMsQ0FBQztRQVFyQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNeEMsQ0FBQztJQUVFLGtDQUFRLEdBQWY7UUFDSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENB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QUE1T0QsSUE0T0M7U0E1T1ksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgS2FuYmFuQ29sdW1uLCBLYW5iYW5EYXRhLCBLYW5iYW5JdGVtLCBLYW5iYW5JdGVtTW92ZWREYXRhIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgS2FuYmFuVGVtcGxhdGVUeXBlcyB9IGZyb20gXCIuL21vZGVscy9rYW5iYW4tdGVtcGxhdGUtdHlwZXNcIjtcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2FuYmFuRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9rYW5iYW4tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1rYW5iYW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9rYW5iYW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2thbmJhbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBLYW5iYW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YTogS2FuYmFuRGF0YTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpdGVtc01vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxLYW5iYW5JdGVtTW92ZWREYXRhPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRhdGFVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxLYW5iYW5EYXRhPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGl0ZW1zU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEthbmJhbkl0ZW1bXT4oKTtcblxuICAgIHB1YmxpYyBzZWxlY3RlZENvbHVtbjogS2FuYmFuQ29sdW1uO1xuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1zID0gbmV3IFNldDxLYW5iYW5JdGVtPigpO1xuICAgIHB1YmxpYyBkcmFnZ2luZ0l0ZW1zID0gbmV3IFNldDxLYW5iYW5JdGVtPigpO1xuXG4gICAgcHVibGljIGNvbHVtbkhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBjb2x1bW5FbXB0eU1lc3NhZ2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgaXRlbUhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBpdGVtQm9keVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBpdGVtRm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcml2YXRlIF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkga2FuYmFuRXZlbnRTZXJ2aWNlOiBLYW5iYW5FdmVudFNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuX25vcm1hbGl6ZURhdGEoKTtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVJbnB1dHMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMuX2dldFRlbXBsYXRlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEthbmJhbkl0ZW1bXT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNDb2x1bW4gPSB0aGlzLmRhdGEuY29sdW1ucy5maW5kKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4gY29sdW1uLmlkID09PSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCk7XG4gICAgICAgIGNvbnN0IHRhcmdldENvbHVtbiA9IHRoaXMuZGF0YS5jb2x1bW5zLmZpbmQoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiBjb2x1bW4uaWQgPT09IGV2ZW50LmNvbnRhaW5lci5pZCk7XG5cbiAgICAgICAgaWYgKCFwcmV2aW91c0NvbHVtbiB8fCAhdGFyZ2V0Q29sdW1uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IGNvbHVtbnMgd2hlbiBwZXJmb3JtaW5nIGRyYWcgYW5kIGRyb3BcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICAgICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICAgICAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGl0ZW06IEthbmJhbkl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gLTEgJiYgaXRlbSAhPT0gZXZlbnQuaXRlbS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4LFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5hZGQoZXZlbnQuaXRlbS5kYXRhKTtcblxuICAgICAgICB0aGlzLml0ZW1zTW92ZWQuZW1pdCh7XG4gICAgICAgICAgICBpdGVtczogWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc10sXG4gICAgICAgICAgICBwcmV2aW91c0NvbHVtbixcbiAgICAgICAgICAgIHRhcmdldENvbHVtbixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YVVwZGF0ZWQub2JzZXJ2ZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVVwZGF0ZWQuZW1pdCh7IC4uLnRoaXMuZGF0YSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGF0YS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5lbWl0VW5zZWxlY3RBbGxDb2x1bW5JdGVtc0V2ZW50KGNvbHVtbik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0SXRlbShldmVudDogTW91c2VFdmVudCwgaXRlbTogS2FuYmFuSXRlbSwgY29sdW1uOiBLYW5iYW5Db2x1bW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMuZGVsZXRlKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFVuc2VsZWN0SXRlbUV2ZW50KGl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENvbHVtbiAmJiAhdGhpcy5zZWxlY3RlZENvbHVtbi5pdGVtcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuYWRkKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSBjb2x1bW47XG4gICAgICAgICAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UuZW1pdFNlbGVjdEl0ZW1FdmVudChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmFkZChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSBjb2x1bW47XG4gICAgICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5lbWl0U2VsZWN0SXRlbUV2ZW50KGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRyYWdTdGFydGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZ0l0ZW1zLmFkZChpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRyYWdSZWxlYXNlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcmFnZ2luZ0l0ZW1zLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExpbmtlZENvbHVtbnMoY3VycmVudENvbHVtbjogS2FuYmFuQ29sdW1uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuY29sdW1uc1xuICAgICAgICAgICAgLmZpbHRlcigoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IGNvbHVtbiAhPSBjdXJyZW50Q29sdW1uKVxuICAgICAgICAgICAgLm1hcCgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IGNvbHVtbi5pZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbHVtbkhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoS2FuYmFuVGVtcGxhdGVUeXBlcy5Db2x1bW5IZWFkZXIpXG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbHVtbkVtcHR5TWVzc2FnZVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoS2FuYmFuVGVtcGxhdGVUeXBlcy5Db2x1bW5FbXB0eU1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtSGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZShLYW5iYW5UZW1wbGF0ZVR5cGVzLkl0ZW1IZWFkZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtQm9keVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoS2FuYmFuVGVtcGxhdGVUeXBlcy5JdGVtQm9keSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEl0ZW1Gb290ZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKEthbmJhblRlbXBsYXRlVHlwZXMuSXRlbUZvb3Rlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q3VzdG9tVGVtcGxhdGUodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlcy5maW5kKCh0ZW1wbGF0ZTogVGVtcGxhdGVEaXJlY3RpdmUpID0+IHRlbXBsYXRlLnR5cGUgPT09IHR5cGUpPy50ZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnNlbGVjdEFsbENvbHVtbkl0ZW1zRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29sdW1uOiBLYW5iYW5Db2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICBjb2x1bW4uaXRlbXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbTogS2FuYmFuSXRlbSkgPT4gIWl0ZW0uZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChpdGVtOiBLYW5iYW5JdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuYWRkKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uID0gY29sdW1uO1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNTZWxlY3RlZC5lbWl0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMua2FuYmFuRXZlbnRTZXJ2aWNlLnVuc2VsZWN0QWxsQ29sdW1uSXRlbXNFdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmNsZWFyKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmthbmJhbkV2ZW50U2VydmljZS5zZWxlY3RJdGVtRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ29sdW1uICYmICF0aGlzLnNlbGVjdGVkQ29sdW1uLml0ZW1zLmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuYWRkKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNTZWxlY3RlZC5lbWl0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdKTtcblxuICAgICAgICAgICAgICAgIC8vIEZpbmRpbmcgdGhlIGl0ZW0gY29sdW1uIGFuZCBzZXR0aW5nIHNlbGVjdGVkQ29sdW1uLlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pdGVtcy5mb3JFYWNoKChjdXJyZW50SXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtID09PSBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rYW5iYW5FdmVudFNlcnZpY2UudW5zZWxlY3RJdGVtRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXRlbTogS2FuYmFuSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5kZWxldGUoaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ub3JtYWxpemVEYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IEthbmJhbkNvbHVtbikgPT4ge1xuICAgICAgICAgICAgY29sdW1uLmlkID0gY29sdW1uLmlkIHx8IGBpZC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX0tJHtEYXRlLm5vdygpLnRvU3RyaW5nKDM2KX1gO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGF0ZUlucHV0cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZGF0YS5jb2x1bW5zO1xuICAgICAgICBjb25zdCBjb2x1bW5JZHMgPSB0aGlzLmRhdGEuY29sdW1ucy5tYXAoKGNvbHVtbjogS2FuYmFuQ29sdW1uKSA9PiBjb2x1bW4uaWQpO1xuXG4gICAgICAgIGlmIChuZXcgU2V0KGNvbHVtbklkcykuc2l6ZSAhPT0gY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlcGVhdGVkIElEcyBhcmUgbm90IGFjY2VwdGVkLlwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFRlbXBsYXRlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5IZWFkZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0Q29sdW1uSGVhZGVyVGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy5jb2x1bW5FbXB0eU1lc3NhZ2VUZW1wbGF0ZSA9IHRoaXMuZ2V0Q29sdW1uRW1wdHlNZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy5pdGVtSGVhZGVyVGVtcGxhdGUgPSB0aGlzLmdldEl0ZW1IZWFkZXJUZW1wbGF0ZSgpO1xuICAgICAgICB0aGlzLml0ZW1Cb2R5VGVtcGxhdGUgPSB0aGlzLmdldEl0ZW1Cb2R5VGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy5pdGVtRm9vdGVyVGVtcGxhdGUgPSB0aGlzLmdldEl0ZW1Gb290ZXJUZW1wbGF0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from "@angular/core";
3
+ import { CommonModule } from "@angular/common";
4
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
5
+ import { DragDropModule } from '@angular/cdk/drag-drop';
6
+ import { TieredMenuModule } from "primeng/tieredmenu";
7
+ import { TranslateModule } from "@ngx-translate/core";
8
+ import { BadgeModule } from "../badge/badge.module";
9
+ import { ButtonModule } from "../button/button.module";
10
+ import { KanbanComponent } from "./kanban.component";
11
+ import { KanbanEventService } from "./kanban-event.service";
12
+ import { KanbanItemComponent } from "./components/kanban-item/kanban-item.component";
13
+ import { KanbanColumnComponent } from "./components/kanban-column/kanban-column.component";
14
+ import { KanbanItemDraggingComponent } from "./components/kanban-item-dragging/kanban-item-dragging.component";
15
+ import { TemplateDirective } from "./template.directive";
16
+ var KanbanModule = /** @class */ (function () {
17
+ function KanbanModule() {
18
+ }
19
+ KanbanModule = __decorate([
20
+ NgModule({
21
+ imports: [
22
+ CommonModule,
23
+ FormsModule,
24
+ ReactiveFormsModule,
25
+ TranslateModule,
26
+ DragDropModule,
27
+ BadgeModule,
28
+ ButtonModule,
29
+ TieredMenuModule,
30
+ ],
31
+ declarations: [
32
+ KanbanComponent,
33
+ KanbanItemComponent,
34
+ KanbanColumnComponent,
35
+ KanbanItemDraggingComponent,
36
+ TemplateDirective,
37
+ ],
38
+ exports: [
39
+ KanbanComponent,
40
+ TemplateDirective,
41
+ ],
42
+ providers: [KanbanEventService],
43
+ })
44
+ ], KanbanModule);
45
+ return KanbanModule;
46
+ }());
47
+ export { KanbanModule };
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2thbmJhbi9rYW5iYW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUMvRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQTBCekQ7SUFBQTtJQUE0QixDQUFDO0lBQWhCLFlBQVk7UUF4QnhCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFdBQVc7Z0JBQ1gsbUJBQW1CO2dCQUNuQixlQUFlO2dCQUNmLGNBQWM7Z0JBQ2QsV0FBVztnQkFDWCxZQUFZO2dCQUNaLGdCQUFnQjthQUNuQjtZQUNELFlBQVksRUFBRTtnQkFDVixlQUFlO2dCQUNmLG1CQUFtQjtnQkFDbkIscUJBQXFCO2dCQUNyQiwyQkFBMkI7Z0JBQzNCLGlCQUFpQjthQUNwQjtZQUNELE9BQU8sRUFBRTtnQkFDTCxlQUFlO2dCQUNmLGlCQUFpQjthQUNwQjtZQUNELFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQ2xDLENBQUM7T0FDVyxZQUFZLENBQUk7SUFBRCxtQkFBQztDQUFBLEFBQTdCLElBQTZCO1NBQWhCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgVGllcmVkTWVudU1vZHVsZSB9IGZyb20gXCJwcmltZW5nL3RpZXJlZG1lbnVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSBcIi4uL2JhZGdlL2JhZGdlLm1vZHVsZVwiO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSBcIi4uL2J1dHRvbi9idXR0b24ubW9kdWxlXCI7XG5pbXBvcnQgeyBLYW5iYW5Db21wb25lbnQgfSBmcm9tIFwiLi9rYW5iYW4uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBLYW5iYW5FdmVudFNlcnZpY2UgfSBmcm9tIFwiLi9rYW5iYW4tZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgS2FuYmFuSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMva2FuYmFuLWl0ZW0va2FuYmFuLWl0ZW0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBLYW5iYW5Db2x1bW5Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2thbmJhbi1jb2x1bW4va2FuYmFuLWNvbHVtbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEthbmJhbkl0ZW1EcmFnZ2luZ0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMva2FuYmFuLWl0ZW0tZHJhZ2dpbmcva2FuYmFuLWl0ZW0tZHJhZ2dpbmcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL3RlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgQmFkZ2VNb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVGllcmVkTWVudU1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBLYW5iYW5Db21wb25lbnQsXG4gICAgICAgIEthbmJhbkl0ZW1Db21wb25lbnQsXG4gICAgICAgIEthbmJhbkNvbHVtbkNvbXBvbmVudCxcbiAgICAgICAgS2FuYmFuSXRlbURyYWdnaW5nQ29tcG9uZW50LFxuICAgICAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgS2FuYmFuQ29tcG9uZW50LFxuICAgICAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW0thbmJhbkV2ZW50U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEthbmJhbk1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { KanbanTemplateTypes } from "./kanban-template-types";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgS2FuYmFuRGF0YSwgS2FuYmFuQ29sdW1uLCBLYW5iYW5JdGVtLCBLYW5iYW5JdGVtTW92ZWREYXRhIH0gZnJvbSBcIi4va2FuYmFuLWRhdGFcIjtcbmV4cG9ydCB7IEthbmJhblRlbXBsYXRlVHlwZXMgfSBmcm9tIFwiLi9rYW5iYW4tdGVtcGxhdGUtdHlwZXNcIjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLWRhdGEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9rYW5iYW4vbW9kZWxzL2thbmJhbi1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaWVyZWRNZW51SXRlbURhdGEgfSBmcm9tIFwiLi4vLi4vdGllcmVkLW1lbnUvbW9kZWxzL3RpZXJlZC1tZW51LWl0ZW0tZGF0YVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEthbmJhbkRhdGEge1xuICAgIGNvbHVtbnM6IEthbmJhbkNvbHVtbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEthbmJhbkNvbHVtbiB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBpdGVtczogS2FuYmFuSXRlbVtdO1xuICAgIG9wdGlvbnM/OiBUaWVyZWRNZW51SXRlbURhdGFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5JdGVtIHtcbiAgICBvcHRpb25zPzogVGllcmVkTWVudUl0ZW1EYXRhW107XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGRhdGE6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYW5iYW5JdGVtTW92ZWREYXRhIHtcbiAgICBpdGVtczogS2FuYmFuSXRlbVtdLFxuICAgIHByZXZpb3VzQ29sdW1uOiBLYW5iYW5Db2x1bW47XG4gICAgdGFyZ2V0Q29sdW1uOiBLYW5iYW5Db2x1bW47XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export var KanbanTemplateTypes;
2
+ (function (KanbanTemplateTypes) {
3
+ KanbanTemplateTypes["ColumnHeader"] = "column-header";
4
+ KanbanTemplateTypes["ColumnEmptyMessage"] = "column-empty-message";
5
+ KanbanTemplateTypes["ItemHeader"] = "item-header";
6
+ KanbanTemplateTypes["ItemBody"] = "item-body";
7
+ KanbanTemplateTypes["ItemFooter"] = "item-footer";
8
+ })(KanbanTemplateTypes || (KanbanTemplateTypes = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLXRlbXBsYXRlLXR5cGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMva2FuYmFuL21vZGVscy9rYW5iYW4tdGVtcGxhdGUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBTVg7QUFORCxXQUFZLG1CQUFtQjtJQUMzQixxREFBOEIsQ0FBQTtJQUM5QixrRUFBMkMsQ0FBQTtJQUMzQyxpREFBMEIsQ0FBQTtJQUMxQiw2Q0FBc0IsQ0FBQTtJQUN0QixpREFBMEIsQ0FBQTtBQUM5QixDQUFDLEVBTlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQU05QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEthbmJhblRlbXBsYXRlVHlwZXMge1xuICAgIENvbHVtbkhlYWRlciA9IFwiY29sdW1uLWhlYWRlclwiLFxuICAgIENvbHVtbkVtcHR5TWVzc2FnZSA9IFwiY29sdW1uLWVtcHR5LW1lc3NhZ2VcIixcbiAgICBJdGVtSGVhZGVyID0gXCJpdGVtLWhlYWRlclwiLFxuICAgIEl0ZW1Cb2R5ID0gXCJpdGVtLWJvZHlcIixcbiAgICBJdGVtRm9vdGVyID0gXCJpdGVtLWZvb3RlclwiLFxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, Input, TemplateRef } from "@angular/core";
3
+ var TemplateDirective = /** @class */ (function () {
4
+ function TemplateDirective(template) {
5
+ this.template = template;
6
+ }
7
+ TemplateDirective.ctorParameters = function () { return [
8
+ { type: TemplateRef }
9
+ ]; };
10
+ __decorate([
11
+ Input("sTemplate")
12
+ ], TemplateDirective.prototype, "type", void 0);
13
+ TemplateDirective = __decorate([
14
+ Directive({
15
+ selector: "[sTemplate]",
16
+ })
17
+ ], TemplateDirective);
18
+ return TemplateDirective;
19
+ }());
20
+ export { TemplateDirective };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMva2FuYmFuL3RlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzlEO0lBSUksMkJBQTRCLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUcsQ0FBQzs7Z0JBQXBCLFdBQVc7O0lBRmpEO1FBREMsS0FBSyxDQUFDLFdBQVcsQ0FBQzttREFDQztJQUZYLGlCQUFpQjtRQUg3QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsYUFBYTtTQUMxQixDQUFDO09BQ1csaUJBQWlCLENBSzdCO0lBQUQsd0JBQUM7Q0FBQSxBQUxELElBS0M7U0FMWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIltzVGVtcGxhdGVdXCIsXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoXCJzVGVtcGxhdGVcIilcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufSJdfQ==
@@ -34,7 +34,7 @@ var ProgressBarDeterminateComponent = /** @class */ (function () {
34
34
  Component({
35
35
  selector: "s-progressbar-determinate",
36
36
  template: "<div class=\"progressbar-determinate\">\n <div class=\"progressbar-container\">\n <div\n class=\"progressbar-active\"\n [ngClass]=\"{\n 'progressbar-active--blue' : activeColor === 'blue',\n 'progressbar-active--green': activeColor === 'green',\n 'progressbar-active--red': activeColor === 'red',\n 'progressbar-active--yellow': activeColor === 'yellow'\n }\"\n [ngStyle]=\"{ 'width': value + '%' }\">\n {{ showValue && value ? value + '%' : '' }}\n </div>\n </div>\n <div\n *ngIf=\"targetValue\"\n class=\"target\"\n [ngStyle]=\"{\n 'left': targetValue <= 50 ? targetValue + '%' : 'unset',\n 'right': targetValue > 50 ? 100 - targetValue + '%' : 'unset',\n 'align-items': targetValue > 50 ? 'flex-end' : 'flex-start'\n }\">\n <span class=\"target-line\"></span>\n <span class=\"target-label\">\n {{ targetLabel || value + '%' }}\n </span>\n </div>\n </div>\n ",
37
- styles: [".progressbar-determinate{position:relative}.progressbar-determinate .progressbar-container{background-color:#d8d8d8;border-radius:4px;height:24px;overflow:hidden;width:100%}.progressbar-determinate .progressbar-container .progressbar-active{-ms-flex-align:center;align-items:center;color:#fff;display:-ms-flexbox;display:flex;font-family:\"Open Sans\",sans-serif;font-size:14px;height:100%;-ms-flex-pack:center;justify-content:center;line-height:150%;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:80%}.progressbar-determinate .progressbar-container .progressbar-active--blue{background-color:#428bca}.progressbar-determinate .progressbar-container .progressbar-active--green{background-color:#0c9348}.progressbar-determinate .progressbar-container .progressbar-active--red{background-color:#c13018}.progressbar-determinate .progressbar-container .progressbar-active--yellow{background-color:#fcbf10}.progressbar-determinate .target{-ms-flex-align:start;align-items:flex-start;bottom:-38px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute}.progressbar-determinate .target .target-line{background-color:#333;height:40px;margin:8px 0;width:1px}.progressbar-determinate .target .target-label{background-color:#426e78;border-radius:10px;color:#e5eaea;font-family:\"Open Sans\",sans-serif;font-size:12px;line-height:150%;padding:2px 12px}"]
37
+ styles: [".progressbar-determinate{position:relative}.progressbar-determinate .progressbar-container{background-color:#d8d8d8;border-radius:4px;height:24px;overflow:hidden;width:100%}.progressbar-determinate .progressbar-container .progressbar-active{-ms-flex-align:center;align-items:center;color:#fff;display:-ms-flexbox;display:flex;font-family:\"Open Sans\",sans-serif;font-size:14px;height:100%;-ms-flex-pack:center;justify-content:center;line-height:150%;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:80%}.progressbar-determinate .progressbar-container .progressbar-active--blue{background-color:#428bca}.progressbar-determinate .progressbar-container .progressbar-active--green{background-color:#0c9348}.progressbar-determinate .progressbar-container .progressbar-active--red{background-color:#c13018}.progressbar-determinate .progressbar-container .progressbar-active--yellow{background-color:#fcbf10;color:#212533}.progressbar-determinate .target{-ms-flex-align:start;align-items:flex-start;bottom:-38px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute}.progressbar-determinate .target .target-line{background-color:#333;height:40px;margin:8px 0;width:1px}.progressbar-determinate .target .target-label{background-color:#426e78;border-radius:10px;color:#e5eaea;font-family:\"Open Sans\",sans-serif;font-size:12px;line-height:150%;padding:2px 12px}"]
38
38
  })
39
39
  ], ProgressBarDeterminateComponent);
40
40
  return ProgressBarDeterminateComponent;
@@ -12,6 +12,7 @@ var SlidePanelComponent = /** @class */ (function () {
12
12
  this.openIcon = "fas fa-chevron-right";
13
13
  this.closeIcon = "fas fa-chevron-left";
14
14
  this.cache = false;
15
+ this.createOpen = false;
15
16
  this.panelOpened = new EventEmitter();
16
17
  this.panelClosed = new EventEmitter();
17
18
  this.isOpen = false;
@@ -42,6 +43,9 @@ var SlidePanelComponent = /** @class */ (function () {
42
43
  _this._calculateSlideHeight();
43
44
  _this._calculateSideContentWidth();
44
45
  _this.isContentAnimationDisabled = false;
46
+ if (_this.createOpen) {
47
+ _this.isOpen = true;
48
+ }
45
49
  });
46
50
  };
47
51
  SlidePanelComponent.prototype.ngOnDestroy = function () {
@@ -95,6 +99,9 @@ var SlidePanelComponent = /** @class */ (function () {
95
99
  __decorate([
96
100
  Input()
97
101
  ], SlidePanelComponent.prototype, "cache", void 0);
102
+ __decorate([
103
+ Input()
104
+ ], SlidePanelComponent.prototype, "createOpen", void 0);
98
105
  __decorate([
99
106
  Output()
100
107
  ], SlidePanelComponent.prototype, "panelOpened", void 0);
@@ -140,4 +147,4 @@ var SlidePanelComponent = /** @class */ (function () {
140
147
  return SlidePanelComponent;
141
148
  }());
142
149
  export { SlidePanelComponent };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc2xpZGUtcGFuZWwvc2xpZGUtcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixJQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQXdCcEM7SUE2Q0ksNkJBQTZCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBekMxRCxPQUFFLEdBQUcsaUJBQWUsRUFBRSxxQkFBbUIsQ0FBQyxNQUFRLENBQUM7UUFHbkQsYUFBUSxHQUFHLHNCQUFzQixDQUFDO1FBR2xDLGNBQVMsR0FBRyxxQkFBcUIsQ0FBQztRQUdsQyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBR2QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVd2QyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsK0JBQTBCLEdBQUcsSUFBSSxDQUFDO1FBRWxD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QW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgU2xpZGVQYW5lbFNlcnZpY2UgfSBmcm9tIFwiLi9zbGlkZS1wYW5lbC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5jb25zdCBTTUFMTF9ERVZJQ0VfQlJFQUtQT0lOVCA9IDQyMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1zbGlkZS1wYW5lbFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vc2xpZGUtcGFuZWwuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vc2xpZGUtcGFuZWwuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKFwiY2FjaGVsZXNzQW5pbWF0aW9uXCIsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgd2lkdGg6IFwiMFwiIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXCIyMDBtcyBsaW5lYXJcIiwgc3R5bGUoeyB3aWR0aDogXCIqXCIgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHdpZHRoOiBcIipcIiB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMjAwbXMgbGluZWFyXCIsIHN0eWxlKHsgd2lkdGg6IFwiMFwiIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcihcImNhY2hlQW5pbWF0aW9uXCIsIFtcbiAgICAgICAgICAgIHN0YXRlKFwidHJ1ZVwiLCBzdHlsZSh7IHdpZHRoOiBcIipcIiwgcGFkZGluZzogJzAgMTZweCcgfSkpLFxuICAgICAgICAgICAgc3RhdGUoXCJmYWxzZVwiLCBzdHlsZSh7IHdpZHRoOiAnMHB4JywgcGFkZGluZzogJzAnIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCIqID0+ICpcIiwgYW5pbWF0ZShcIjIwMG1zXCIpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzbGlkZS1wYW5lbC0keysrU2xpZGVQYW5lbENvbXBvbmVudC5uZXh0SWR9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9wZW5JY29uID0gXCJmYXMgZmEtY2hldnJvbi1yaWdodFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xvc2VJY29uID0gXCJmYXMgZmEtY2hldnJvbi1sZWZ0XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYWNoZSA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQFZpZXdDaGlsZChcInNsaWRlUGFuZWxcIilcbiAgICBwcml2YXRlIF9zbGlkZVBhbmVsUmVmOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZChcInNsaWRlQ29udGVudFwiKVxuICAgIHByaXZhdGUgX3NsaWRlQ29udGVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoXCJzaWRlQ29udGVudFwiKVxuICAgIHByaXZhdGUgX3NpZGVDb250ZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIGlzT3BlbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1NsaWRlT3ZlciA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0FuaW1hdGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0NvbnRlbnRBbmltYXRpb25EaXNhYmxlZCA9IHRydWU7XG5cbiAgICBwdWJsaWMgc2xpZGVIZWlnaHQgPSAwO1xuICAgIHB1YmxpYyBzaWRlQ29udGVudFdpZHRoID0gMFxuXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gICAgcHVibGljIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGVja092ZXJCZWhhdmlvcigpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2xpZGVQYW5lbFNlcnZpY2U6IFNsaWRlUGFuZWxTZXJ2aWNlKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hlY2tPdmVyQmVoYXZpb3IoKTtcbiAgICAgICAgdGhpcy5zbGlkZVBhbmVsU2VydmljZS5jcmVhdGVTbGlkZVBhbmVsKHRoaXMuaWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICAvLyB0byBleGVjdXRlZCBhdCBhIHNhZmUgdGltZSBwcmlvciB0byBjb250cm9sIHJldHVybmluZyB0byB0aGUgYnJvd3NlcidzIGV2ZW50IGxvb3BcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlU2xpZGVIZWlnaHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZVNpZGVDb250ZW50V2lkdGgoKTtcbiAgICAgICAgICAgIHRoaXMuaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGlja0J1dHRvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNBbmltYXRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5wYW5lbE9wZW5lZC5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsQ2xvc2VkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRBbmltYXRpb25TdGFydCgpIHtcbiAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudEFuaW1hdGlvbkRvbmUoKSB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLl9jYWxjdWxhdGVTaWRlQ29udGVudFdpZHRoKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tPdmVyQmVoYXZpb3IoKSB7XG4gICAgICAgIHRoaXMuaXNTbGlkZU92ZXIgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSBTTUFMTF9ERVZJQ0VfQlJFQUtQT0lOVDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVTbGlkZUhlaWdodCgpIHtcbiAgICAgICAgdGhpcy5zbGlkZUhlaWdodCA9IHRoaXMuX3NpZGVDb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NhbGN1bGF0ZVNpZGVDb250ZW50V2lkdGgoKSB7XG4gICAgICAgIGNvbnN0IHNsaWRlUGFuZWxXaWR0aCA9IHRoaXMuX3NsaWRlUGFuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY29uc3Qgc2xpZGVDb250ZW50V2lkdGggPSB0aGlzLl9zbGlkZUNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblxuICAgICAgICB0aGlzLnNpZGVDb250ZW50V2lkdGggPSBzbGlkZVBhbmVsV2lkdGggLSBzbGlkZUNvbnRlbnRXaWR0aDtcbiAgICB9XG59Il19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc2xpZGUtcGFuZWwvc2xpZGUtcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixJQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQXdCcEM7SUFnREksNkJBQTZCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBNUMxRCxPQUFFLEdBQUcsaUJBQWUsRUFBRSxxQkFBbUIsQ0FBQyxNQUFRLENBQUM7UUFHbkQsYUFBUSxHQUFHLHNCQUFzQixDQUFDO1FBR2xDLGNBQVMsR0FBRyxxQkFBcUIsQ0FBQztRQUdsQyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBR2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHdkMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBV3ZDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQiwr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QVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUN6QyxDQUFDO2FBQ0w7O1NBQ0osQ0FBQztPQUNXLG1CQUFtQixDQW1IL0I7SUFBRCwwQkFBQztDQUFBLEFBbkhELElBbUhDO1NBbkhZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFNsaWRlUGFuZWxTZXJ2aWNlIH0gZnJvbSBcIi4vc2xpZGUtcGFuZWwuc2VydmljZVwiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcblxuY29uc3QgU01BTExfREVWSUNFX0JSRUFLUE9JTlQgPSA0MjA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtc2xpZGUtcGFuZWxcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3NsaWRlLXBhbmVsLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3NsaWRlLXBhbmVsLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcihcImNhY2hlbGVzc0FuaW1hdGlvblwiLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmVudGVyXCIsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHdpZHRoOiBcIjBcIiB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMjAwbXMgbGluZWFyXCIsIHN0eWxlKHsgd2lkdGg6IFwiKlwiIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIjpsZWF2ZVwiLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB3aWR0aDogXCIqXCIgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjIwMG1zIGxpbmVhclwiLCBzdHlsZSh7IHdpZHRoOiBcIjBcIiB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJjYWNoZUFuaW1hdGlvblwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcInRydWVcIiwgc3R5bGUoeyB3aWR0aDogXCIqXCIsIHBhZGRpbmc6ICcwIDE2cHgnIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKFwiZmFsc2VcIiwgc3R5bGUoeyB3aWR0aDogJzBweCcsIHBhZGRpbmc6ICcwJyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiKiA9PiAqXCIsIGFuaW1hdGUoXCIyMDBtc1wiKSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgc2xpZGUtcGFuZWwtJHsrK1NsaWRlUGFuZWxDb21wb25lbnQubmV4dElkfWA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvcGVuSWNvbiA9IFwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsb3NlSWNvbiA9IFwiZmFzIGZhLWNoZXZyb24tbGVmdFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FjaGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNyZWF0ZU9wZW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoXCJzbGlkZVBhbmVsXCIpXG4gICAgcHJpdmF0ZSBfc2xpZGVQYW5lbFJlZjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoXCJzbGlkZUNvbnRlbnRcIilcbiAgICBwcml2YXRlIF9zbGlkZUNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKFwic2lkZUNvbnRlbnRcIilcbiAgICBwcml2YXRlIF9zaWRlQ29udGVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNTbGlkZU92ZXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNBbmltYXRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgcHVibGljIHNsaWRlSGVpZ2h0ID0gMDtcbiAgICBwdWJsaWMgc2lkZUNvbnRlbnRXaWR0aCA9IDBcblxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxuICAgIHB1YmxpYyBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hlY2tPdmVyQmVoYXZpb3IoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNsaWRlUGFuZWxTZXJ2aWNlOiBTbGlkZVBhbmVsU2VydmljZSkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrT3ZlckJlaGF2aW9yKCk7XG4gICAgICAgIHRoaXMuc2xpZGVQYW5lbFNlcnZpY2UuY3JlYXRlU2xpZGVQYW5lbCh0aGlzLmlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgLy8gdG8gZXhlY3V0ZWQgYXQgYSBzYWZlIHRpbWUgcHJpb3IgdG8gY29udHJvbCByZXR1cm5pbmcgdG8gdGhlIGJyb3dzZXIncyBldmVudCBsb29wXG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZVNsaWRlSGVpZ2h0KCk7XG4gICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVTaWRlQ29udGVudFdpZHRoKCk7XG4gICAgICAgICAgICB0aGlzLmlzQ29udGVudEFuaW1hdGlvbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNyZWF0ZU9wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tCdXR0b24oKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQW5pbWF0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcblxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxPcGVuZWQuZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYW5lbENsb3NlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250ZW50QW5pbWF0aW9uU3RhcnQoKSB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRBbmltYXRpb25Eb25lKCkge1xuICAgICAgICB0aGlzLmlzQW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlU2lkZUNvbnRlbnRXaWR0aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NoZWNrT3ZlckJlaGF2aW9yKCkge1xuICAgICAgICB0aGlzLmlzU2xpZGVPdmVyID0gd2luZG93LmlubmVyV2lkdGggPD0gU01BTExfREVWSUNFX0JSRUFLUE9JTlQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlU2xpZGVIZWlnaHQoKSB7XG4gICAgICAgIHRoaXMuc2xpZGVIZWlnaHQgPSB0aGlzLl9zaWRlQ29udGVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVTaWRlQ29udGVudFdpZHRoKCkge1xuICAgICAgICBjb25zdCBzbGlkZVBhbmVsV2lkdGggPSB0aGlzLl9zbGlkZVBhbmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGNvbnN0IHNsaWRlQ29udGVudFdpZHRoID0gdGhpcy5fc2xpZGVDb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgdGhpcy5zaWRlQ29udGVudFdpZHRoID0gc2xpZGVQYW5lbFdpZHRoIC0gc2xpZGVDb250ZW50V2lkdGg7XG4gICAgfVxufSJdfQ==