ngx-bimplus-components 0.0.8 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/images/3_dots.svg +1 -0
- package/assets/images/3_dots_active.svg +1 -0
- package/assets/images/6-dots-gray.svg +10 -0
- package/assets/images/6_dots_gray.svg +8 -0
- package/assets/images/checkbox_off.svg +3 -0
- package/assets/images/checkbox_off_disabled.svg +3 -0
- package/assets/images/checkbox_off_hovered.svg +3 -0
- package/assets/images/checkbox_on.svg +4 -0
- package/assets/images/checkbox_on_disabled.svg +4 -0
- package/assets/images/checkbox_on_hovered.svg +4 -0
- package/assets/images/collapsed_18_small.svg +3 -0
- package/assets/images/expanded_18_small.svg +3 -0
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.component.mjs +63 -0
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.interface.mjs +2 -0
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +224 -0
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +2 -0
- package/esm2022/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.component.mjs +87 -0
- package/esm2022/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.interface.mjs +17 -0
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +29 -6
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.interface.mjs +8 -2
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +232 -0
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.mjs +2 -0
- package/esm2022/lib/components/bimplus-object-navigator/filter-criterium/filter-criterium.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +87 -0
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.interface.mjs +17 -0
- package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.mjs +30 -15
- package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.interface.mjs +1 -1
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +29 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ngx-bimplus-components.mjs +794 -24
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-context-menu/bimplus-context-menu.component.d.ts +20 -0
- package/lib/components/bimplus-context-menu/bimplus-context-menu.interface.d.ts +9 -0
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.d.ts +51 -0
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.d.ts +19 -0
- package/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.component.d.ts +20 -0
- package/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.interface.d.ts +11 -0
- package/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.d.ts +8 -3
- package/lib/components/bimplus-object-navigator/bimplus-object-navigator.interface.d.ts +8 -0
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.d.ts +46 -0
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.d.ts +14 -0
- package/lib/components/bimplus-object-structure/bimplus-object-structure.component.d.ts +20 -0
- package/lib/components/bimplus-object-structure/bimplus-object-structure.interface.d.ts +11 -0
- package/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.d.ts +6 -2
- package/lib/components/bimplus-tool-hub/bimplus-tool-hub.interface.d.ts +6 -1
- package/lib/directives/click-outside/click-outside.directive.d.ts +10 -0
- package/package.json +4 -2
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="4" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 2a2 2 0 11-4 0 2 2 0 014 0zm0 7a2 2 0 11-4 0 2 2 0 014 0zm-2 9a2 2 0 100-4 2 2 0 000 4z" fill="#444"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="4" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 2a2 2 0 11-4 0 2 2 0 014 0zm0 7a2 2 0 11-4 0 2 2 0 014 0zm-2 9a2 2 0 100-4 2 2 0 000 4z" fill="#FE5000"/></svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg width="237" height="22" viewBox="0 0 237 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="7" y="4" width="2" height="2" fill="#7B7B7B"/>
|
|
3
|
+
<rect x="12" y="4" width="2" height="2" fill="#7B7B7B"/>
|
|
4
|
+
<rect x="7" y="10" width="2" height="2" fill="#7B7B7B"/>
|
|
5
|
+
<rect x="12" y="10" width="2" height="2" fill="#7B7B7B"/>
|
|
6
|
+
<rect x="7" y="16" width="2" height="2" fill="#7B7B7B"/>
|
|
7
|
+
<rect x="12" y="16" width="2" height="2" fill="#7B7B7B"/>
|
|
8
|
+
<rect opacity="0.1" width="237" height="22" rx="3" fill="#A9A9A9" fill-opacity="0" />
|
|
9
|
+
</svg>
|
|
10
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="11" y="2" width="2" height="2" fill="#7B7B7B"/>
|
|
3
|
+
<rect x="6" y="2" width="2" height="2" fill="#7B7B7B"/>
|
|
4
|
+
<rect x="11" y="8" width="2" height="2" fill="#7B7B7B"/>
|
|
5
|
+
<rect x="6" y="8" width="2" height="2" fill="#7B7B7B"/>
|
|
6
|
+
<rect x="11" y="14" width="2" height="2" fill="#7B7B7B"/>
|
|
7
|
+
<rect x="6" y="14" width="2" height="2" fill="#7B7B7B"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="3" y="3" width="12" height="12" fill="#fe5000"/>
|
|
3
|
+
<path d="M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z" fill="white"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="3" y="3" width="12" height="12" fill="#D3D3D3"/>
|
|
3
|
+
<path d="M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z" fill="white"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="3" y="3" width="12" height="12" fill="#fe5000"/>
|
|
3
|
+
<path d="M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z" fill="white"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M7.81235 5.64988C7.48497 5.38797 7 5.62106 7 6.04031L7 11.9597C7 12.3789 7.48497 12.612 7.81235 12.3501L11.512 9.39043C11.7622 9.19027 11.7622 8.80973 11.512 8.60957L7.81235 5.64988Z" fill="#ADADAD"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M12.3501 7.81235C12.612 7.48497 12.3789 7 11.9597 7H6.04031C5.62106 7 5.38797 7.48497 5.64988 7.81235L8.60957 11.512C8.80973 11.7622 9.19027 11.7622 9.39043 11.512L12.3501 7.81235Z" fill="#444444"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Component, Input, booleanAttribute } from '@angular/core';
|
|
2
|
+
import { NgFor, NgIf } from '@angular/common';
|
|
3
|
+
import { ClickOutsideDirective } from '../../directives/click-outside/click-outside.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BimplusContextMenuComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.showIcons = true;
|
|
8
|
+
this.triggerTitle = "";
|
|
9
|
+
this._showDropdown = false;
|
|
10
|
+
this._items = new Array();
|
|
11
|
+
this._data = undefined;
|
|
12
|
+
}
|
|
13
|
+
get items() {
|
|
14
|
+
return this._items;
|
|
15
|
+
}
|
|
16
|
+
set items(value) {
|
|
17
|
+
if (!value) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this._items = value;
|
|
21
|
+
}
|
|
22
|
+
get data() {
|
|
23
|
+
return this._data;
|
|
24
|
+
}
|
|
25
|
+
set data(data) {
|
|
26
|
+
this._data = data;
|
|
27
|
+
}
|
|
28
|
+
_clickOutside() {
|
|
29
|
+
this._showDropdown = false;
|
|
30
|
+
}
|
|
31
|
+
_actionClick(item) {
|
|
32
|
+
this._showDropdown = false;
|
|
33
|
+
item.action?.(this._data);
|
|
34
|
+
}
|
|
35
|
+
_disabled(item) {
|
|
36
|
+
if (!item.disabled) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
if (typeof item.disabled === 'function') {
|
|
40
|
+
return item.disabled?.(this._data);
|
|
41
|
+
}
|
|
42
|
+
return item.disabled;
|
|
43
|
+
}
|
|
44
|
+
_toggleDropdown() {
|
|
45
|
+
this._showDropdown = !this._showDropdown;
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BimplusContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: BimplusContextMenuComponent, isStandalone: true, selector: "lib-bimplus-context-menu", inputs: { showIcons: ["showIcons", "showIcons", booleanAttribute], triggerTitle: "triggerTitle", items: "items", data: "data" }, ngImport: i0, template: "<div class=\"basic-context-menu\" libClickOutside (clickOutside)=\"_clickOutside()\">\r\n <div class=\"context-menu-trigger\" (click)=\"_toggleDropdown()\" title=\"{{triggerTitle}}\">\r\n </div>\r\n <ul class=\"basic-context-menu__list\" *ngIf=\"_showDropdown\">\r\n <ng-container *ngFor=\"let item of _items\">\r\n <li class=\"basic-context-menu__item\"\r\n [class.basic-context-menu__item--disabled]=\"_disabled(item)\"\r\n *ngIf=\"item.id !== 'separator'\"\r\n (click)=\"_actionClick(item)\"\r\n >\r\n <div class=\"basic-context-menu__item__icon\" [style.background-image]=\"'url(' + item.icon + ')'\" *ngIf=\"showIcons\">\r\n </div>\r\n <div class=\"basic-context-menu__item__label\" title=\"{{item.tooltip ? item.tooltip : item.title}}\">\r\n {{item.title}}\r\n </div>\r\n </li>\r\n <div class=\"basic-context-menu__item__separator\" *ngIf=\"item.id === 'separator'\"></div>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n", styles: [".text-selected{color:#fe5000}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.no-transition{-moz-transition:none;-webkit-transition:none;-o-transition:color 0 ease-in;transition:none}.ml-1{margin-left:1rem}.mr-1{margin-right:1rem}.h-full{height:100%}.fixed{position:fixed}.basic-context-menu{display:block;font-family:var(--context-menu-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--context-menu-font-size, 1.4rem)}.basic-context-menu .context-menu-trigger{min-width:var(--context-menu-trigger-width, 2.5rem);max-width:var(--context-menu-trigger-width, 2.5rem);min-height:var(--context-menu-trigger-height, 2.5rem);max-height:var(--context-menu-trigger-height, 2.5rem);background-repeat:no-repeat;background-position:center;background-image:url('data:image/svg+xml,<svg width=\"4\" height=\"18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 2a2 2 0 11-4 0 2 2 0 014 0zm0 7a2 2 0 11-4 0 2 2 0 014 0zm-2 9a2 2 0 100-4 2 2 0 000 4z\" fill=\"%23444\"/></svg>');background-color:var(--context-menu-trigger-bkg-color, transparent)}.basic-context-menu .context-menu-trigger:hover{background-image:url('data:image/svg+xml,<svg width=\"4\" height=\"18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 2a2 2 0 11-4 0 2 2 0 014 0zm0 7a2 2 0 11-4 0 2 2 0 014 0zm-2 9a2 2 0 100-4 2 2 0 000 4z\" fill=\"%23FE5000\"/></svg>')}.basic-context-menu .basic-context-menu__list{z-index:1;position:absolute;translate:var(--context-menu-trigger-width, 2.5rem) calc(0rem - var(--context-menu-trigger-height, 2.5rem));border:thin solid var(--context-menu-border-color, #E0E0E0);border-top-width:0;padding:.8rem 2.1rem .8rem 1.2rem;border-bottom-left-radius:var(--context-menu-border-radius, .6rem);border-bottom-right-radius:var(--context-menu-border-radius, .6rem);border-top-left-radius:var(--context-menu-border-radius, .6rem);border-top-right-radius:var(--context-menu-border-radius, .6rem);-webkit-box-shadow:0 .2rem .6rem rgba(0,0,0,.5);-moz-box-shadow:0 .2rem .6rem rgba(0,0,0,.5);box-shadow:0 .2rem .6rem #00000080;width:fit-content;min-width:var(--context-menu-min-width, 10rem);max-width:var(--context-menu-max-width, 30rem);background-color:var(--context-menu-bkg-color, #ffffff)}.basic-context-menu .basic-context-menu__list .basic-context-menu__item{display:flex;flex-direction:row;cursor:pointer;line-height:var(--context-menu-item-line-height, 3.2rem);list-style-type:none}.basic-context-menu .basic-context-menu__list .basic-context-menu__item .basic-context-menu__item__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--context-menu-font-weight, 700);color:#333}.basic-context-menu .basic-context-menu__list .basic-context-menu__item .basic-context-menu__item__icon{height:var(--context-menu-item-line-height, 3.2rem);width:var(--context-menu-item-line-height, 3.2rem);min-width:var(--context-menu-item-line-height, 3.2rem);background-repeat:no-repeat;background-size:var(--context-menu-item-icon-size, 1.8rem);margin-right:.6rem;background-position:center;background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 30 30\" style=\"enable-background:new 0 0 30 30;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23F05423;}%0D%0A%09.st1{fill:%23FFFFFF;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M15,0C6.7,0,0,6.7,0,15s6.7,15,15,15s15-6.7,15-15S23.3,0,15,0z\"/>%0D%0A<g>%0D%0A%09<rect x=\"14\" y=\"6\" class=\"st1\" width=\"3\" height=\"3\"/>%0D%0A</g>%0D%0A<g>%0D%0A%09<polygon class=\"st1\" points=\"19,23 12,23 12,21 14,21 14,13 12,13 12,11 17,11 17,21 19,21 %09\"/>%0D%0A</g>%0D%0A</svg>%0D%0A')}.basic-context-menu .basic-context-menu__list .basic-context-menu__item:hover{background-color:var(--context-menu-hover-color, #F5F5F5)}.basic-context-menu .basic-context-menu__list .basic-context-menu__item__separator{border-top:solid .2rem var(--context-menu-separator-color, #f5f5f5)}.basic-context-menu .basic-context-menu__list .basic-context-menu__item--disabled,.basic-context-menu .basic-context-menu__list .basic-context-menu__item--disabled:hover{opacity:var(--context-menu-item-disabled-opacity, .3);background-color:transparent;cursor:default}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[libClickOutside]", outputs: ["clickOutside"] }] }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BimplusContextMenuComponent, decorators: [{
|
|
51
|
+
type: Component,
|
|
52
|
+
args: [{ selector: 'lib-bimplus-context-menu', standalone: true, imports: [NgFor, NgIf, ClickOutsideDirective], template: "<div class=\"basic-context-menu\" libClickOutside (clickOutside)=\"_clickOutside()\">\r\n <div class=\"context-menu-trigger\" (click)=\"_toggleDropdown()\" title=\"{{triggerTitle}}\">\r\n </div>\r\n <ul class=\"basic-context-menu__list\" *ngIf=\"_showDropdown\">\r\n <ng-container *ngFor=\"let item of _items\">\r\n <li class=\"basic-context-menu__item\"\r\n [class.basic-context-menu__item--disabled]=\"_disabled(item)\"\r\n *ngIf=\"item.id !== 'separator'\"\r\n (click)=\"_actionClick(item)\"\r\n >\r\n <div class=\"basic-context-menu__item__icon\" [style.background-image]=\"'url(' + item.icon + ')'\" *ngIf=\"showIcons\">\r\n </div>\r\n <div class=\"basic-context-menu__item__label\" title=\"{{item.tooltip ? item.tooltip : item.title}}\">\r\n {{item.title}}\r\n </div>\r\n </li>\r\n <div class=\"basic-context-menu__item__separator\" *ngIf=\"item.id === 'separator'\"></div>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n", styles: [".text-selected{color:#fe5000}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.no-transition{-moz-transition:none;-webkit-transition:none;-o-transition:color 0 ease-in;transition:none}.ml-1{margin-left:1rem}.mr-1{margin-right:1rem}.h-full{height:100%}.fixed{position:fixed}.basic-context-menu{display:block;font-family:var(--context-menu-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--context-menu-font-size, 1.4rem)}.basic-context-menu .context-menu-trigger{min-width:var(--context-menu-trigger-width, 2.5rem);max-width:var(--context-menu-trigger-width, 2.5rem);min-height:var(--context-menu-trigger-height, 2.5rem);max-height:var(--context-menu-trigger-height, 2.5rem);background-repeat:no-repeat;background-position:center;background-image:url('data:image/svg+xml,<svg width=\"4\" height=\"18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 2a2 2 0 11-4 0 2 2 0 014 0zm0 7a2 2 0 11-4 0 2 2 0 014 0zm-2 9a2 2 0 100-4 2 2 0 000 4z\" fill=\"%23444\"/></svg>');background-color:var(--context-menu-trigger-bkg-color, transparent)}.basic-context-menu .context-menu-trigger:hover{background-image:url('data:image/svg+xml,<svg width=\"4\" height=\"18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 2a2 2 0 11-4 0 2 2 0 014 0zm0 7a2 2 0 11-4 0 2 2 0 014 0zm-2 9a2 2 0 100-4 2 2 0 000 4z\" fill=\"%23FE5000\"/></svg>')}.basic-context-menu .basic-context-menu__list{z-index:1;position:absolute;translate:var(--context-menu-trigger-width, 2.5rem) calc(0rem - var(--context-menu-trigger-height, 2.5rem));border:thin solid var(--context-menu-border-color, #E0E0E0);border-top-width:0;padding:.8rem 2.1rem .8rem 1.2rem;border-bottom-left-radius:var(--context-menu-border-radius, .6rem);border-bottom-right-radius:var(--context-menu-border-radius, .6rem);border-top-left-radius:var(--context-menu-border-radius, .6rem);border-top-right-radius:var(--context-menu-border-radius, .6rem);-webkit-box-shadow:0 .2rem .6rem rgba(0,0,0,.5);-moz-box-shadow:0 .2rem .6rem rgba(0,0,0,.5);box-shadow:0 .2rem .6rem #00000080;width:fit-content;min-width:var(--context-menu-min-width, 10rem);max-width:var(--context-menu-max-width, 30rem);background-color:var(--context-menu-bkg-color, #ffffff)}.basic-context-menu .basic-context-menu__list .basic-context-menu__item{display:flex;flex-direction:row;cursor:pointer;line-height:var(--context-menu-item-line-height, 3.2rem);list-style-type:none}.basic-context-menu .basic-context-menu__list .basic-context-menu__item .basic-context-menu__item__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--context-menu-font-weight, 700);color:#333}.basic-context-menu .basic-context-menu__list .basic-context-menu__item .basic-context-menu__item__icon{height:var(--context-menu-item-line-height, 3.2rem);width:var(--context-menu-item-line-height, 3.2rem);min-width:var(--context-menu-item-line-height, 3.2rem);background-repeat:no-repeat;background-size:var(--context-menu-item-icon-size, 1.8rem);margin-right:.6rem;background-position:center;background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 30 30\" style=\"enable-background:new 0 0 30 30;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23F05423;}%0D%0A%09.st1{fill:%23FFFFFF;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M15,0C6.7,0,0,6.7,0,15s6.7,15,15,15s15-6.7,15-15S23.3,0,15,0z\"/>%0D%0A<g>%0D%0A%09<rect x=\"14\" y=\"6\" class=\"st1\" width=\"3\" height=\"3\"/>%0D%0A</g>%0D%0A<g>%0D%0A%09<polygon class=\"st1\" points=\"19,23 12,23 12,21 14,21 14,13 12,13 12,11 17,11 17,21 19,21 %09\"/>%0D%0A</g>%0D%0A</svg>%0D%0A')}.basic-context-menu .basic-context-menu__list .basic-context-menu__item:hover{background-color:var(--context-menu-hover-color, #F5F5F5)}.basic-context-menu .basic-context-menu__list .basic-context-menu__item__separator{border-top:solid .2rem var(--context-menu-separator-color, #f5f5f5)}.basic-context-menu .basic-context-menu__list .basic-context-menu__item--disabled,.basic-context-menu .basic-context-menu__list .basic-context-menu__item--disabled:hover{opacity:var(--context-menu-item-disabled-opacity, .3);background-color:transparent;cursor:default}\n"] }]
|
|
53
|
+
}], propDecorators: { showIcons: [{
|
|
54
|
+
type: Input,
|
|
55
|
+
args: [{ transform: booleanAttribute }]
|
|
56
|
+
}], triggerTitle: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], items: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], data: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}] } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1jb250ZXh0LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7QUFVL0YsTUFBTSxPQUFPLDJCQUEyQjtJQVJ4QztRQVMwQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBQ3pELGlCQUFZLEdBQVksRUFBRSxDQUFDO1FBRTFCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLFdBQU0sR0FBa0MsSUFBSSxLQUFLLEVBQTBCLENBQUM7UUFDNUUsVUFBSyxHQUFZLFNBQVMsQ0FBQztLQTBDdEM7SUF4Q0MsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFhLEtBQUssQ0FBQyxLQUF1RDtRQUN4RSxJQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQWEsSUFBSSxDQUFDLElBQVk7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUE0QjtRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBNEI7UUFDOUMsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFHLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRVMsZUFBZTtRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMzQyxDQUFDOzhHQS9DVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw0R0FDbEIsZ0JBQWdCLHlGQ2R0QyxxL0JBb0JBLGluS0RaWSxLQUFLLG1IQUFFLElBQUksNkZBQUUscUJBQXFCOzsyRkFLakMsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDOzhCQU1MLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU08sS0FBSztzQkFBakIsS0FBSztnQkFXTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJpbXBsdXNDb250ZXh0TWVudUl0ZW0gfSBmcm9tICcuL2JpbXBsdXMtY29udGV4dC1tZW51LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLWNvbnRleHQtbWVudScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdGb3IsIE5nSWYsIENsaWNrT3V0c2lkZURpcmVjdGl2ZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYmltcGx1cy1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmxlc3MnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQmltcGx1c0NvbnRleHRNZW51Q29tcG9uZW50IHtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0ljb25zOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0cmlnZ2VyVGl0bGUgOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwcm90ZWN0ZWQgX3Nob3dEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBfaXRlbXM6IEFycmF5PEJpbXBsdXNDb250ZXh0TWVudUl0ZW0+ID0gbmV3IEFycmF5PEJpbXBsdXNDb250ZXh0TWVudUl0ZW0+KCk7XHJcbiAgcHJvdGVjdGVkIF9kYXRhPzogb2JqZWN0ID0gdW5kZWZpbmVkO1xyXG5cclxuICBnZXQgaXRlbXMoKTogQXJyYXk8QmltcGx1c0NvbnRleHRNZW51SXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IEFycmF5PEJpbXBsdXNDb250ZXh0TWVudUl0ZW0+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGEoKTogdW5kZWZpbmVkIHwgb2JqZWN0IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgZGF0YShkYXRhOiBvYmplY3QpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9jbGlja091dHNpZGUoKSB7XHJcbiAgICB0aGlzLl9zaG93RHJvcGRvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfYWN0aW9uQ2xpY2soaXRlbTogQmltcGx1c0NvbnRleHRNZW51SXRlbSkge1xyXG4gICAgdGhpcy5fc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICBpdGVtLmFjdGlvbj8uKHRoaXMuX2RhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9kaXNhYmxlZChpdGVtOiBCaW1wbHVzQ29udGV4dE1lbnVJdGVtKTogYm9vbGVhbiB7XHJcbiAgICBpZighaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZih0eXBlb2YgaXRlbS5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gaXRlbS5kaXNhYmxlZD8uKHRoaXMuX2RhdGEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW0uZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3RvZ2dsZURyb3Bkb3duKCkge1xyXG4gICAgdGhpcy5fc2hvd0Ryb3Bkb3duID0gIXRoaXMuX3Nob3dEcm9wZG93bjtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJhc2ljLWNvbnRleHQtbWVudVwiIGxpYkNsaWNrT3V0c2lkZSAoY2xpY2tPdXRzaWRlKT1cIl9jbGlja091dHNpZGUoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZXh0LW1lbnUtdHJpZ2dlclwiIChjbGljayk9XCJfdG9nZ2xlRHJvcGRvd24oKVwiIHRpdGxlPVwie3t0cmlnZ2VyVGl0bGV9fVwiPlxyXG4gIDwvZGl2PlxyXG4gIDx1bCBjbGFzcz1cImJhc2ljLWNvbnRleHQtbWVudV9fbGlzdFwiICpuZ0lmPVwiX3Nob3dEcm9wZG93blwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfaXRlbXNcIj5cclxuICAgICAgPGxpIGNsYXNzPVwiYmFzaWMtY29udGV4dC1tZW51X19pdGVtXCJcclxuICAgICAgICBbY2xhc3MuYmFzaWMtY29udGV4dC1tZW51X19pdGVtLS1kaXNhYmxlZF09XCJfZGlzYWJsZWQoaXRlbSlcIlxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5pZCAhPT0gJ3NlcGFyYXRvcidcIlxyXG4gICAgICAgIChjbGljayk9XCJfYWN0aW9uQ2xpY2soaXRlbSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWNvbnRleHQtbWVudV9faXRlbV9faWNvblwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIGl0ZW0uaWNvbiArICcpJ1wiICpuZ0lmPVwic2hvd0ljb25zXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWNvbnRleHQtbWVudV9faXRlbV9fbGFiZWxcIiB0aXRsZT1cInt7aXRlbS50b29sdGlwID8gaXRlbS50b29sdGlwIDogaXRlbS50aXRsZX19XCI+XHJcbiAgICAgICAgICB7e2l0ZW0udGl0bGV9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2xpPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFzaWMtY29udGV4dC1tZW51X19pdGVtX19zZXBhcmF0b3JcIiAqbmdJZj1cIml0ZW0uaWQgPT09ICdzZXBhcmF0b3InXCI+PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L3VsPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEJpbXBsdXNDb250ZXh0TWVudUl0ZW0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgaWNvbkNsYXNzPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcD86IHN0cmluZztcclxuICBkaXNhYmxlZD86IEZ1bmN0aW9uIHwgYm9vbGVhbjtcclxuICBhY3Rpb24/OiBGdW5jdGlvbjtcclxufSJdfQ==
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { Component, Input, booleanAttribute, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';
|
|
5
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
6
|
+
import { CdkTreeModule, FlatTreeControl } from '@angular/cdk/tree';
|
|
7
|
+
import { NgIf } from '@angular/common';
|
|
8
|
+
import { fireEvent } from '../../utils/utils';
|
|
9
|
+
import { BimplusContextMenuComponent } from '../bimplus-context-menu/bimplus-context-menu.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/material/tree";
|
|
12
|
+
import * as i2 from "@angular/material/button";
|
|
13
|
+
import * as i3 from "@angular/cdk/tree";
|
|
14
|
+
export class BimplusFlatTreeComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.treeDataStringified = null;
|
|
17
|
+
this.treeTitle = "";
|
|
18
|
+
this.paddingIndent = "2.8rem";
|
|
19
|
+
this.multiSelect = false;
|
|
20
|
+
this.oneLevelMultiSelect = false;
|
|
21
|
+
this.showFoldersIcons = false;
|
|
22
|
+
this.showObjectsIcons = false;
|
|
23
|
+
this.enableSelect = true;
|
|
24
|
+
this.enableParentHighlighting = true;
|
|
25
|
+
this.enableDragAndDrop = false;
|
|
26
|
+
this.dataTestPrefix = "";
|
|
27
|
+
this.contextMenus = null;
|
|
28
|
+
this.selectedNodes = new EventEmitter();
|
|
29
|
+
this._selectionList = undefined;
|
|
30
|
+
this._transformer = (node, level) => {
|
|
31
|
+
return {
|
|
32
|
+
expandable: node.children !== undefined,
|
|
33
|
+
children_count: node.children?.length,
|
|
34
|
+
name: node.name,
|
|
35
|
+
id: node.id,
|
|
36
|
+
level: level,
|
|
37
|
+
parent: node.parent
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
this._treeControl = new FlatTreeControl(node => node.level, node => node.expandable);
|
|
41
|
+
this._treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children);
|
|
42
|
+
this._dataSource = new MatTreeFlatDataSource(this._treeControl, this._treeFlattener);
|
|
43
|
+
this._isExpendable = (_, node) => node.expandable;
|
|
44
|
+
}
|
|
45
|
+
get treeData() {
|
|
46
|
+
return this._dataSource.data;
|
|
47
|
+
}
|
|
48
|
+
set treeData(data) {
|
|
49
|
+
this.treeDataStringified = null;
|
|
50
|
+
this._dataSource.data = data;
|
|
51
|
+
}
|
|
52
|
+
ngOnInit() {
|
|
53
|
+
this._selectionList = new SelectionModel(this.multiSelect || this.oneLevelMultiSelect);
|
|
54
|
+
if (this.treeDataStringified) {
|
|
55
|
+
this._setNewData(this.treeDataStringified);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
expandTree() {
|
|
59
|
+
this._treeControl.expandAll();
|
|
60
|
+
}
|
|
61
|
+
_setNewData(treeDataStringified) {
|
|
62
|
+
const _tree_data = JSON.parse(treeDataStringified);
|
|
63
|
+
this._dataSource.data = _tree_data;
|
|
64
|
+
}
|
|
65
|
+
_changedTreeData(change) {
|
|
66
|
+
this._setNewData(change.currentValue);
|
|
67
|
+
}
|
|
68
|
+
ngOnChanges(changes) {
|
|
69
|
+
if (changes['multiSelect'] || changes['oneLevelMultiSelect']) {
|
|
70
|
+
this._selectionList = new SelectionModel(this.multiSelect || this.oneLevelMultiSelect);
|
|
71
|
+
}
|
|
72
|
+
if (changes['treeDataStringified']) {
|
|
73
|
+
this._changedTreeData(changes['treeDataStringified']);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
_hasChildren(node) {
|
|
77
|
+
if (!node.expandable) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (node.children_count === undefined) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return node.children_count > 0;
|
|
84
|
+
}
|
|
85
|
+
_descendantsAllSelected(node) {
|
|
86
|
+
if (!this._selectionList) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
const _selectionList = this._selectionList;
|
|
90
|
+
const _descendants = this._treeControl.getDescendants(node);
|
|
91
|
+
if (_descendants.length === 0) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
const _descAllSelected = _descendants.length > 0 && _descendants.every((child) => {
|
|
95
|
+
return _selectionList.isSelected(child);
|
|
96
|
+
});
|
|
97
|
+
return _descAllSelected;
|
|
98
|
+
}
|
|
99
|
+
_descendantsPartiallySelected(node) {
|
|
100
|
+
if (!this._selectionList) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
const _selectionList = this._selectionList;
|
|
104
|
+
const _descendants = this._treeControl.getDescendants(node);
|
|
105
|
+
const _result = _descendants.some((child) => {
|
|
106
|
+
return _selectionList.isSelected(child);
|
|
107
|
+
});
|
|
108
|
+
return _result && !this._descendantsAllSelected(node);
|
|
109
|
+
}
|
|
110
|
+
_toggleDescendantsNodes(node) {
|
|
111
|
+
if (!this._selectionList) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const _isNodeSelected = this._selectionList.isSelected(node);
|
|
115
|
+
if (_isNodeSelected) {
|
|
116
|
+
this._selectionList.select(...this._treeControl.getDescendants(node));
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this._selectionList.deselect(...this._treeControl.getDescendants(node));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
_updateParentSelections(node) {
|
|
123
|
+
if (!this._selectionList) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
let _parentId = node.parent;
|
|
127
|
+
let _parentNode = this._treeControl.dataNodes.find(n => n.id === _parentId);
|
|
128
|
+
while (_parentNode) {
|
|
129
|
+
if (this._descendantsAllSelected(_parentNode)) {
|
|
130
|
+
this._selectionList.select(_parentNode);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this._selectionList.deselect(_parentNode);
|
|
134
|
+
}
|
|
135
|
+
_parentId = _parentNode.parent;
|
|
136
|
+
_parentNode = this._treeControl.dataNodes.find(n => n.id === _parentId);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
_togleNode(event, node) {
|
|
140
|
+
if (!node) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (!this.enableSelect) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (!this._selectionList) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (!event?.ctrlKey) {
|
|
150
|
+
this._selectionList.clear();
|
|
151
|
+
}
|
|
152
|
+
if (this.oneLevelMultiSelect && this._selectionList.selected.length > 0) {
|
|
153
|
+
if (this._selectionList.selected[0].parent !== node.parent) {
|
|
154
|
+
this._selectionList.clear();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
this._selectionList.toggle(node);
|
|
158
|
+
if (!this.multiSelect && !this.oneLevelMultiSelect) {
|
|
159
|
+
fireEvent(this, "selectedNodes", this._selectionList.selected);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (!this.oneLevelMultiSelect) {
|
|
163
|
+
this._toggleDescendantsNodes(node);
|
|
164
|
+
}
|
|
165
|
+
if (this.enableParentHighlighting) {
|
|
166
|
+
this._updateParentSelections(node);
|
|
167
|
+
}
|
|
168
|
+
fireEvent(this, "selectedNodes", this._selectionList.selected);
|
|
169
|
+
}
|
|
170
|
+
_isSelected(node) {
|
|
171
|
+
if (!this._selectionList) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
return this._selectionList?.isSelected(node);
|
|
175
|
+
}
|
|
176
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BimplusFlatTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
177
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: BimplusFlatTreeComponent, isStandalone: true, selector: "lib-bimplus-flat-tree", inputs: { treeDataStringified: "treeDataStringified", treeTitle: "treeTitle", paddingIndent: "paddingIndent", multiSelect: ["multiSelect", "multiSelect", booleanAttribute], oneLevelMultiSelect: ["oneLevelMultiSelect", "oneLevelMultiSelect", booleanAttribute], showFoldersIcons: ["showFoldersIcons", "showFoldersIcons", booleanAttribute], showObjectsIcons: ["showObjectsIcons", "showObjectsIcons", booleanAttribute], enableSelect: ["enableSelect", "enableSelect", booleanAttribute], enableParentHighlighting: ["enableParentHighlighting", "enableParentHighlighting", booleanAttribute], enableDragAndDrop: ["enableDragAndDrop", "enableDragAndDrop", booleanAttribute], dataTestPrefix: "dataTestPrefix", contextMenus: "contextMenus", treeData: "treeData" }, outputs: { selectedNodes: "selectedNodes" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tree-container\">\r\n <div *ngIf=\"treeTitle\" class=\"tree-title\">{{treeTitle}}</div>\r\n <cdk-tree [dataSource]=\"_dataSource\" [treeControl]=\"_treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <cdk-tree-node\r\n [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodePadding\r\n (click)=\"_togleNode($event, node)\"\r\n class=\"object-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n >\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled>\r\n </button>\r\n <div class=\"icon object-icon\" *ngIf=\"showObjectsIcons\">\r\n </div>\r\n <span\r\n class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div>\r\n {{node.name}}\r\n </div>\r\n </span>\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.objectContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.objectContextMenuitems?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <cdk-tree-node [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node;when: _isExpendable\"\r\n matTreeNodePadding\r\n (click)=\"_togleNode($event, node)\"\r\n class=\"folder-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.name\"\r\n >\r\n <div\r\n class=\"icon expand-collapse-icon\"\r\n [class.expand-more-icon]=\"_hasChildren(node) && !_treeControl.isExpanded(node)\"\r\n [class.collapse-icon]=\"_hasChildren(node) && _treeControl.isExpanded(node)\"\r\n >\r\n </div>\r\n </button>\r\n <div class=\"icon folder-icon\" *ngIf=\"showFoldersIcons\">\r\n </div>\r\n <span class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [class.selected-all-descendants-nodes]=\"_descendantsAllSelected(node) && _isSelected(node) && enableParentHighlighting\"\r\n [class.selected-partially-descendants-nodes]=\"_descendantsPartiallySelected(node) && enableParentHighlighting\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div class=\"node-label\">\r\n {{node.name}}\r\n </div>\r\n </span>\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.folderContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.folderContextMenuitems?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n </cdk-tree>\r\n</div>\r\n", styles: [".text-selected{color:#fe5000}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.tree-container{background-color:var(--flat-tree-bkg-color, #ffffff);width:calc(100% - 2 * var(--flat-tree-padding, 1rem));padding:var(--flat-tree-padding, 1rem);font-family:var(--flat-tree-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--flat-tree-font-size, 1.3rem);font-weight:var(--flat-tree-font-weight, 700);color:var(--flat-tree-color, #444)}.tree-container .tree-title{background-color:transparent;font-size:var(--flat-tree-title-font-size, 1.6rem);margin-bottom:1rem}.cdk-tree{background-color:transparent;width:100%}.cdk-tree .cdk-tree-node{background-color:transparent;display:flex;align-items:center;cursor:pointer;line-height:var(--flat-tree-node-line-height, 2.4rem)}.cdk-tree .cdk-tree-node.folder-node{font-weight:var(--flat-tree-folder-font-weight, 700)}.cdk-tree .cdk-tree-node.object-node{font-weight:var(--flat-tree-object-font-weight, 400)}.cdk-tree .cdk-tree-node span.node-label{overflow:hidden;flex:1}.cdk-tree .cdk-tree-node span.node-label div.node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-tree .cdk-tree-node lib-bimplus-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: var(--flat-tree-node-line-height, 2.4rem);--context-menu-trigger-bkg-color: transparent}.cdk-tree .cdk-tree-node:not(.selected-node):not(:hover) lib-bimplus-context-menu{display:none}.cdk-tree-node.dragable-node:hover{background-color:var(--flat-tree-hover-color, #F5F5F5);background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"11\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;background-size:var(--flat-tree-node-icon-size, 1.8rem);background-position:left center}.mat-mdc-icon-button{padding:.2rem;width:var(--flat-tree-node-line-height, 2.4rem);height:var(--flat-tree-node-line-height, 2.4rem)}.selected-node{color:var(--flat-tree-selected-node-color, #2188ca);font-weight:var(--flat-tree-selected-node-font-weight, 700)}.selected-all-descendants-nodes{color:var(--flat-tree-selected-node-color, #2188ca)}.selected-partially-descendants-nodes{color:var(--flat-tree-partially-selected-node-color, rgba(0, 71, 171, .55))}.custom-drag-placeholder{height:0px}.icon{width:var(--flat-tree-node-icon-size, 1.8rem);height:var(--flat-tree-node-icon-size, 1.8rem);margin-right:.4rem;background-position:center;background-size:var(--flat-tree-node-icon-size, 1.8rem)}.icon.folder-icon{background:var(--flat-tree-folder-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444444;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M17,7V5V4V1h-6L8,3H0v16h2h15l3-12H17z M8,5h0.6l0.5-0.3L11.6,3H15v1v1v2H3l-1,4V5H8z M15.4,17H2.6l2-8H15h2%0D%0A%09h0.4L15.4,17z\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-folder-icon-size, 1.6rem);background-position:center}.icon.object-icon{background:var(--flat-tree-object-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444;}%0D%0A<\\/style>%0D%0A<g>%0D%0A%09<path class=\"st0\" d=\"M6,9h4V7H6V9z\"/>%0D%0A%09<path class=\"st0\" d=\"M6,4v2h8V4H6z\"/>%0D%0A%09<path class=\"st0\" d=\"M6,12h4v-2H6V12z\"/>%0D%0A%09<path class=\"st0\" d=\"M17,1H3v18h10l0,0l0,0l4-4h0l0,0V1z M13,15v2H5V3h10v12H13z\"/>%0D%0A</g>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-object-icon-size, 1.6rem);background-position:center}.icon.expand-collapse-icon.expand-more-icon{background:var(--flat-tree-node-expand-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M7.81235 5.64988C7.48497 5.38797 7 5.62106 7 6.04031L7 11.9597C7 12.3789 7.48497 12.612 7.81235 12.3501L11.512 9.39043C11.7622 9.19027 11.7622 8.80973 11.512 8.60957L7.81235 5.64988Z\" fill=\"%23ADADAD\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}.icon.expand-collapse-icon.collapse-icon{background:var(--flat-tree-node-collapse-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M12.3501 7.81235C12.612 7.48497 12.3789 7 11.9597 7H6.04031C5.62106 7 5.38797 7.48497 5.64988 7.81235L8.60957 11.512C8.80973 11.7622 9.19027 11.7622 9.39043 11.512L12.3501 7.81235Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}\n"], dependencies: [{ kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: CdkTreeModule }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNode, selector: "cdk-tree-node", inputs: ["role"], exportAs: ["cdkTreeNode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BimplusContextMenuComponent, selector: "lib-bimplus-context-menu", inputs: ["showIcons", "triggerTitle", "items", "data"] }] }); }
|
|
178
|
+
}
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BimplusFlatTreeComponent, decorators: [{
|
|
180
|
+
type: Component,
|
|
181
|
+
args: [{ selector: 'lib-bimplus-flat-tree', standalone: true, imports: [MatTreeModule,
|
|
182
|
+
MatButtonModule,
|
|
183
|
+
MatIconModule,
|
|
184
|
+
CdkTreeModule,
|
|
185
|
+
NgIf,
|
|
186
|
+
BimplusContextMenuComponent
|
|
187
|
+
], template: "<div class=\"tree-container\">\r\n <div *ngIf=\"treeTitle\" class=\"tree-title\">{{treeTitle}}</div>\r\n <cdk-tree [dataSource]=\"_dataSource\" [treeControl]=\"_treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <cdk-tree-node\r\n [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodePadding\r\n (click)=\"_togleNode($event, node)\"\r\n class=\"object-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n >\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled>\r\n </button>\r\n <div class=\"icon object-icon\" *ngIf=\"showObjectsIcons\">\r\n </div>\r\n <span\r\n class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div>\r\n {{node.name}}\r\n </div>\r\n </span>\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.objectContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.objectContextMenuitems?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <cdk-tree-node [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node;when: _isExpendable\"\r\n matTreeNodePadding\r\n (click)=\"_togleNode($event, node)\"\r\n class=\"folder-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.name\"\r\n >\r\n <div\r\n class=\"icon expand-collapse-icon\"\r\n [class.expand-more-icon]=\"_hasChildren(node) && !_treeControl.isExpanded(node)\"\r\n [class.collapse-icon]=\"_hasChildren(node) && _treeControl.isExpanded(node)\"\r\n >\r\n </div>\r\n </button>\r\n <div class=\"icon folder-icon\" *ngIf=\"showFoldersIcons\">\r\n </div>\r\n <span class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [class.selected-all-descendants-nodes]=\"_descendantsAllSelected(node) && _isSelected(node) && enableParentHighlighting\"\r\n [class.selected-partially-descendants-nodes]=\"_descendantsPartiallySelected(node) && enableParentHighlighting\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div class=\"node-label\">\r\n {{node.name}}\r\n </div>\r\n </span>\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.folderContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.folderContextMenuitems?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n </cdk-tree>\r\n</div>\r\n", styles: [".text-selected{color:#fe5000}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.tree-container{background-color:var(--flat-tree-bkg-color, #ffffff);width:calc(100% - 2 * var(--flat-tree-padding, 1rem));padding:var(--flat-tree-padding, 1rem);font-family:var(--flat-tree-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--flat-tree-font-size, 1.3rem);font-weight:var(--flat-tree-font-weight, 700);color:var(--flat-tree-color, #444)}.tree-container .tree-title{background-color:transparent;font-size:var(--flat-tree-title-font-size, 1.6rem);margin-bottom:1rem}.cdk-tree{background-color:transparent;width:100%}.cdk-tree .cdk-tree-node{background-color:transparent;display:flex;align-items:center;cursor:pointer;line-height:var(--flat-tree-node-line-height, 2.4rem)}.cdk-tree .cdk-tree-node.folder-node{font-weight:var(--flat-tree-folder-font-weight, 700)}.cdk-tree .cdk-tree-node.object-node{font-weight:var(--flat-tree-object-font-weight, 400)}.cdk-tree .cdk-tree-node span.node-label{overflow:hidden;flex:1}.cdk-tree .cdk-tree-node span.node-label div.node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-tree .cdk-tree-node lib-bimplus-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: var(--flat-tree-node-line-height, 2.4rem);--context-menu-trigger-bkg-color: transparent}.cdk-tree .cdk-tree-node:not(.selected-node):not(:hover) lib-bimplus-context-menu{display:none}.cdk-tree-node.dragable-node:hover{background-color:var(--flat-tree-hover-color, #F5F5F5);background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"11\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;background-size:var(--flat-tree-node-icon-size, 1.8rem);background-position:left center}.mat-mdc-icon-button{padding:.2rem;width:var(--flat-tree-node-line-height, 2.4rem);height:var(--flat-tree-node-line-height, 2.4rem)}.selected-node{color:var(--flat-tree-selected-node-color, #2188ca);font-weight:var(--flat-tree-selected-node-font-weight, 700)}.selected-all-descendants-nodes{color:var(--flat-tree-selected-node-color, #2188ca)}.selected-partially-descendants-nodes{color:var(--flat-tree-partially-selected-node-color, rgba(0, 71, 171, .55))}.custom-drag-placeholder{height:0px}.icon{width:var(--flat-tree-node-icon-size, 1.8rem);height:var(--flat-tree-node-icon-size, 1.8rem);margin-right:.4rem;background-position:center;background-size:var(--flat-tree-node-icon-size, 1.8rem)}.icon.folder-icon{background:var(--flat-tree-folder-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444444;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M17,7V5V4V1h-6L8,3H0v16h2h15l3-12H17z M8,5h0.6l0.5-0.3L11.6,3H15v1v1v2H3l-1,4V5H8z M15.4,17H2.6l2-8H15h2%0D%0A%09h0.4L15.4,17z\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-folder-icon-size, 1.6rem);background-position:center}.icon.object-icon{background:var(--flat-tree-object-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444;}%0D%0A<\\/style>%0D%0A<g>%0D%0A%09<path class=\"st0\" d=\"M6,9h4V7H6V9z\"/>%0D%0A%09<path class=\"st0\" d=\"M6,4v2h8V4H6z\"/>%0D%0A%09<path class=\"st0\" d=\"M6,12h4v-2H6V12z\"/>%0D%0A%09<path class=\"st0\" d=\"M17,1H3v18h10l0,0l0,0l4-4h0l0,0V1z M13,15v2H5V3h10v12H13z\"/>%0D%0A</g>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-object-icon-size, 1.6rem);background-position:center}.icon.expand-collapse-icon.expand-more-icon{background:var(--flat-tree-node-expand-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M7.81235 5.64988C7.48497 5.38797 7 5.62106 7 6.04031L7 11.9597C7 12.3789 7.48497 12.612 7.81235 12.3501L11.512 9.39043C11.7622 9.19027 11.7622 8.80973 11.512 8.60957L7.81235 5.64988Z\" fill=\"%23ADADAD\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}.icon.expand-collapse-icon.collapse-icon{background:var(--flat-tree-node-collapse-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M12.3501 7.81235C12.612 7.48497 12.3789 7 11.9597 7H6.04031C5.62106 7 5.38797 7.48497 5.64988 7.81235L8.60957 11.512C8.80973 11.7622 9.19027 11.7622 9.39043 11.512L12.3501 7.81235Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}\n"] }]
|
|
188
|
+
}], propDecorators: { treeDataStringified: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], treeTitle: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}], paddingIndent: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], multiSelect: [{
|
|
195
|
+
type: Input,
|
|
196
|
+
args: [{ transform: booleanAttribute }]
|
|
197
|
+
}], oneLevelMultiSelect: [{
|
|
198
|
+
type: Input,
|
|
199
|
+
args: [{ transform: booleanAttribute }]
|
|
200
|
+
}], showFoldersIcons: [{
|
|
201
|
+
type: Input,
|
|
202
|
+
args: [{ transform: booleanAttribute }]
|
|
203
|
+
}], showObjectsIcons: [{
|
|
204
|
+
type: Input,
|
|
205
|
+
args: [{ transform: booleanAttribute }]
|
|
206
|
+
}], enableSelect: [{
|
|
207
|
+
type: Input,
|
|
208
|
+
args: [{ transform: booleanAttribute }]
|
|
209
|
+
}], enableParentHighlighting: [{
|
|
210
|
+
type: Input,
|
|
211
|
+
args: [{ transform: booleanAttribute }]
|
|
212
|
+
}], enableDragAndDrop: [{
|
|
213
|
+
type: Input,
|
|
214
|
+
args: [{ transform: booleanAttribute }]
|
|
215
|
+
}], dataTestPrefix: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], contextMenus: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], treeData: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], selectedNodes: [{
|
|
222
|
+
type: Output
|
|
223
|
+
}] } });
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTJCLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTyx3REFBd0QsQ0FBQTs7Ozs7QUFnQnJHLE1BQU0sT0FBTyx3QkFBd0I7SUFkckM7UUFlVyx3QkFBbUIsR0FBa0IsSUFBSSxDQUFDO1FBQzFDLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFD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ZW50LCBPbkluaXQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZSwgYm9vbGVhbkF0dHJpYnV0ZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRUcmVlRmxhdERhdGFTb3VyY2UsIE1hdFRyZWVGbGF0dGVuZXIsIE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IENka1RyZWVNb2R1bGUsIEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IGZpcmVFdmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgVHJlZU5vZGUsIEZsYXROb2RlLCBGbGF0VHJlZUNvbnRleHRNZW51cyB9IGZyb20gJy4vYmltcGx1cy1mbGF0LXRyZWUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmltcGx1c0NvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAgJy4uL2JpbXBsdXMtY29udGV4dC1tZW51L2JpbXBsdXMtY29udGV4dC1tZW51LmNvbXBvbmVudCdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtZmxhdC10cmVlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtNYXRUcmVlTW9kdWxlXHJcbiAgICAsIE1hdEJ1dHRvbk1vZHVsZVxyXG4gICAgLCBNYXRJY29uTW9kdWxlXHJcbiAgICAsIENka1RyZWVNb2R1bGVcclxuICAgICwgTmdJZlxyXG4gICAgLCBCaW1wbHVzQ29udGV4dE1lbnVDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLWZsYXQtdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtZmxhdC10cmVlLmNvbXBvbmVudC5sZXNzJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2Vze1xyXG4gIEBJbnB1dCgpIHRyZWVEYXRhU3RyaW5naWZpZWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHRyZWVUaXRsZSA6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgcGFkZGluZ0luZGVudCA6IHN0cmluZyA9IFwiMi44cmVtXCJcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbXVsdGlTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb25lTGV2ZWxNdWx0aVNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93Rm9sZGVyc0ljb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dPYmplY3RzSWNvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZW5hYmxlU2VsZWN0OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZW5hYmxlUGFyZW50SGlnaGxpZ2h0aW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZW5hYmxlRHJhZ0FuZERyb3A6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkYXRhVGVzdFByZWZpeCA6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgY29udGV4dE1lbnVzOiBGbGF0VHJlZUNvbnRleHRNZW51cyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xyXG5cclxuICBnZXQgdHJlZURhdGEoKSA6IEFycmF5PFRyZWVOb2RlPntcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlLmRhdGE7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgdHJlZURhdGEoZGF0YTogQXJyYXk8VHJlZU5vZGU+KSB7XHJcbiAgICB0aGlzLnRyZWVEYXRhU3RyaW5naWZpZWQgPSBudWxsO1xyXG4gICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZE5vZGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGbGF0Tm9kZVtdPigpO1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3Rpb25MaXN0OiBTZWxlY3Rpb25Nb2RlbDxGbGF0Tm9kZT4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uTGlzdCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxGbGF0Tm9kZT4odGhpcy5tdWx0aVNlbGVjdCB8fCB0aGlzLm9uZUxldmVsTXVsdGlTZWxlY3QpO1xyXG4gICAgaWYodGhpcy50cmVlRGF0YVN0cmluZ2lmaWVkKXtcclxuICAgICAgdGhpcy5fc2V0TmV3RGF0YSh0aGlzLnRyZWVEYXRhU3RyaW5naWZpZWQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kVHJlZSgpe1xyXG4gICAgdGhpcy5fdHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXROZXdEYXRhKHRyZWVEYXRhU3RyaW5naWZpZWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgX3RyZWVfZGF0YSA9IEpTT04ucGFyc2UodHJlZURhdGFTdHJpbmdpZmllZCk7XHJcbiAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSBfdHJlZV9kYXRhXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VkVHJlZURhdGEoY2hhbmdlOiBTaW1wbGVDaGFuZ2UpIHtcclxuICAgIHRoaXMuX3NldE5ld0RhdGEoY2hhbmdlLmN1cnJlbnRWYWx1ZSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BLZXk6IHN0cmluZ106IFNpbXBsZUNoYW5nZSB9KTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzWydtdWx0aVNlbGVjdCddIHx8IGNoYW5nZXNbJ29uZUxldmVsTXVsdGlTZWxlY3QnXSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0ID0gbmV3IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPih0aGlzLm11bHRpU2VsZWN0IHx8IHRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCk7XHJcbiAgICB9XHJcbiAgICBpZihjaGFuZ2VzWyd0cmVlRGF0YVN0cmluZ2lmaWVkJ10pIHtcclxuICAgICAgdGhpcy5fY2hhbmdlZFRyZWVEYXRhKGNoYW5nZXNbJ3RyZWVEYXRhU3RyaW5naWZpZWQnXSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybWVyID0gKG5vZGU6IFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKTogRmxhdE5vZGUgPT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogbm9kZS5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkLFxyXG4gICAgICBjaGlsZHJlbl9jb3VudDogbm9kZS5jaGlsZHJlbj8ubGVuZ3RoLFxyXG4gICAgICBuYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICBsZXZlbDogbGV2ZWwsXHJcbiAgICAgIHBhcmVudDogbm9kZS5wYXJlbnRcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgcHJvdGVjdGVkIF90cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RmxhdE5vZGU+KFxyXG4gICAgbm9kZSA9PiBub2RlLmxldmVsLFxyXG4gICAgbm9kZSA9PiBub2RlLmV4cGFuZGFibGUsXHJcbiAgKTtcclxuXHJcbiAgcHJvdGVjdGVkIF90cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXHJcbiAgICB0aGlzLl90cmFuc2Zvcm1lcixcclxuICAgIG5vZGUgPT4gbm9kZS5sZXZlbCxcclxuICAgIG5vZGUgPT4gbm9kZS5leHBhbmRhYmxlLFxyXG4gICAgbm9kZSA9PiBub2RlLmNoaWxkcmVuXHJcbiAgKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9kYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLl90cmVlQ29udHJvbCwgdGhpcy5fdHJlZUZsYXR0ZW5lcik7XHJcbiAgcHJvdGVjdGVkIF9pc0V4cGVuZGFibGUgPSAoXzogbnVtYmVyLCBub2RlOiBGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xyXG5cclxuICBwcm90ZWN0ZWQgX2hhc0NoaWxkcmVuKG5vZGU6IEZsYXROb2RlKTogYm9vbGVhbiB7XHJcbiAgICBpZighbm9kZS5leHBhbmRhYmxlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKG5vZGUuY2hpbGRyZW5fY291bnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiBub2RlLmNoaWxkcmVuX2NvdW50ID4gMFxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGU6IEZsYXROb2RlKTogYm9vbGVhbiB7XHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgX3NlbGVjdGlvbkxpc3Q6IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPiA9IHRoaXMuX3NlbGVjdGlvbkxpc3Q7XHJcblxyXG4gICAgY29uc3QgX2Rlc2NlbmRhbnRzID0gdGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XHJcbiAgICBpZihfZGVzY2VuZGFudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgX2Rlc2NBbGxTZWxlY3RlZCA9IF9kZXNjZW5kYW50cy5sZW5ndGggPiAwICYmIF9kZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHtcclxuICAgICAgcmV0dXJuIF9zZWxlY3Rpb25MaXN0LmlzU2VsZWN0ZWQoY2hpbGQpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gX2Rlc2NBbGxTZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlOiBGbGF0Tm9kZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYoIXRoaXMuX3NlbGVjdGlvbkxpc3QpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgX3NlbGVjdGlvbkxpc3Q6IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPiA9IHRoaXMuX3NlbGVjdGlvbkxpc3Q7XHJcblxyXG4gICAgY29uc3QgX2Rlc2NlbmRhbnRzID0gdGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XHJcbiAgICBjb25zdCBfcmVzdWx0ID0gX2Rlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PiB7XHJcbiAgICAgIHJldHVybiBfc2VsZWN0aW9uTGlzdC5pc1NlbGVjdGVkKGNoaWxkKVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gX3Jlc3VsdCAmJiAhdGhpcy5fZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RvZ2dsZURlc2NlbmRhbnRzTm9kZXMobm9kZTogRmxhdE5vZGUpIHtcclxuICAgIGlmKCF0aGlzLl9zZWxlY3Rpb25MaXN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBfaXNOb2RlU2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3Rpb25MaXN0LmlzU2VsZWN0ZWQobm9kZSk7XHJcbiAgICBpZihfaXNOb2RlU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3QoLi4udGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuZGVzZWxlY3QoLi4udGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlUGFyZW50U2VsZWN0aW9ucyhub2RlOiBGbGF0Tm9kZSkge1xyXG4gICAgaWYoIXRoaXMuX3NlbGVjdGlvbkxpc3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBfcGFyZW50SWQgPSBub2RlLnBhcmVudDtcclxuICAgIGxldCBfcGFyZW50Tm9kZSA9IHRoaXMuX3RyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gX3BhcmVudElkKVxyXG4gICAgd2hpbGUoX3BhcmVudE5vZGUpIHtcclxuICAgICAgaWYodGhpcy5fZGVzY2VuZGFudHNBbGxTZWxlY3RlZChfcGFyZW50Tm9kZSkpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdChfcGFyZW50Tm9kZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0LmRlc2VsZWN0KF9wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBfcGFyZW50SWQgPSBfcGFyZW50Tm9kZS5wYXJlbnQ7XHJcbiAgICAgIF9wYXJlbnROb2RlID0gdGhpcy5fdHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQobiA9PiBuLmlkID09PSBfcGFyZW50SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF90b2dsZU5vZGUoZXZlbnQ6IE1vdXNlRXZlbnQsIG5vZGU6IEZsYXROb2RlKSB7XHJcbiAgICBpZighbm9kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIXRoaXMuZW5hYmxlU2VsZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIWV2ZW50Py5jdHJsS2V5KSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLm9uZUxldmVsTXVsdGlTZWxlY3QgJiYgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3RlZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmKHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0ZWRbMF0ucGFyZW50ICE9PSBub2RlLnBhcmVudCkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuY2xlYXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QudG9nZ2xlKG5vZGUpO1xyXG4gICAgaWYoIXRoaXMubXVsdGlTZWxlY3QgJiYgIXRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCkge1xyXG4gICAgICBmaXJlRXZlbnQodGhpcywgXCJzZWxlY3RlZE5vZGVzXCIsIHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0ZWQgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCF0aGlzLm9uZUxldmVsTXVsdGlTZWxlY3QpIHtcclxuICAgICAgdGhpcy5fdG9nZ2xlRGVzY2VuZGFudHNOb2Rlcyhub2RlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYodGhpcy5lbmFibGVQYXJlbnRIaWdobGlnaHRpbmcpIHtcclxuICAgICAgdGhpcy5fdXBkYXRlUGFyZW50U2VsZWN0aW9ucyhub2RlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZmlyZUV2ZW50KHRoaXMsIFwic2VsZWN0ZWROb2Rlc1wiLCB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdGVkICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2lzU2VsZWN0ZWQobm9kZTogRmxhdE5vZGUpOiBib29sZWFue1xyXG4gICAgaWYoIXRoaXMuX3NlbGVjdGlvbkxpc3QpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbkxpc3Q/LmlzU2VsZWN0ZWQobm9kZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0cmVlLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgKm5nSWY9XCJ0cmVlVGl0bGVcIiBjbGFzcz1cInRyZWUtdGl0bGVcIj57e3RyZWVUaXRsZX19PC9kaXY+XHJcbiAgPGNkay10cmVlIFtkYXRhU291cmNlXT1cIl9kYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cIl90cmVlQ29udHJvbFwiPlxyXG4gICAgPCEtLSBUaGlzIGlzIHRoZSB0cmVlIG5vZGUgdGVtcGxhdGUgZm9yIGxlYWYgbm9kZXMgLS0+XHJcbiAgICA8Y2RrLXRyZWUtbm9kZVxyXG4gICAgICBbbWF0VHJlZU5vZGVQYWRkaW5nSW5kZW50XT1cInBhZGRpbmdJbmRlbnRcIlxyXG4gICAgICAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiXHJcbiAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ1xyXG4gICAgICAoY2xpY2spPVwiX3RvZ2xlTm9kZSgkZXZlbnQsIG5vZGUpXCJcclxuICAgICAgY2xhc3M9XCJvYmplY3Qtbm9kZVwiXHJcbiAgICAgIFtjbGFzcy5kcmFnYWJsZS1ub2RlXT1cImVuYWJsZURyYWdBbmREcm9wICYmIG5vZGUubGV2ZWwgPiAwXCJcclxuICAgICAgW2NsYXNzLnNlbGVjdGVkLW5vZGVdPVwiX2lzU2VsZWN0ZWQobm9kZSlcIlxyXG4gICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiZGF0YVRlc3RQcmVmaXggKyBub2RlLmlkXCJcclxuICAgICAgW3RpdGxlXT1cIm5vZGUubmFtZVwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gdXNlIGEgZGlzYWJsZWQgYnV0dG9uIHRvIHByb3ZpZGUgcGFkZGluZyBmb3IgdHJlZSBsZWFmIC0tPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uIG9iamVjdC1pY29uXCIgKm5nSWY9XCJzaG93T2JqZWN0c0ljb25zXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwibm9kZS1sYWJlbFwiXHJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkLW5vZGVdPVwiX2lzU2VsZWN0ZWQobm9kZSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1kcmFnLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAge3tub2RlLm5hbWV9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxsaWItYmltcGx1cy1jb250ZXh0LW1lbnVcclxuICAgICAgICBbaXRlbXNdPVwiY29udGV4dE1lbnVzPy5vYmplY3RDb250ZXh0TWVudWl0ZW1zXCJcclxuICAgICAgICBbZGF0YV09XCJub2RlXCJcclxuICAgICAgICAqbmdJZj1cImNvbnRleHRNZW51cz8ub2JqZWN0Q29udGV4dE1lbnVpdGVtcz8ubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICA8L2xpYi1iaW1wbHVzLWNvbnRleHQtbWVudT5cclxuICAgIDwvY2RrLXRyZWUtbm9kZT5cclxuICAgIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBleHBhbmRhYmxlIG5vZGVzIC0tPlxyXG4gICAgPGNkay10cmVlLW5vZGUgW21hdFRyZWVOb2RlUGFkZGluZ0luZGVudF09XCJwYWRkaW5nSW5kZW50XCJcclxuICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7d2hlbjogX2lzRXhwZW5kYWJsZVwiXHJcbiAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ1xyXG4gICAgICAoY2xpY2spPVwiX3RvZ2xlTm9kZSgkZXZlbnQsIG5vZGUpXCJcclxuICAgICAgY2xhc3M9XCJmb2xkZXItbm9kZVwiXHJcbiAgICAgIFtjbGFzcy5kcmFnYWJsZS1ub2RlXT1cImVuYWJsZURyYWdBbmREcm9wICYmIG5vZGUubGV2ZWwgPiAwXCJcclxuICAgICAgW2NsYXNzLnNlbGVjdGVkLW5vZGVdPVwiX2lzU2VsZWN0ZWQobm9kZSlcIlxyXG4gICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiZGF0YVRlc3RQcmVmaXggKyBub2RlLmlkXCJcclxuICAgICAgW3RpdGxlXT1cIm5vZGUubmFtZVwiXHJcbiAgICA+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBtYXRUcmVlTm9kZVRvZ2dsZVxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiaWNvbiBleHBhbmQtY29sbGFwc2UtaWNvblwiXHJcbiAgICAgICAgICBbY2xhc3MuZXhwYW5kLW1vcmUtaWNvbl09XCJfaGFzQ2hpbGRyZW4obm9kZSkgJiYgIV90cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCJcclxuICAgICAgICAgIFtjbGFzcy5jb2xsYXBzZS1pY29uXT1cIl9oYXNDaGlsZHJlbihub2RlKSAmJiBfdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImljb24gZm9sZGVyLWljb25cIiAqbmdJZj1cInNob3dGb2xkZXJzSWNvbnNcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibm9kZS1sYWJlbFwiXHJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkLW5vZGVdPVwiX2lzU2VsZWN0ZWQobm9kZSlcIlxyXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZC1hbGwtZGVzY2VuZGFudHMtbm9kZXNdPVwiX2Rlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSkgJiYgX2lzU2VsZWN0ZWQobm9kZSkgJiYgZW5hYmxlUGFyZW50SGlnaGxpZ2h0aW5nXCJcclxuICAgICAgICBbY2xhc3Muc2VsZWN0ZWQtcGFydGlhbGx5LWRlc2NlbmRhbnRzLW5vZGVzXT1cIl9kZXNjZW5kYW50c1BhcnRpYWxseVNlbGVjdGVkKG5vZGUpICYmIGVuYWJsZVBhcmVudEhpZ2hsaWdodGluZ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRyYWctcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJub2RlLWxhYmVsXCI+XHJcbiAgICAgICAgICB7e25vZGUubmFtZX19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPGxpYi1iaW1wbHVzLWNvbnRleHQtbWVudVxyXG4gICAgICAgIFtpdGVtc109XCJjb250ZXh0TWVudXM/LmZvbGRlckNvbnRleHRNZW51aXRlbXNcIlxyXG4gICAgICAgIFtkYXRhXT1cIm5vZGVcIlxyXG4gICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVzPy5mb2xkZXJDb250ZXh0TWVudWl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWJpbXBsdXMtY29udGV4dC1tZW51PlxyXG4gICAgPC9jZGstdHJlZS1ub2RlPlxyXG4gIDwvY2RrLXRyZWU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbGF0LXRyZWUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAgJy4uL2JpbXBsdXMtY29udGV4dC1tZW51L2JpbXBsdXMtY29udGV4dC1tZW51LmludGVyZmFjZSdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjaGlsZHJlbj86IEFycmF5PFRyZWVOb2RlPjtcclxuICBpZDogc3RyaW5nO1xyXG4gIHBhcmVudDogc3RyaW5nO1xyXG59XHJcblxyXG4vLyBGbGF0IG5vZGUgd2l0aCBleHBhbmRhYmxlIGFuZCBsZXZlbCBpbmZvcm1hdGlvblxyXG5leHBvcnQgaW50ZXJmYWNlIEZsYXROb2RlIHtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIGNoaWxkcmVuX2NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcbiAgaWQ6IHN0cmluZztcclxuICBwYXJlbnQ6IHN0cmluZztcclxufVxyXG5cclxuLy8gRmxhdCB0cmVlIGNvbnRleHQgbWVudXNcclxuZXhwb3J0IGludGVyZmFjZSBGbGF0VHJlZUNvbnRleHRNZW51cyB7XHJcbiAgb2JqZWN0Q29udGV4dE1lbnVpdGVtcz86IEFycmF5PEJpbXBsdXNDb250ZXh0TWVudUl0ZW0+O1xyXG4gIGZvbGRlckNvbnRleHRNZW51aXRlbXM/OiBBcnJheTxCaW1wbHVzQ29udGV4dE1lbnVJdGVtPjtcclxufSJdfQ==
|