@smartbit4all/ng-client 3.3.102 → 3.3.104

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.
@@ -7,10 +7,11 @@ import { Subject } from 'rxjs';
7
7
  import { deepEqual } from 'fast-equals';
8
8
  import * as i0 from "@angular/core";
9
9
  export class SmarttreeGenericService extends SmarttreeService {
10
- constructor(inject, pageName, treeId) {
10
+ constructor(inject, pageName, treeId, treeMenuIcon) {
11
11
  super();
12
12
  this.pageName = pageName;
13
13
  this.treeId = treeId;
14
+ this.treeMenuIcon = treeMenuIcon;
14
15
  // UseUiAction properties
15
16
  this.submit = new Subject();
16
17
  this.reSubscribeToChange = new Subject();
@@ -157,11 +158,12 @@ export class SmarttreeGenericService extends SmarttreeService {
157
158
  });
158
159
  }
159
160
  createButtonsForTreeNodes(nodes) {
161
+ let icon = this.treeMenuIcon ?? 'more_vert';
160
162
  nodes.map((node) => {
161
163
  node.button = node.actions?.length
162
164
  ? {
163
165
  type: SmartTreeNodeButtonType.MENU,
164
- icon: 'more_vert',
166
+ icon: icon,
165
167
  menuItemButtons: node.actions.map((action) => {
166
168
  return {
167
169
  type: SmartTreeNodeButtonType.NORMAL,
@@ -263,7 +265,7 @@ export class SmarttreeGenericService extends SmarttreeService {
263
265
  throw new Error('Method not implemented.');
264
266
  }
265
267
  }
266
- SmarttreeGenericService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, deps: [{ token: i0.Injector }, { token: 'pageName' }, { token: 'treeId' }], target: i0.ɵɵFactoryTarget.Injectable });
268
+ SmarttreeGenericService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, deps: [{ token: i0.Injector }, { token: 'pageName' }, { token: 'treeId' }, { token: 'treeMenuIcon' }], target: i0.ɵɵFactoryTarget.Injectable });
267
269
  SmarttreeGenericService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, providedIn: 'root' });
268
270
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, decorators: [{
269
271
  type: Injectable,
@@ -276,5 +278,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
276
278
  }] }, { type: undefined, decorators: [{
277
279
  type: Inject,
278
280
  args: ['treeId']
281
+ }] }, { type: undefined, decorators: [{
282
+ type: Inject,
283
+ args: ['treeMenuIcon']
279
284
  }] }]; } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0cmVlLWdlbmVyaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRyZWUvc21hcnR0cmVlLWdlbmVyaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBSXZCLHlCQUF5QixFQUd6QixlQUFlLEdBR2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBVXhDLE1BQU0sT0FBTyx1QkFDWCxTQUFRLGdCQUFpQztJQWlCekMsWUFDRSxNQUFnQixFQUNjLFFBQWdCLEVBQ2xCLE1BQWM7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIc0IsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBakI1Qyx5QkFBeUI7UUFDekIsV0FBTSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLHdCQUFtQixHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRW5ELHdCQUFtQixHQUFvQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBaUIvRCxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIs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dGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXHJcbiAgVWlBY3Rpb24sXHJcbiAgVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zLFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLFxyXG4gIFVpQWN0aW9uTW9kZWwsXHJcbiAgVWlBY3Rpb25SZXF1ZXN0LFxyXG4gIFVpQWN0aW9uU2VydmljZSxcclxuICBVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2UsXHJcbiAgVXNlVWlBY3Rpb24sXHJcbn0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3Byb2plY3RzJztcclxuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tICcuL3RyZWUtYXBpL2FwaS90cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFRyZWVOb2RlLCBTbWFydFRyZWVOb2RlQnV0dG9uVHlwZSB9IGZyb20gJy4vc21hcnR0cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnR0cmVlU2VydmljZSB9IGZyb20gJy4vc21hcnR0cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJ2Zhc3QtZXF1YWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnR0cmVlQ29uZmlndXJhdGlvbiB7XHJcbiAgdHJlZWlkOiBzdHJpbmc7XHJcbiAgcGFnZU5hbWU6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlXHJcbiAgZXh0ZW5kcyBTbWFydHRyZWVTZXJ2aWNlPFNtYXJ0VHJlZU5vZGVbXT5cclxuICBpbXBsZW1lbnRzIFVzZVVpQWN0aW9uXHJcbntcclxuICAvLyBVc2VVaUFjdGlvbiBwcm9wZXJ0aWVzXHJcbiAgc3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICByZVN1YnNjcmliZVRvQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgdWlBY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgc2VsZWN0ZWROb2RlPzogU21hcnRUcmVlTm9kZTtcclxuXHJcbiAgcHJvdGVjdGVkIHZpZXdDb250ZXh0ITogU21hcnRWaWV3Q29udGV4dFNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBzZXJ2aWNlITogVHJlZVNlcnZpY2U7XHJcblxyXG4gIHByaXZhdGUgdWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSE6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgcHJpdmF0ZSB1aUFjdGlvblNlcnZpY2UhOiBVaUFjdGlvblNlcnZpY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgaW5qZWN0OiBJbmplY3RvcixcclxuICAgIEBJbmplY3QoJ3BhZ2VOYW1lJykgcHJvdGVjdGVkIHBhZ2VOYW1lOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KCd0cmVlSWQnKSBwcm90ZWN0ZWQgdHJlZUlkOiBzdHJpbmdcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgdGhpcy5jb25maWd1cmVUcmVlKHtcclxuICAgICAgcGFnZU5hbWU6IHRoaXMucGFnZU5hbWUsXHJcbiAgICAgIHRyZWVpZDogdGhpcy50cmVlSWQsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0ID0gaW5qZWN0LmdldChTbWFydFZpZXdDb250ZXh0U2VydmljZSk7XHJcbiAgICB0aGlzLnNlcnZpY2UgPSBpbmplY3QuZ2V0KFRyZWVTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZSA9IGluamVjdC5nZXQoVWlBY3Rpb25TZXJ2aWNlKTtcclxuICAgIHRoaXMudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSA9IGluamVjdC5nZXQoVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RVaUFjdGlvbk1vZGVscyh1aUFjdGlvbnM6IFVpQWN0aW9uW10pOiB2b2lkIHtcclxuICAgIHRoaXMudWlBY3Rpb25Nb2RlbHMgPSB1aUFjdGlvbnMubWFwKCh1aUFjdGlvbjogVWlBY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzZXJ2aWNlVG9Vc2U6IHRoaXMsXHJcbiAgICAgICAgdWlBY3Rpb24sXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZVRyZWUoY29uZmlndXJhdGlvbjogU21hcnR0cmVlQ29uZmlndXJhdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy50cmVlSWQgPSBjb25maWd1cmF0aW9uLnRyZWVpZDtcclxuICAgIHRoaXMucGFnZU5hbWUgPSBjb25maWd1cmF0aW9uLnBhZ2VOYW1lO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLnZpZXdDb250ZXh0Lmhhc1ZpZXdDb250ZXh0VXVpZCgpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZG93bmxvYWRUcmVlKCkudGhlbigocm9vdE5vZGVzOiBTbWFydFRyZWVOb2RlW10pID0+IHtcclxuICAgICAgICBpZiAoIWRlZXBFcXVhbCh0aGlzLnRyZWVGcm9tQmFja2VuZCwgcm9vdE5vZGVzKSkge1xyXG4gICAgICAgICAgdGhpcy50cmVlRnJvbUJhY2tlbmQgPSByb290Tm9kZXM7XHJcbiAgICAgICAgICB0aGlzLnN5bmNUcmVlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgb3ZlcnJpZGUgYXN5bmMgZG93bmxvYWRUcmVlKCk6IFByb21pc2U8U21hcnRUcmVlTm9kZVtdPiB7XHJcbiAgICBsZXQgdXVpZCA9IHRoaXMudmlld0NvbnRleHQuZ2V0VXVpZE9mUGFnZSh0aGlzLnBhZ2VOYW1lISk7XHJcbiAgICBjb25zdCByb290Tm9kZXMgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmdldFJvb3ROb2RlczIodXVpZCwgdGhpcy50cmVlSWQhKS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVpQWN0aW9ucyA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0TWFpbkFjdGlvbnMyKHV1aWQsIHRoaXMudHJlZUlkISkudG9Qcm9taXNlKClcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHVpQWN0aW9ucykge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdFVpQWN0aW9uTW9kZWxzKHVpQWN0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFyb290Tm9kZXMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSb290Tm9kZXMgYXJlIHVuZGVmaW5lZCEnKTtcclxuICAgIH1cclxuICAgIHJldHVybiByb290Tm9kZXM7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIGFzeW5jIGRvd25sb2FkQ2hpbGRyZW4ocGFyZW50Tm9kZTogU21hcnRUcmVlTm9kZSk6IFByb21pc2U8U21hcnRUcmVlTm9kZVtdPiB7XHJcbiAgICBsZXQgdXVpZCA9IHRoaXMudmlld0NvbnRleHQuZ2V0VXVpZE9mUGFnZSh0aGlzLnBhZ2VOYW1lISk7XHJcbiAgICBjb25zdCBjaGlsZHJlbiA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Q2hpbGRyZW5Ob2RlczIodXVpZCwgdGhpcy50cmVlSWQhLCBwYXJlbnROb2RlLmlkZW50aWZpZXIhKS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb2RlIHdpdGggaWRlbnRpZmllciAke3BhcmVudE5vZGUuaWRlbnRpZmllcn0gZG9lcyBub3QgaGF2ZSBjaGlsZHJlbi5gKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2hpbGRyZW47XHJcbiAgfVxyXG4gIG92ZXJyaWRlIGFzeW5jIG9uVHJlZU5vZGVPcGVuKHRyZWVOb2RlOiBTbWFydFRyZWVOb2RlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgdmlld1V1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSEpO1xyXG5cclxuICAgIGlmICh0cmVlTm9kZT8uZXhwYW5kZWQpIHtcclxuICAgICAgbGV0IHRlbXBUcmVlTm9kZSA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5jb2xsYXBzZU5vZGUyKHZpZXdVdWlkLCB0aGlzLnRyZWVJZCEsIHRyZWVOb2RlLmlkZW50aWZpZXIhKS50b1Byb21pc2UoKVxyXG4gICAgICApO1xyXG4gICAgICB0cmVlTm9kZSA9IHRlbXBUcmVlTm9kZSE7XHJcbiAgICB9IGVsc2UgaWYgKCF0cmVlTm9kZT8uZXhwYW5kZWQpIHtcclxuICAgICAgbGV0IHRlbXBUcmVlTm9kZSA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5leHBhbmROb2RlMih2aWV3VXVpZCwgdGhpcy50cmVlSWQhLCB0cmVlTm9kZT8uaWRlbnRpZmllciEpLnRvUHJvbWlzZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIHRyZWVOb2RlID0gdGVtcFRyZWVOb2RlITtcclxuICAgIH1cclxuICAgIGxldCBub2RlID0gdGhpcy5kZWVwU2VhcmNoVHJlZU5vZGUodHJlZU5vZGU/LmlkZW50aWZpZXIhLCB0aGlzLnRyZWVGcm9tQmFja2VuZCEpO1xyXG5cclxuICAgIG5vZGUhLmV4cGFuZGVkID0gdHJlZU5vZGU/LmV4cGFuZGVkO1xyXG4gICAgbm9kZSEuY2hpbGRyZW5Ob2RlcyA9IHRyZWVOb2RlPy5jaGlsZHJlbk5vZGVzO1xyXG4gICAgdGhpcy5zeW5jVHJlZSgpO1xyXG4gIH1cclxuICBvdmVycmlkZSBvblRyZWVOb2RlQ2xpY2sodHJlZU5vZGU6IFNtYXJ0VHJlZU5vZGUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0Rm9sZGVyKHRyZWVOb2RlLmlkZW50aWZpZXIhLCB0cmVlTm9kZSk7XHJcbiAgfVxyXG4gIGFzeW5jIHNlbGVjdEZvbGRlcihmb2xkZXJVcmk6IHN0cmluZywgdHJlZU5vZGU/OiBTbWFydFRyZWVOb2RlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgdmlld1V1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSEpO1xyXG5cclxuICAgIGxldCB1cGRhdGVkVHJlZU5vZGUgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnNlbGVjdE5vZGUyKHZpZXdVdWlkLCB0aGlzLnRyZWVJZCEsIHRyZWVOb2RlIS5pZGVudGlmaWVyISkudG9Qcm9taXNlKClcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE5vZGUuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gdXBkYXRlZFRyZWVOb2RlO1xyXG4gICAgbGV0IG5vZGUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZSh1cGRhdGVkVHJlZU5vZGU/LmlkZW50aWZpZXIhLCB0aGlzLnRyZWVGcm9tQmFja2VuZCEpO1xyXG4gICAgaWYgKCFub2RlKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdUcmVlIG5vZGUgZG9lcyBub3QgZXhpc3QnKTtcclxuICAgIH1cclxuICAgIG5vZGUuZXhwYW5kZWQgPSB1cGRhdGVkVHJlZU5vZGU/LmV4cGFuZGVkITtcclxuICAgIG5vZGUuY2hpbGRyZW5Ob2RlcyA9IHVwZGF0ZWRUcmVlTm9kZT8uY2hpbGRyZW5Ob2RlcyE7XHJcbiAgICBub2RlLnNlbGVjdGVkID0gdXBkYXRlZFRyZWVOb2RlPy5zZWxlY3RlZCE7XHJcbiAgICB0cmVlTm9kZSA9IHVwZGF0ZWRUcmVlTm9kZTtcclxuICAgIHRoaXMuc3luY1RyZWUoKTtcclxuICAgIC8vdGhpcy52aWV3Q29udGV4dC5nZXRBbmRTeW5jVmlld0NvbnRleHQodGhpcy52aWV3Q29udGV4dC5nZXRWaWV3Q29udGV4dFV1aWQoKSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGVUcmVlT25UaGVGbHkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGFzeW5jIHN5bmNUcmVlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudHJlZUZyb21CYWNrZW5kID09PSBudWxsIHx8IHRoaXMudHJlZUZyb21CYWNrZW5kID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy90aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGlzIG5vIHRyZWVGcm9tQmFja2VuZCBhdmFpbGFibGUhJyk7XHJcbiAgICAgIGNvbnNvbGUud2FybignVGhlcmUgaXMgbm8gdHJlZUZyb21CYWNrZW5kIGF2YWlsYWJsZSBpbiBzeW5jVHJlZSEnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5jYWNoZUFjdGlvbkRlc2NpcHRvcnModGhpcy5nZXRBbGxOb2Rlcyh0aGlzLnRyZWVGcm9tQmFja2VuZCEpKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc21hcnRUcmVlTW9kZWwpIHtcclxuICAgICAgdGhpcy5zbWFydFRyZWVNb2RlbCA9IHtcclxuICAgICAgICByb290Tm9kZXM6IFtdLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzbWFydFRyZWVOb2RlczogU21hcnRUcmVlTm9kZVtdID0gdGhpcy5jcmVhdGVCdXR0b25zRm9yVHJlZU5vZGVzKHRoaXMudHJlZUZyb21CYWNrZW5kKTtcclxuICAgIHRoaXMuc21hcnRUcmVlTW9kZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgdGhpcy5zbWFydFRyZWVNb2RlbCA9IHtcclxuICAgICAgcm9vdE5vZGVzOiBbXSxcclxuICAgIH07XHJcbiAgICB0aGlzLnNtYXJ0VHJlZU1vZGVsQ2hhbmdlZC5uZXh0KHRoaXMuc21hcnRUcmVlTW9kZWwpO1xyXG5cclxuICAgIHRoaXMuc21hcnRUcmVlTW9kZWwucm9vdE5vZGVzID0gc21hcnRUcmVlTm9kZXM7XHJcblxyXG4gICAgdGhpcy5maW5kU2VsZWN0ZWQodGhpcy5zbWFydFRyZWVNb2RlbC5yb290Tm9kZXMpO1xyXG5cclxuICAgIHRoaXMuc21hcnRUcmVlTW9kZWxDaGFuZ2VkLm5leHQodGhpcy5zbWFydFRyZWVNb2RlbCk7XHJcbiAgfVxyXG5cclxuICBkZWVwU2VhcmNoVHJlZU5vZGUoaWRlbnRpZmllcjogc3RyaW5nLCBub2RlczogU21hcnRUcmVlTm9kZVtdKTogU21hcnRUcmVlTm9kZSB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgdHJlZU5vZGU6IFNtYXJ0VHJlZU5vZGUgfCB1bmRlZmluZWQ7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbm9kZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XHJcblxyXG4gICAgICBpZiAobm9kZS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XHJcbiAgICAgICAgdHJlZU5vZGUgPSBub2RlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChub2RlLmNoaWxkcmVuTm9kZXMgJiYgbm9kZS5jaGlsZHJlbk5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgIHRyZWVOb2RlID0gdGhpcy5kZWVwU2VhcmNoVHJlZU5vZGUoaWRlbnRpZmllciwgbm9kZS5jaGlsZHJlbk5vZGVzKTtcclxuICAgICAgICBpZiAodHJlZU5vZGUpIHtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRyZWVOb2RlO1xyXG4gIH1cclxuXHJcbiAgZmluZFNlbGVjdGVkKG5vZGVzOiBTbWFydFRyZWVOb2RlW10pOiB2b2lkIHtcclxuICAgIHJldHVybiBub2Rlcy5mb3JFYWNoKChub2RlOiBTbWFydFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgIGlmIChub2RlLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkcmVuTm9kZXMgJiYgbm9kZS5jaGlsZHJlbk5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRTZWxlY3RlZChub2RlLmNoaWxkcmVuTm9kZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUJ1dHRvbnNGb3JUcmVlTm9kZXMobm9kZXM6IFNtYXJ0VHJlZU5vZGVbXSk6IFNtYXJ0VHJlZU5vZGVbXSB7XHJcbiAgICBub2Rlcy5tYXAoKG5vZGU6IFNtYXJ0VHJlZU5vZGUpID0+IHtcclxuICAgICAgbm9kZS5idXR0b24gPSBub2RlLmFjdGlvbnM/Lmxlbmd0aFxyXG4gICAgICAgID8ge1xyXG4gICAgICAgICAgICB0eXBlOiBTbWFydFRyZWVOb2RlQnV0dG9uVHlwZS5NRU5VLFxyXG4gICAgICAgICAgICBpY29uOiAnbW9yZV92ZXJ0JyxcclxuICAgICAgICAgICAgbWVudUl0ZW1CdXR0b25zOiBub2RlLmFjdGlvbnMubWFwKChhY3Rpb246IFVpQWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFNtYXJ0VHJlZU5vZGVCdXR0b25UeXBlLk5PUk1BTCxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsQnlBY3Rpb24oYWN0aW9uKSxcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLmRvQWN0aW9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBhcmdzOiBbYWN0aW9uLCBub2RlLmlkZW50aWZpZXJdLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICBub2RlLmljb24gPSAnRm9sZGVycyc7XHJcbiAgICAgIGlmIChub2RlLmNoaWxkcmVuTm9kZXMpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuTm9kZXMgPSB0aGlzLmNyZWF0ZUJ1dHRvbnNGb3JUcmVlTm9kZXMobm9kZS5jaGlsZHJlbk5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbm9kZXM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkb0FjdGlvbihhcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHVpQWN0aW9uOiBVaUFjdGlvbiA9IGFyZ3NbMF07XHJcbiAgICBsZXQgbm9kZVV1aWQ6IHN0cmluZyA9IGFyZ3NbMV07XHJcblxyXG4gICAgaWYgKHVpQWN0aW9uLnBhcmFtcykge1xyXG4gICAgICB1aUFjdGlvbi5wYXJhbXNbJ25vZGVVdWlkJ10gPSBub2RlVXVpZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVpQWN0aW9uLnBhcmFtcyA9IHtcclxuICAgICAgICBub2RlVXVpZDogbm9kZVV1aWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwgPSB7XHJcbiAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgdWlBY3Rpb24sXHJcbiAgICB9O1xyXG4gICAgdGhpcy51aUFjdGlvblNlcnZpY2UudWlBY3Rpb25Nb2RlbCA9IHVpQWN0aW9uTW9kZWw7XHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZS5leGVjdXRlKHVpQWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBbGxOb2Rlcyhub2RlczogU21hcnRUcmVlTm9kZVtdKTogU21hcnRUcmVlTm9kZVtdIHtcclxuICAgIHJldHVybiBub2Rlcy5mbGF0TWFwKChuKSA9PiBbbiwgLi4udGhpcy5nZXRBbGxOb2RlcyhuLmNoaWxkcmVuTm9kZXMpXSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgY2FjaGVBY3Rpb25EZXNjaXB0b3JzKG5vZGVzOiBTbWFydFRyZWVOb2RlW10pIHtcclxuICAgIGxldCBuZXdVaUFjdGlvbnMgPSBuZXcgU2V0PFVpQWN0aW9uPigpO1xyXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBub2RlLmFjdGlvbnNcclxuICAgICAgICA/LmZpbHRlcigodWlBY3Rpb246IFVpQWN0aW9uKSA9PiAhdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JzLmdldCh1aUFjdGlvbi5jb2RlISkpXHJcbiAgICAgICAgLmZvckVhY2goKGFjdGlvbikgPT4gbmV3VWlBY3Rpb25zLmFkZChhY3Rpb24pKTtcclxuICAgIH0pO1xyXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIG5ld1VpQWN0aW9ucykge1xyXG4gICAgICBpZiAoIXRoaXMudWlBY3Rpb25EZXNjcmlwdG9ycy5nZXQoYWN0aW9uLmNvZGUhKSkge1xyXG4gICAgICAgIGxldCBkZXNjcmlwdG9yID0gYXdhaXQgdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLmdldEFjdGlvbkRlc2NyaXB0b3IoYWN0aW9uKTtcclxuICAgICAgICB0aGlzLnVpQWN0aW9uRGVzY3JpcHRvcnMuc2V0KGFjdGlvbi5jb2RlISwgZGVzY3JpcHRvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0TGFiZWxCeUFjdGlvbihhY3Rpb246IFVpQWN0aW9uKTogc3RyaW5nIHtcclxuICAgIGxldCBkZXNjID0gdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JzLmdldChhY3Rpb24uY29kZSEpO1xyXG4gICAgcmV0dXJuIGRlc2MhLnRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBVc2VVaUFjdGlvblxyXG4gIGdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb246IFVpQWN0aW9uKTogVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zIHtcclxuICAgIGlmICh1aUFjdGlvbi5wYXJhbXMgJiYgdWlBY3Rpb24ucGFyYW1zWydub2RlVXVpZCddKSB7XHJcbiAgICAgIGxldCBub2RlVXVpZCA9IHVpQWN0aW9uLnBhcmFtcyFbJ25vZGVVdWlkJ107XHJcblxyXG4gICAgICBsZXQgbm9kZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgICAgaWYgKHVpQWN0aW9uLmNvZGUgPT09ICdSRU5BTUUnKSB7XHJcbiAgICAgICAgbm9kZU5hbWUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZShub2RlVXVpZCwgdGhpcy50cmVlRnJvbUJhY2tlbmQhKT8uY2FwdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmb3JUZXh0QXJlYTogJycsXHJcbiAgICAgICAgZm9yVGV4dEZpZWxkOiBub2RlTmFtZSA/IG5vZGVOYW1lIDogJycsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZm9yVGV4dEFyZWE6ICcnLFxyXG4gICAgICBmb3JUZXh0RmllbGQ6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4ge307XHJcbiAgfVxyXG5cclxuICBhc3luYyBwZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh1aUFjdGlvblJlcXVlc3QucGFyYW1zWydub2RlVXVpZCddKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybU5vZGVVaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybU1haW5VaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcbiAgICAvL2F3YWl0IHRoaXMudmlld0NvbnRleHQuZ2V0QW5kU3luY1ZpZXdDb250ZXh0KCk7XHJcblxyXG4gICAgdGhpcy5zeW5jVHJlZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcGVyZm9ybU5vZGVVaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IG5vZGVJZCA9IHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ25vZGVVdWlkJ107XHJcbiAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snbm9kZVV1aWQnXTtcclxuXHJcbiAgICBsZXQgdmlld1V1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSk7XHJcblxyXG4gICAgdGhpcy50cmVlRnJvbUJhY2tlbmQgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnBlcmZvcm1BY3Rpb24yKHZpZXdVdWlkLCB0aGlzLnRyZWVJZCEsIG5vZGVJZCwgdWlBY3Rpb25SZXF1ZXN0KS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgYXN5bmMgcGVyZm9ybU1haW5VaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IHZpZXdVdWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUpO1xyXG5cclxuICAgIHRoaXMudHJlZUZyb21CYWNrZW5kID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5wZXJmb3JtTWFpbkFjdGlvbjIodmlld1V1aWQsIHRoaXMudHJlZUlkISwgdWlBY3Rpb25SZXF1ZXN0KS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5KFxyXG4gICAgdWlBY3Rpb246IFVpQWN0aW9uLFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3RcclxuICApOiBQcm9taXNlPFVpQWN0aW9uU3BlY2lmaWNEZW1hbmRSZXNwb25zZT4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcbn1cclxuIl19
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0cmVlLWdlbmVyaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRyZWUvc21hcnR0cmVlLWdlbmVyaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBSXZCLHlCQUF5QixFQUd6QixlQUFlLEdBR2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBVXhDLE1BQU0sT0FBTyx1QkFDWCxTQUFRLGdCQUFpQztJQWlCekMsWUFDRSxNQUFnQixFQUNjLFFBQWdCLEVBQ2xCLE1BQWMsRUFDVixZQUFxQjtRQUVyRCxLQUFLLEVBQUUsQ0FBQztRQUpzQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQWxCdkQseUJBQXlCO1FBQ3pCLFdBQU0sR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVuRCx3QkFBbUIsR0FBb0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQWtCL0QsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7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QVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFxQkksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXHJcbiAgVWlBY3Rpb24sXHJcbiAgVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zLFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLFxyXG4gIFVpQWN0aW9uTW9kZWwsXHJcbiAgVWlBY3Rpb25SZXF1ZXN0LFxyXG4gIFVpQWN0aW9uU2VydmljZSxcclxuICBVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2UsXHJcbiAgVXNlVWlBY3Rpb24sXHJcbn0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3Byb2plY3RzJztcclxuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tICcuL3RyZWUtYXBpL2FwaS90cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFRyZWVOb2RlLCBTbWFydFRyZWVOb2RlQnV0dG9uVHlwZSB9IGZyb20gJy4vc21hcnR0cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnR0cmVlU2VydmljZSB9IGZyb20gJy4vc21hcnR0cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJ2Zhc3QtZXF1YWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnR0cmVlQ29uZmlndXJhdGlvbiB7XHJcbiAgdHJlZWlkOiBzdHJpbmc7XHJcbiAgcGFnZU5hbWU6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlXHJcbiAgZXh0ZW5kcyBTbWFydHRyZWVTZXJ2aWNlPFNtYXJ0VHJlZU5vZGVbXT5cclxuICBpbXBsZW1lbnRzIFVzZVVpQWN0aW9uXHJcbntcclxuICAvLyBVc2VVaUFjdGlvbiBwcm9wZXJ0aWVzXHJcbiAgc3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICByZVN1YnNjcmliZVRvQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgdWlBY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgc2VsZWN0ZWROb2RlPzogU21hcnRUcmVlTm9kZTtcclxuXHJcbiAgcHJvdGVjdGVkIHZpZXdDb250ZXh0ITogU21hcnRWaWV3Q29udGV4dFNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBzZXJ2aWNlITogVHJlZVNlcnZpY2U7XHJcblxyXG4gIHByaXZhdGUgdWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSE6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgcHJpdmF0ZSB1aUFjdGlvblNlcnZpY2UhOiBVaUFjdGlvblNlcnZpY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgaW5qZWN0OiBJbmplY3RvcixcclxuICAgIEBJbmplY3QoJ3BhZ2VOYW1lJykgcHJvdGVjdGVkIHBhZ2VOYW1lOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KCd0cmVlSWQnKSBwcm90ZWN0ZWQgdHJlZUlkOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KCd0cmVlTWVudUljb24nKSBwcml2YXRlIHRyZWVNZW51SWNvbj86IHN0cmluZ1xyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ3VyZVRyZWUoe1xyXG4gICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgdHJlZWlkOiB0aGlzLnRyZWVJZCxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudmlld0NvbnRleHQgPSBpbmplY3QuZ2V0KFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKTtcclxuICAgIHRoaXMuc2VydmljZSA9IGluamVjdC5nZXQoVHJlZVNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdFVpQWN0aW9uTW9kZWxzKHVpQWN0aW9uczogVWlBY3Rpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy51aUFjdGlvbk1vZGVscyA9IHVpQWN0aW9ucy5tYXAoKHVpQWN0aW9uOiBVaUFjdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgICB1aUFjdGlvbixcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlVHJlZShjb25maWd1cmF0aW9uOiBTbWFydHRyZWVDb25maWd1cmF0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyZWVJZCA9IGNvbmZpZ3VyYXRpb24udHJlZWlkO1xyXG4gICAgdGhpcy5wYWdlTmFtZSA9IGNvbmZpZ3VyYXRpb24ucGFnZU5hbWU7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBhc3luYyBpbml0aWFsaXplKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudmlld0NvbnRleHQuaGFzVmlld0NvbnRleHRVdWlkKCkpIHtcclxuICAgICAgYXdhaXQgdGhpcy5kb3dubG9hZFRyZWUoKS50aGVuKChyb290Tm9kZXM6IFNtYXJ0VHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICAgIGlmICghZGVlcEVxdWFsKHRoaXMudHJlZUZyb21CYWNrZW5kLCByb290Tm9kZXMpKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVGcm9tQmFja2VuZCA9IHJvb3ROb2RlcztcclxuICAgICAgICAgIHRoaXMuc3luY1RyZWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvdmVycmlkZSBhc3luYyBkb3dubG9hZFRyZWUoKTogUHJvbWlzZTxTbWFydFRyZWVOb2RlW10+IHtcclxuICAgIGxldCB1dWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUhKTtcclxuICAgIGNvbnN0IHJvb3ROb2RlcyA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Um9vdE5vZGVzMih1dWlkLCB0aGlzLnRyZWVJZCEpLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gICAgY29uc3QgdWlBY3Rpb25zID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5nZXRNYWluQWN0aW9uczIodXVpZCwgdGhpcy50cmVlSWQhKS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAodWlBY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0VWlBY3Rpb25Nb2RlbHModWlBY3Rpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXJvb3ROb2Rlcykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jvb3ROb2RlcyBhcmUgdW5kZWZpbmVkIScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJvb3ROb2RlcztcclxuICB9XHJcbiAgb3ZlcnJpZGUgYXN5bmMgZG93bmxvYWRDaGlsZHJlbihwYXJlbnROb2RlOiBTbWFydFRyZWVOb2RlKTogUHJvbWlzZTxTbWFydFRyZWVOb2RlW10+IHtcclxuICAgIGxldCB1dWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUhKTtcclxuICAgIGNvbnN0IGNoaWxkcmVuID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5nZXRDaGlsZHJlbk5vZGVzMih1dWlkLCB0aGlzLnRyZWVJZCEsIHBhcmVudE5vZGUuaWRlbnRpZmllciEpLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vZGUgd2l0aCBpZGVudGlmaWVyICR7cGFyZW50Tm9kZS5pZGVudGlmaWVyfSBkb2VzIG5vdCBoYXZlIGNoaWxkcmVuLmApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjaGlsZHJlbjtcclxuICB9XHJcbiAgb3ZlcnJpZGUgYXN5bmMgb25UcmVlTm9kZU9wZW4odHJlZU5vZGU6IFNtYXJ0VHJlZU5vZGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB2aWV3VXVpZCA9IHRoaXMudmlld0NvbnRleHQuZ2V0VXVpZE9mUGFnZSh0aGlzLnBhZ2VOYW1lISk7XHJcblxyXG4gICAgaWYgKHRyZWVOb2RlPy5leHBhbmRlZCkge1xyXG4gICAgICBsZXQgdGVtcFRyZWVOb2RlID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmNvbGxhcHNlTm9kZTIodmlld1V1aWQsIHRoaXMudHJlZUlkISwgdHJlZU5vZGUuaWRlbnRpZmllciEpLnRvUHJvbWlzZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIHRyZWVOb2RlID0gdGVtcFRyZWVOb2RlITtcclxuICAgIH0gZWxzZSBpZiAoIXRyZWVOb2RlPy5leHBhbmRlZCkge1xyXG4gICAgICBsZXQgdGVtcFRyZWVOb2RlID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmV4cGFuZE5vZGUyKHZpZXdVdWlkLCB0aGlzLnRyZWVJZCEsIHRyZWVOb2RlPy5pZGVudGlmaWVyISkudG9Qcm9taXNlKClcclxuICAgICAgKTtcclxuICAgICAgdHJlZU5vZGUgPSB0ZW1wVHJlZU5vZGUhO1xyXG4gICAgfVxyXG4gICAgbGV0IG5vZGUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZSh0cmVlTm9kZT8uaWRlbnRpZmllciEsIHRoaXMudHJlZUZyb21CYWNrZW5kISk7XHJcblxyXG4gICAgbm9kZSEuZXhwYW5kZWQgPSB0cmVlTm9kZT8uZXhwYW5kZWQ7XHJcbiAgICBub2RlIS5jaGlsZHJlbk5vZGVzID0gdHJlZU5vZGU/LmNoaWxkcmVuTm9kZXM7XHJcbiAgICB0aGlzLnN5bmNUcmVlKCk7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG9uVHJlZU5vZGVDbGljayh0cmVlTm9kZTogU21hcnRUcmVlTm9kZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RGb2xkZXIodHJlZU5vZGUuaWRlbnRpZmllciEsIHRyZWVOb2RlKTtcclxuICB9XHJcbiAgYXN5bmMgc2VsZWN0Rm9sZGVyKGZvbGRlclVyaTogc3RyaW5nLCB0cmVlTm9kZT86IFNtYXJ0VHJlZU5vZGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB2aWV3VXVpZCA9IHRoaXMudmlld0NvbnRleHQuZ2V0VXVpZE9mUGFnZSh0aGlzLnBhZ2VOYW1lISk7XHJcblxyXG4gICAgbGV0IHVwZGF0ZWRUcmVlTm9kZSA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2Uuc2VsZWN0Tm9kZTIodmlld1V1aWQsIHRoaXMudHJlZUlkISwgdHJlZU5vZGUhLmlkZW50aWZpZXIhKS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB1cGRhdGVkVHJlZU5vZGU7XHJcbiAgICBsZXQgbm9kZSA9IHRoaXMuZGVlcFNlYXJjaFRyZWVOb2RlKHVwZGF0ZWRUcmVlTm9kZT8uaWRlbnRpZmllciEsIHRoaXMudHJlZUZyb21CYWNrZW5kISk7XHJcbiAgICBpZiAoIW5vZGUpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1RyZWUgbm9kZSBkb2VzIG5vdCBleGlzdCcpO1xyXG4gICAgfVxyXG4gICAgbm9kZS5leHBhbmRlZCA9IHVwZGF0ZWRUcmVlTm9kZT8uZXhwYW5kZWQhO1xyXG4gICAgbm9kZS5jaGlsZHJlbk5vZGVzID0gdXBkYXRlZFRyZWVOb2RlPy5jaGlsZHJlbk5vZGVzITtcclxuICAgIG5vZGUuc2VsZWN0ZWQgPSB1cGRhdGVkVHJlZU5vZGU/LnNlbGVjdGVkITtcclxuICAgIHRyZWVOb2RlID0gdXBkYXRlZFRyZWVOb2RlO1xyXG4gICAgdGhpcy5zeW5jVHJlZSgpO1xyXG4gICAgLy90aGlzLnZpZXdDb250ZXh0LmdldEFuZFN5bmNWaWV3Q29udGV4dCh0aGlzLnZpZXdDb250ZXh0LmdldFZpZXdDb250ZXh0VXVpZCgpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZVRyZWVPblRoZUZseSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgc3luY1RyZWUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy50cmVlRnJvbUJhY2tlbmQgPT09IG51bGwgfHwgdGhpcy50cmVlRnJvbUJhY2tlbmQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAvL3Rocm93IG5ldyBFcnJvcignVGhlcmUgaXMgbm8gdHJlZUZyb21CYWNrZW5kIGF2YWlsYWJsZSEnKTtcclxuICAgICAgY29uc29sZS53YXJuKCdUaGVyZSBpcyBubyB0cmVlRnJvbUJhY2tlbmQgYXZhaWxhYmxlIGluIHN5bmNUcmVlIScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmNhY2hlQWN0aW9uRGVzY2lwdG9ycyh0aGlzLmdldEFsbE5vZGVzKHRoaXMudHJlZUZyb21CYWNrZW5kISkpO1xyXG5cclxuICAgIGlmICghdGhpcy5zbWFydFRyZWVNb2RlbCkge1xyXG4gICAgICB0aGlzLnNtYXJ0VHJlZU1vZGVsID0ge1xyXG4gICAgICAgIHJvb3ROb2RlczogW10sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNtYXJ0VHJlZU5vZGVzOiBTbWFydFRyZWVOb2RlW10gPSB0aGlzLmNyZWF0ZUJ1dHRvbnNGb3JUcmVlTm9kZXModGhpcy50cmVlRnJvbUJhY2tlbmQpO1xyXG4gICAgdGhpcy5zbWFydFRyZWVNb2RlbCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB0aGlzLnNtYXJ0VHJlZU1vZGVsID0ge1xyXG4gICAgICByb290Tm9kZXM6IFtdLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc21hcnRUcmVlTW9kZWxDaGFuZ2VkLm5leHQodGhpcy5zbWFydFRyZWVNb2RlbCk7XHJcblxyXG4gICAgdGhpcy5zbWFydFRyZWVNb2RlbC5yb290Tm9kZXMgPSBzbWFydFRyZWVOb2RlcztcclxuXHJcbiAgICB0aGlzLmZpbmRTZWxlY3RlZCh0aGlzLnNtYXJ0VHJlZU1vZGVsLnJvb3ROb2Rlcyk7XHJcblxyXG4gICAgdGhpcy5zbWFydFRyZWVNb2RlbENoYW5nZWQubmV4dCh0aGlzLnNtYXJ0VHJlZU1vZGVsKTtcclxuICB9XHJcblxyXG4gIGRlZXBTZWFyY2hUcmVlTm9kZShpZGVudGlmaWVyOiBzdHJpbmcsIG5vZGVzOiBTbWFydFRyZWVOb2RlW10pOiBTbWFydFRyZWVOb2RlIHwgdW5kZWZpbmVkIHtcclxuICAgIGxldCB0cmVlTm9kZTogU21hcnRUcmVlTm9kZSB8IHVuZGVmaW5lZDtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBub2Rlcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2luZGV4XTtcclxuXHJcbiAgICAgIGlmIChub2RlLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcclxuICAgICAgICB0cmVlTm9kZSA9IG5vZGU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW5Ob2RlcyAmJiBub2RlLmNoaWxkcmVuTm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdHJlZU5vZGUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZShpZGVudGlmaWVyLCBub2RlLmNoaWxkcmVuTm9kZXMpO1xyXG4gICAgICAgIGlmICh0cmVlTm9kZSkge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJlZU5vZGU7XHJcbiAgfVxyXG5cclxuICBmaW5kU2VsZWN0ZWQobm9kZXM6IFNtYXJ0VHJlZU5vZGVbXSk6IHZvaWQge1xyXG4gICAgcmV0dXJuIG5vZGVzLmZvckVhY2goKG5vZGU6IFNtYXJ0VHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGUuc2VsZWN0ZWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG5vZGU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGRyZW5Ob2RlcyAmJiBub2RlLmNoaWxkcmVuTm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFNlbGVjdGVkKG5vZGUuY2hpbGRyZW5Ob2Rlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQnV0dG9uc0ZvclRyZWVOb2Rlcyhub2RlczogU21hcnRUcmVlTm9kZVtdKTogU21hcnRUcmVlTm9kZVtdIHtcclxuICAgIGxldCBpY29uID0gdGhpcy50cmVlTWVudUljb24gPz8gJ21vcmVfdmVydCc7XHJcblxyXG4gICAgbm9kZXMubWFwKChub2RlOiBTbWFydFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgIG5vZGUuYnV0dG9uID0gbm9kZS5hY3Rpb25zPy5sZW5ndGhcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgdHlwZTogU21hcnRUcmVlTm9kZUJ1dHRvblR5cGUuTUVOVSxcclxuICAgICAgICAgICAgaWNvbjogaWNvbixcclxuICAgICAgICAgICAgbWVudUl0ZW1CdXR0b25zOiBub2RlLmFjdGlvbnMubWFwKChhY3Rpb246IFVpQWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFNtYXJ0VHJlZU5vZGVCdXR0b25UeXBlLk5PUk1BTCxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsQnlBY3Rpb24oYWN0aW9uKSxcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLmRvQWN0aW9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBhcmdzOiBbYWN0aW9uLCBub2RlLmlkZW50aWZpZXJdLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICBub2RlLmljb24gPSAnRm9sZGVycyc7XHJcbiAgICAgIGlmIChub2RlLmNoaWxkcmVuTm9kZXMpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuTm9kZXMgPSB0aGlzLmNyZWF0ZUJ1dHRvbnNGb3JUcmVlTm9kZXMobm9kZS5jaGlsZHJlbk5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbm9kZXM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkb0FjdGlvbihhcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHVpQWN0aW9uOiBVaUFjdGlvbiA9IGFyZ3NbMF07XHJcbiAgICBsZXQgbm9kZVV1aWQ6IHN0cmluZyA9IGFyZ3NbMV07XHJcblxyXG4gICAgaWYgKHVpQWN0aW9uLnBhcmFtcykge1xyXG4gICAgICB1aUFjdGlvbi5wYXJhbXNbJ25vZGVVdWlkJ10gPSBub2RlVXVpZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVpQWN0aW9uLnBhcmFtcyA9IHtcclxuICAgICAgICBub2RlVXVpZDogbm9kZVV1aWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwgPSB7XHJcbiAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgdWlBY3Rpb24sXHJcbiAgICB9O1xyXG4gICAgdGhpcy51aUFjdGlvblNlcnZpY2UudWlBY3Rpb25Nb2RlbCA9IHVpQWN0aW9uTW9kZWw7XHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZS5leGVjdXRlKHVpQWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBbGxOb2Rlcyhub2RlczogU21hcnRUcmVlTm9kZVtdKTogU21hcnRUcmVlTm9kZVtdIHtcclxuICAgIHJldHVybiBub2Rlcy5mbGF0TWFwKChuKSA9PiBbbiwgLi4udGhpcy5nZXRBbGxOb2RlcyhuLmNoaWxkcmVuTm9kZXMpXSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgY2FjaGVBY3Rpb25EZXNjaXB0b3JzKG5vZGVzOiBTbWFydFRyZWVOb2RlW10pIHtcclxuICAgIGxldCBuZXdVaUFjdGlvbnMgPSBuZXcgU2V0PFVpQWN0aW9uPigpO1xyXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBub2RlLmFjdGlvbnNcclxuICAgICAgICA/LmZpbHRlcigodWlBY3Rpb246IFVpQWN0aW9uKSA9PiAhdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JzLmdldCh1aUFjdGlvbi5jb2RlISkpXHJcbiAgICAgICAgLmZvckVhY2goKGFjdGlvbikgPT4gbmV3VWlBY3Rpb25zLmFkZChhY3Rpb24pKTtcclxuICAgIH0pO1xyXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIG5ld1VpQWN0aW9ucykge1xyXG4gICAgICBpZiAoIXRoaXMudWlBY3Rpb25EZXNjcmlwdG9ycy5nZXQoYWN0aW9uLmNvZGUhKSkge1xyXG4gICAgICAgIGxldCBkZXNjcmlwdG9yID0gYXdhaXQgdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLmdldEFjdGlvbkRlc2NyaXB0b3IoYWN0aW9uKTtcclxuICAgICAgICB0aGlzLnVpQWN0aW9uRGVzY3JpcHRvcnMuc2V0KGFjdGlvbi5jb2RlISwgZGVzY3JpcHRvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0TGFiZWxCeUFjdGlvbihhY3Rpb246IFVpQWN0aW9uKTogc3RyaW5nIHtcclxuICAgIGxldCBkZXNjID0gdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JzLmdldChhY3Rpb24uY29kZSEpO1xyXG4gICAgcmV0dXJuIGRlc2MhLnRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBVc2VVaUFjdGlvblxyXG4gIGdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb246IFVpQWN0aW9uKTogVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zIHtcclxuICAgIGlmICh1aUFjdGlvbi5wYXJhbXMgJiYgdWlBY3Rpb24ucGFyYW1zWydub2RlVXVpZCddKSB7XHJcbiAgICAgIGxldCBub2RlVXVpZCA9IHVpQWN0aW9uLnBhcmFtcyFbJ25vZGVVdWlkJ107XHJcblxyXG4gICAgICBsZXQgbm9kZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgICAgaWYgKHVpQWN0aW9uLmNvZGUgPT09ICdSRU5BTUUnKSB7XHJcbiAgICAgICAgbm9kZU5hbWUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZShub2RlVXVpZCwgdGhpcy50cmVlRnJvbUJhY2tlbmQhKT8uY2FwdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmb3JUZXh0QXJlYTogJycsXHJcbiAgICAgICAgZm9yVGV4dEZpZWxkOiBub2RlTmFtZSA/IG5vZGVOYW1lIDogJycsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZm9yVGV4dEFyZWE6ICcnLFxyXG4gICAgICBmb3JUZXh0RmllbGQ6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4ge307XHJcbiAgfVxyXG5cclxuICBhc3luYyBwZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh1aUFjdGlvblJlcXVlc3QucGFyYW1zWydub2RlVXVpZCddKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybU5vZGVVaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybU1haW5VaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcbiAgICAvL2F3YWl0IHRoaXMudmlld0NvbnRleHQuZ2V0QW5kU3luY1ZpZXdDb250ZXh0KCk7XHJcblxyXG4gICAgdGhpcy5zeW5jVHJlZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcGVyZm9ybU5vZGVVaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IG5vZGVJZCA9IHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ25vZGVVdWlkJ107XHJcbiAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snbm9kZVV1aWQnXTtcclxuXHJcbiAgICBsZXQgdmlld1V1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSk7XHJcblxyXG4gICAgdGhpcy50cmVlRnJvbUJhY2tlbmQgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnBlcmZvcm1BY3Rpb24yKHZpZXdVdWlkLCB0aGlzLnRyZWVJZCEsIG5vZGVJZCwgdWlBY3Rpb25SZXF1ZXN0KS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgYXN5bmMgcGVyZm9ybU1haW5VaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IHZpZXdVdWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUpO1xyXG5cclxuICAgIHRoaXMudHJlZUZyb21CYWNrZW5kID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5wZXJmb3JtTWFpbkFjdGlvbjIodmlld1V1aWQsIHRoaXMudHJlZUlkISwgdWlBY3Rpb25SZXF1ZXN0KS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5KFxyXG4gICAgdWlBY3Rpb246IFVpQWN0aW9uLFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3RcclxuICApOiBQcm9taXNlPFVpQWN0aW9uU3BlY2lmaWNEZW1hbmRSZXNwb25zZT4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcbn1cclxuIl19
@@ -22,7 +22,11 @@ SmarttreeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
22
22
  MatMenuModule,
23
23
  SmartIconModule,
24
24
  SmartViewContextModule], exports: [SmartTreeComponent] });
25
- SmarttreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeModule, providers: [SmarttreeService, SmarttreeGenericService], imports: [[
25
+ SmarttreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeModule, providers: [
26
+ SmarttreeService,
27
+ SmarttreeGenericService,
28
+ { provide: 'treeMenuIcon', useValue: 'more_vert' },
29
+ ], imports: [[
26
30
  BrowserModule,
27
31
  MatCommonModule,
28
32
  MatButtonModule,
@@ -48,7 +52,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
48
52
  ],
49
53
  exports: [SmartTreeComponent],
50
54
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
51
- providers: [SmarttreeService, SmarttreeGenericService],
55
+ providers: [
56
+ SmarttreeService,
57
+ SmarttreeGenericService,
58
+ { provide: 'treeMenuIcon', useValue: 'more_vert' },
59
+ ],
52
60
  }]
53
61
  }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0cmVlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRyZWUvc21hcnR0cmVlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFrQnpELE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBZlgsa0JBQWtCLGFBRS9CLGFBQWE7UUFDYixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixhQUFhO1FBQ2IsYUFBYTtRQUNiLGVBQWU7UUFDZixzQkFBc0IsYUFFZCxrQkFBa0I7NkdBSWpCLGVBQWUsYUFGZixDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDLFlBWjdDO1lBQ1AsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsYUFBYTtZQUNiLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLHNCQUFzQjtTQUN2QjsyRkFLVSxlQUFlO2tCQWhCM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDO2lCQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydHRyZWUtZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydHRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnR0cmVlU2VydmljZSB9IGZyb20gJy4vc21hcnR0cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0TW9kdWxlIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBTbWFydEljb25Nb2R1bGUgfSBmcm9tICcuLi9zbWFydC1pY29uL3Byb2plY3RzJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbU21hcnRUcmVlQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCcm93c2VyTW9kdWxlLFxyXG4gICAgTWF0Q29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFRyZWVNb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgU21hcnRJY29uTW9kdWxlLFxyXG4gICAgU21hcnRWaWV3Q29udGV4dE1vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtTbWFydFRyZWVDb21wb25lbnRdLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBwcm92aWRlcnM6IFtTbWFydHRyZWVTZXJ2aWNlLCBTbWFydHRyZWVHZW5lcmljU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydHRyZWVNb2R1bGUge31cclxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0cmVlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRyZWUvc21hcnR0cmVlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFzQnpELE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBbkJYLGtCQUFrQixhQUUvQixhQUFhO1FBQ2IsZUFBZTtRQUNmLGVBQWU7UUFDZixhQUFhO1FBQ2IsYUFBYTtRQUNiLGFBQWE7UUFDYixlQUFlO1FBQ2Ysc0JBQXNCLGFBRWQsa0JBQWtCOzZHQVFqQixlQUFlLGFBTmY7UUFDVCxnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO0tBQ25ELFlBaEJRO1lBQ1AsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsYUFBYTtZQUNiLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLHNCQUFzQjtTQUN2QjsyRkFTVSxlQUFlO2tCQXBCM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVCxnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7cUJBQ25EO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRUcmVlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuL3NtYXJ0dHJlZS1nZW5lcmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFRyZWVDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0dHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydHRyZWVTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydHRyZWUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0Vmlld0NvbnRleHRNb2R1bGUgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IFNtYXJ0SWNvbk1vZHVsZSB9IGZyb20gJy4uL3NtYXJ0LWljb24vcHJvamVjdHMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtTbWFydFRyZWVDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICBNYXRDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0VHJlZU1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBTbWFydEljb25Nb2R1bGUsXHJcbiAgICBTbWFydFZpZXdDb250ZXh0TW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1NtYXJ0VHJlZUNvbXBvbmVudF0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgU21hcnR0cmVlU2VydmljZSxcclxuICAgIFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlLFxyXG4gICAgeyBwcm92aWRlOiAndHJlZU1lbnVJY29uJywgdXNlVmFsdWU6ICdtb3JlX3ZlcnQnIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0dHJlZU1vZHVsZSB7fVxyXG4iXX0=
@@ -9822,11 +9822,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9822
9822
  }] } });
9823
9823
 
9824
9824
  class SmartGridComponent {
9825
- constructor(service, cfService, dialog, uiActionDescriptorService) {
9825
+ constructor(service, cfService, dialog, uiActionDescriptorService, gridMenuIcon) {
9826
9826
  this.service = service;
9827
9827
  this.cfService = cfService;
9828
9828
  this.dialog = dialog;
9829
9829
  this.uiActionDescriptorService = uiActionDescriptorService;
9830
+ this.gridMenuIcon = gridMenuIcon;
9830
9831
  // private readonly defaultPageSize: number = 10;
9831
9832
  this.defaultPageSizeOptions = [5, 10, 25, 50];
9832
9833
  this._destroy$ = new Subject();
@@ -10289,20 +10290,20 @@ class SmartGridComponent {
10289
10290
  return result;
10290
10291
  }
10291
10292
  constructHeader() {
10292
- var _a, _b, _c, _d;
10293
+ var _a, _b, _c, _d, _e;
10293
10294
  return __awaiter(this, void 0, void 0, function* () {
10294
10295
  let header = [];
10295
10296
  if (this.smartGrid.gridModel.page.rows && this.smartGrid.gridModel.page.rows.length) {
10296
10297
  yield Promise.all(this.smartGrid.gridModel.page.rows.map((gridRow) => __awaiter(this, void 0, void 0, function* () {
10297
- var _e;
10298
- let newUiActions = (_e = gridRow.actions) === null || _e === void 0 ? void 0 : _e.filter((uiAction) => !this.uiActionDescriptors.get(uiAction.code));
10298
+ var _f;
10299
+ let newUiActions = (_f = gridRow.actions) === null || _f === void 0 ? void 0 : _f.filter((uiAction) => !this.uiActionDescriptors.get(uiAction.code));
10299
10300
  if (newUiActions) {
10300
10301
  yield Promise.all(newUiActions.map((uiAction) => __awaiter(this, void 0, void 0, function* () {
10301
- var _f, _g;
10302
- let descriptor = yield ((_f = this.smartGrid.uiActionDescriptorService) === null || _f === void 0 ? void 0 : _f.getActionDescriptor(uiAction));
10302
+ var _g, _h;
10303
+ let descriptor = yield ((_g = this.smartGrid.uiActionDescriptorService) === null || _g === void 0 ? void 0 : _g.getActionDescriptor(uiAction));
10303
10304
  if (!descriptor) {
10304
10305
  descriptor = {
10305
- title: (_g = uiAction.code) !== null && _g !== void 0 ? _g : 'CODE',
10306
+ title: (_h = uiAction.code) !== null && _h !== void 0 ? _h : 'CODE',
10306
10307
  color: 'primary',
10307
10308
  type: UiActionButtonType.NORMAL,
10308
10309
  };
@@ -10313,11 +10314,11 @@ class SmartGridComponent {
10313
10314
  })));
10314
10315
  }
10315
10316
  yield Promise.all(this.smartGrid.gridModel.view.orderedColumnNames.map((propertyName) => __awaiter(this, void 0, void 0, function* () {
10316
- var _h, _j, _k, _l, _m, _o;
10317
+ var _j, _k, _l, _m, _o, _p;
10317
10318
  let descColumn = this.smartGrid.gridModel.view.descriptor.columns.find((colDescriptor) => colDescriptor.propertyName === propertyName);
10318
- let customTableHeader = (_j = (_h = this.smartGrid.tableConfig) === null || _h === void 0 ? void 0 : _h.customSmartTableHeaders) === null || _j === void 0 ? void 0 : _j.find((header) => header.propertyName === propertyName);
10319
+ let customTableHeader = (_k = (_j = this.smartGrid.tableConfig) === null || _j === void 0 ? void 0 : _j.customSmartTableHeaders) === null || _k === void 0 ? void 0 : _k.find((header) => header.propertyName === propertyName);
10319
10320
  if (descColumn) {
10320
- let filterExpressionOrderByItem = (_l = (_k = this.smartGrid.gridModel.view) === null || _k === void 0 ? void 0 : _k.orderByList) === null || _l === void 0 ? void 0 : _l.find((filterExpression) => filterExpression.propertyName === descColumn.propertyName);
10321
+ let filterExpressionOrderByItem = (_m = (_l = this.smartGrid.gridModel.view) === null || _l === void 0 ? void 0 : _l.orderByList) === null || _m === void 0 ? void 0 : _m.find((filterExpression) => filterExpression.propertyName === descColumn.propertyName);
10321
10322
  let order;
10322
10323
  let orderNumber;
10323
10324
  if (filterExpressionOrderByItem) {
@@ -10330,10 +10331,10 @@ class SmartGridComponent {
10330
10331
  orderNumber++;
10331
10332
  }
10332
10333
  }
10333
- const orignalLabel = (_m = customTableHeader === null || customTableHeader === void 0 ? void 0 : customTableHeader.label) !== null && _m !== void 0 ? _m : descColumn.label;
10334
+ const orignalLabel = (_o = customTableHeader === null || customTableHeader === void 0 ? void 0 : customTableHeader.label) !== null && _o !== void 0 ? _o : descColumn.label;
10334
10335
  let label;
10335
10336
  if (this.smartGrid.translateService) {
10336
- label = yield ((_o = this.smartGrid.translateService) === null || _o === void 0 ? void 0 : _o.get(orignalLabel).toPromise());
10337
+ label = yield ((_p = this.smartGrid.translateService) === null || _p === void 0 ? void 0 : _p.get(orignalLabel).toPromise());
10337
10338
  }
10338
10339
  else {
10339
10340
  label = orignalLabel;
@@ -10388,6 +10389,7 @@ class SmartGridComponent {
10388
10389
  }
10389
10390
  if (!header.some((header) => header.propertyName === 'my_menu')) {
10390
10391
  if (((_d = this.smartGrid.options) === null || _d === void 0 ? void 0 : _d.rowUiActionType) === GridUiActionType.POPUP_MENU) {
10392
+ let icon = (_e = this.gridMenuIcon) !== null && _e !== void 0 ? _e : 'more_vert';
10391
10393
  header.push({
10392
10394
  label: '',
10393
10395
  propertyName: 'my_menu',
@@ -10395,7 +10397,7 @@ class SmartGridComponent {
10395
10397
  {
10396
10398
  type: SmartTableButtonType.MENU,
10397
10399
  callback: this.execute.bind(this),
10398
- icon: 'more_vert',
10400
+ icon: icon,
10399
10401
  menuItemButtonsPropertyName: 'actions',
10400
10402
  translator: this.buttonTranslator.bind(this),
10401
10403
  args: [],
@@ -10533,12 +10535,17 @@ class SmartGridComponent {
10533
10535
  this.dialog.open(TableLayoutDefinerComponent, { data: dialogData });
10534
10536
  }
10535
10537
  }
10536
- SmartGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartGridComponent, deps: [{ token: SmartGridService }, { token: ComponentFactoryService }, { token: i1$1.MatDialog }, { token: UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component });
10538
+ SmartGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartGridComponent, deps: [{ token: SmartGridService }, { token: ComponentFactoryService }, { token: i1$1.MatDialog }, { token: UiActionDescriptorService }, { token: 'gridMenuIcon' }], target: i0.ɵɵFactoryTarget.Component });
10537
10539
  SmartGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartGridComponent, selector: "smart-grid", inputs: { smartGrid: "smartGrid", uuid: "uuid", dev: "dev" }, providers: [SmartGridService], viewQueries: [{ propertyName: "vcRefTable", first: true, predicate: ["table"], descendants: true, read: ViewContainerRef }, { propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\r\n <div class=\"smart-grid-toolbar\">\r\n <smart-ui-action-toolbar #toolbar [id]=\"'grid_not_initialized'\"></smart-ui-action-toolbar>\r\n <button\r\n (click)=\"editColumns()\"\r\n mat-mini-fab\r\n color=\"text-primary\"\r\n *ngIf=\"smartGrid.showEditColumns\"\r\n >\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Columns\" class=\"smart-grid-edit-icon\"\r\n >view_columns</mat-icon\r\n >\r\n </button>\r\n </div>\r\n <!-- <div [ngClass]=\"isBlocked ? 'blocked' : ''\"></div> -->\r\n <div class=\"smartGridContent\">\r\n <div>\r\n <div *ngIf=\"smartGrid.showResultCount\">\r\n <div class=\"smartGrid-data-number\">\r\n {{ smartGrid.gridModel.totalRowCount }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"smart-grid-table-container\">\r\n <ng-template #table></ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"smartGrid.layoutDef === layoutDef().EXPANDABLE\">\r\n <smart-expandable-section\r\n #gridExpandableSection\r\n *ngFor=\"let expandableSection of expandableSections\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().CARD\"\r\n class=\"cards-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <app-smart-grid-card\r\n class=\"smartGrid-card-container\"\r\n *ngFor=\"let task of smartGrid.gridModel.page.rows\"\r\n [item]=\"task\"\r\n [smartGrid]=\"smartGrid\"\r\n [onSelect]=\"onSelect.bind(this)\"\r\n ></app-smart-grid-card>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().TREE && treeControl\"\r\n class=\"tree-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <mat-tree [dataSource]=\"treeDataSource!\" [treeControl]=\"treeControl!\">\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n matTreeNodePaddingIndent=\"24\"\r\n >\r\n <button mat-icon-button disabled class=\"tree-button\"></button>\r\n <mat-checkbox\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"treeChecklistSelection?.isSelected(node)\"\r\n (change)=\"treeNodeSelectionToggle(node)\"\r\n >{{ getTreeItem(node) }}</mat-checkbox\r\n >\r\n </mat-tree-node>\r\n\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodePadding\r\n matTreeNodePaddingIndent=\"24\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n class=\"tree-button\"\r\n [attr.aria-label]=\"'Toggle ' + node.item\"\r\n >\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl!.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox\r\n [checked]=\"treeChecklistSelection?.isSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"treeNodeSelectionToggle(node)\"\r\n >{{ getTreeItem(node) }}</mat-checkbox\r\n >\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator && !treeControl\"\r\n #paginator\r\n [length]=\"length\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"onChangePage($event)\"\r\n ></mat-paginator>\r\n</div>\r\n", styles: [".smartGrid-container{position:relative;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.smartGrid-data-number{padding-bottom:1rem}.cards-container{display:grid;grid-gap:1rem;gap:1rem;padding:1rem}.smartGrid-card-container{height:auto;border:1px solid black;border-radius:8px}.smartGrid-container ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline{bottom:0}.smartGridContent{width:100%;flex:1;overflow:auto}.blocked{position:absolute;width:calc(100% - 3rem);height:calc(100% - 3rem);z-index:110;background-color:#0003}.smart-grid-table-container{display:flex;flex-direction:column;gap:1rem}.smart-grid-toolbar{display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.smart-grid-toolbar smart-ui-action-toolbar{width:100%}.smart-grid-edit-icon{color:var(--light-gray)}.tree-button{width:24px!important;height:24px!important}\n"], components: [{ type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { type: SmartGridCardComponent, selector: "app-smart-grid-card", inputs: ["item", "smartGrid", "onSelect"] }, { type: i10$1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i12$1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10$1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { type: i10$1.MatTreeNode, selector: "mat-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { type: i10$1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { type: i10$1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }] });
10538
10540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartGridComponent, decorators: [{
10539
10541
  type: Component,
10540
10542
  args: [{ selector: 'smart-grid', providers: [SmartGridService], template: "<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\r\n <div class=\"smart-grid-toolbar\">\r\n <smart-ui-action-toolbar #toolbar [id]=\"'grid_not_initialized'\"></smart-ui-action-toolbar>\r\n <button\r\n (click)=\"editColumns()\"\r\n mat-mini-fab\r\n color=\"text-primary\"\r\n *ngIf=\"smartGrid.showEditColumns\"\r\n >\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Columns\" class=\"smart-grid-edit-icon\"\r\n >view_columns</mat-icon\r\n >\r\n </button>\r\n </div>\r\n <!-- <div [ngClass]=\"isBlocked ? 'blocked' : ''\"></div> -->\r\n <div class=\"smartGridContent\">\r\n <div>\r\n <div *ngIf=\"smartGrid.showResultCount\">\r\n <div class=\"smartGrid-data-number\">\r\n {{ smartGrid.gridModel.totalRowCount }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"smart-grid-table-container\">\r\n <ng-template #table></ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"smartGrid.layoutDef === layoutDef().EXPANDABLE\">\r\n <smart-expandable-section\r\n #gridExpandableSection\r\n *ngFor=\"let expandableSection of expandableSections\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().CARD\"\r\n class=\"cards-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <app-smart-grid-card\r\n class=\"smartGrid-card-container\"\r\n *ngFor=\"let task of smartGrid.gridModel.page.rows\"\r\n [item]=\"task\"\r\n [smartGrid]=\"smartGrid\"\r\n [onSelect]=\"onSelect.bind(this)\"\r\n ></app-smart-grid-card>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().TREE && treeControl\"\r\n class=\"tree-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <mat-tree [dataSource]=\"treeDataSource!\" [treeControl]=\"treeControl!\">\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n matTreeNodePaddingIndent=\"24\"\r\n >\r\n <button mat-icon-button disabled class=\"tree-button\"></button>\r\n <mat-checkbox\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"treeChecklistSelection?.isSelected(node)\"\r\n (change)=\"treeNodeSelectionToggle(node)\"\r\n >{{ getTreeItem(node) }}</mat-checkbox\r\n >\r\n </mat-tree-node>\r\n\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodePadding\r\n matTreeNodePaddingIndent=\"24\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n class=\"tree-button\"\r\n [attr.aria-label]=\"'Toggle ' + node.item\"\r\n >\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl!.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox\r\n [checked]=\"treeChecklistSelection?.isSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"treeNodeSelectionToggle(node)\"\r\n >{{ getTreeItem(node) }}</mat-checkbox\r\n >\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator && !treeControl\"\r\n #paginator\r\n [length]=\"length\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"onChangePage($event)\"\r\n ></mat-paginator>\r\n</div>\r\n", styles: [".smartGrid-container{position:relative;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.smartGrid-data-number{padding-bottom:1rem}.cards-container{display:grid;grid-gap:1rem;gap:1rem;padding:1rem}.smartGrid-card-container{height:auto;border:1px solid black;border-radius:8px}.smartGrid-container ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline{bottom:0}.smartGridContent{width:100%;flex:1;overflow:auto}.blocked{position:absolute;width:calc(100% - 3rem);height:calc(100% - 3rem);z-index:110;background-color:#0003}.smart-grid-table-container{display:flex;flex-direction:column;gap:1rem}.smart-grid-toolbar{display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.smart-grid-toolbar smart-ui-action-toolbar{width:100%}.smart-grid-edit-icon{color:var(--light-gray)}.tree-button{width:24px!important;height:24px!important}\n"] }]
10541
- }], ctorParameters: function () { return [{ type: SmartGridService }, { type: ComponentFactoryService }, { type: i1$1.MatDialog }, { type: UiActionDescriptorService }]; }, propDecorators: { smartGrid: [{
10543
+ }], ctorParameters: function () {
10544
+ return [{ type: SmartGridService }, { type: ComponentFactoryService }, { type: i1$1.MatDialog }, { type: UiActionDescriptorService }, { type: undefined, decorators: [{
10545
+ type: Inject,
10546
+ args: ['gridMenuIcon']
10547
+ }] }];
10548
+ }, propDecorators: { smartGrid: [{
10542
10549
  type: Input
10543
10550
  }], uuid: [{
10544
10551
  type: Input
@@ -10627,7 +10634,7 @@ SmartGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
10627
10634
  SmartformModule,
10628
10635
  MatSelectModule,
10629
10636
  SmartViewContextModule], exports: [SmartGridComponent] });
10630
- SmartGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartGridModule, imports: [[
10637
+ SmartGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartGridModule, providers: [{ provide: 'gridMenuIcon', useValue: 'more_vert' }], imports: [[
10631
10638
  BrowserModule,
10632
10639
  SmartIconModule,
10633
10640
  SmarttableModule,
@@ -10667,6 +10674,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10667
10674
  SmartViewContextModule,
10668
10675
  ],
10669
10676
  exports: [SmartGridComponent],
10677
+ providers: [{ provide: 'gridMenuIcon', useValue: 'more_vert' }],
10670
10678
  }]
10671
10679
  }] });
10672
10680
 
@@ -12028,10 +12036,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12028
12036
  }], ctorParameters: function () { return []; } });
12029
12037
 
12030
12038
  class SmarttreeGenericService extends SmarttreeService {
12031
- constructor(inject, pageName, treeId) {
12039
+ constructor(inject, pageName, treeId, treeMenuIcon) {
12032
12040
  super();
12033
12041
  this.pageName = pageName;
12034
12042
  this.treeId = treeId;
12043
+ this.treeMenuIcon = treeMenuIcon;
12035
12044
  // UseUiAction properties
12036
12045
  this.submit = new Subject();
12037
12046
  this.reSubscribeToChange = new Subject();
@@ -12192,12 +12201,14 @@ class SmarttreeGenericService extends SmarttreeService {
12192
12201
  });
12193
12202
  }
12194
12203
  createButtonsForTreeNodes(nodes) {
12204
+ var _a;
12205
+ let icon = (_a = this.treeMenuIcon) !== null && _a !== void 0 ? _a : 'more_vert';
12195
12206
  nodes.map((node) => {
12196
12207
  var _a;
12197
12208
  node.button = ((_a = node.actions) === null || _a === void 0 ? void 0 : _a.length)
12198
12209
  ? {
12199
12210
  type: SmartTreeNodeButtonType.MENU,
12200
- icon: 'more_vert',
12211
+ icon: icon,
12201
12212
  menuItemButtons: node.actions.map((action) => {
12202
12213
  return {
12203
12214
  type: SmartTreeNodeButtonType.NORMAL,
@@ -12309,7 +12320,7 @@ class SmarttreeGenericService extends SmarttreeService {
12309
12320
  throw new Error('Method not implemented.');
12310
12321
  }
12311
12322
  }
12312
- SmarttreeGenericService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, deps: [{ token: i0.Injector }, { token: 'pageName' }, { token: 'treeId' }], target: i0.ɵɵFactoryTarget.Injectable });
12323
+ SmarttreeGenericService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, deps: [{ token: i0.Injector }, { token: 'pageName' }, { token: 'treeId' }, { token: 'treeMenuIcon' }], target: i0.ɵɵFactoryTarget.Injectable });
12313
12324
  SmarttreeGenericService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, providedIn: 'root' });
12314
12325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, decorators: [{
12315
12326
  type: Injectable,
@@ -12323,6 +12334,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12323
12334
  }] }, { type: undefined, decorators: [{
12324
12335
  type: Inject,
12325
12336
  args: ['treeId']
12337
+ }] }, { type: undefined, decorators: [{
12338
+ type: Inject,
12339
+ args: ['treeMenuIcon']
12326
12340
  }] }];
12327
12341
  } });
12328
12342
 
@@ -12505,7 +12519,11 @@ SmarttreeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
12505
12519
  MatMenuModule,
12506
12520
  SmartIconModule,
12507
12521
  SmartViewContextModule], exports: [SmartTreeComponent] });
12508
- SmarttreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeModule, providers: [SmarttreeService, SmarttreeGenericService], imports: [[
12522
+ SmarttreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeModule, providers: [
12523
+ SmarttreeService,
12524
+ SmarttreeGenericService,
12525
+ { provide: 'treeMenuIcon', useValue: 'more_vert' },
12526
+ ], imports: [[
12509
12527
  BrowserModule,
12510
12528
  MatCommonModule,
12511
12529
  MatButtonModule,
@@ -12531,7 +12549,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12531
12549
  ],
12532
12550
  exports: [SmartTreeComponent],
12533
12551
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
12534
- providers: [SmarttreeService, SmarttreeGenericService],
12552
+ providers: [
12553
+ SmarttreeService,
12554
+ SmarttreeGenericService,
12555
+ { provide: 'treeMenuIcon', useValue: 'more_vert' },
12556
+ ],
12535
12557
  }]
12536
12558
  }] });
12537
12559