@trudb/tru-common-lib 0.1.224 → 0.1.225

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.
@@ -271,15 +271,15 @@ export class TruCardColumn {
271
271
  }
272
272
  }
273
273
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, deps: [{ token: i1.TruDataContext }, { token: i2.TruModelTypeLookup }], target: i0.ɵɵFactoryTarget.Component });
274
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config" }, viewQueries: [{ propertyName: "portal", first: true, predicate: [".tru-card-portal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar {{config.searchPanelConfig.side}}\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
274
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config" }, viewQueries: [{ propertyName: "portal", first: true, predicate: [".tru-card-portal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
275
275
  }
276
276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, decorators: [{
277
277
  type: Component,
278
- args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar {{config.searchPanelConfig.side}}\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
278
+ args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
279
279
  }], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruModelTypeLookup }], propDecorators: { config: [{
280
280
  type: Input
281
281
  }], portal: [{
282
282
  type: ViewChild,
283
283
  args: ['.tru-card-portal', { static: false }]
284
284
  }] } });
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtY29sdW1uL3RydS1jYXJkLWNvbHVtbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWNvbHVtbi90cnUtY2FyZC1jb2x1bW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVcEMsTUFBTSxPQUFPLGFBQWE7SUFzQ2Q7SUFDQTtJQXRDRCxNQUFNLENBQU07SUFFNkIsTUFBTSxDQUFrQjtJQUVsRSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDOUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3RCLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUN0QyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDeEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3BDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFD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WUFDWixZQUFZLGFBQWtCLEVBQUUsT0FBWTtZQUU1QyxDQUFDO1NBQ0Y7SUFDSCxDQUFDO3VHQTNTVSxhQUFhOzJGQUFiLGFBQWEsaU1DYjFCLG9qQ0F1QkE7OzJGRFZhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsaUJBQWlCO29IQUtsQixNQUFNO3NCQUFkLEtBQUs7Z0JBRTRDLE1BQU07c0JBQXZELFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IGJyZWV6ZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFR5cGVMb29rdXAgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtY2FyZC1jb2x1bW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtY2FyZC1jb2x1bW4uaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWNhcmQtY29sdW1uLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDYXJkQ29sdW1uIHtcclxuICBASW5wdXQoKSBjb25maWchOiBhbnlcclxuXHJcbiAgQFZpZXdDaGlsZCgnLnRydS1jYXJkLXBvcnRhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3J0YWwhOiBIVE1MRGl2RWxlbWVudDtcclxuXHJcbiAgcHJpdmF0ZSBwYXJlbnRUYWJsZU5hbWUgPSB0aGlzLmNvbmZpZy5wYXJlbnRUYWJsZU5hbWU7XHJcbiAgcHJpdmF0ZSBrZXkgPSB0aGlzLmNvbmZpZy5rZXk7XHJcbiAgcHJpdmF0ZSBwYXJlbnRRdWVyeSA9IHRoaXMuY29uZmlnLnBhcmVudFF1ZXJ5O1xyXG4gIHByaXZhdGUgbG9ja1Byb3BlcnR5ID0gdGhpcy5jb25maWcubG9ja1Byb3BlcnR5O1xyXG4gIHByaXZhdGUgZW50aXR5UGx1cmFsTmFtZSA9IHRoaXMuY29uZmlnLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgcHJpdmF0ZSBlbnRpdHlOYW1lID0gdGhpcy5jb25maWcuZW50aXR5TmFtZTtcclxuICBwcml2YXRlIGNvbHVtblNvcnQgPSB0aGlzLmNvbmZpZy5jb2x1bW5Tb3J0O1xyXG4gIHByaXZhdGUgY2FyZFNvcnQgPSB0aGlzLmNvbmZpZy5jYXJkU29ydDtcclxuICBwcml2YXRlIGNvbG9yID0gdGhpcy5jb25maWcuY29sb3I7XHJcblxyXG4gIHByaXZhdGUgdW5hc3NpZ25lZFZpc2libGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkVmlzaWJsZTtcclxuICBwcml2YXRlIHVuYXNzaWduZWROYW1lID0gdGhpcy5jb25maWcudW5hc3NpZ25lZE5hbWU7XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkTG9ja2VkID0gdGhpcy5jb25maWcudW5hc3NpZ25lZExvY2tlZDtcclxuICBwcml2YXRlIHVuYXNzaWduZWRDb2xvciA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWRDb2xvcjtcclxuICBwcml2YXRlIHVuYXNzaWduZWREcmFnZ2FibGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkRHJhZ2dhYmxlO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZERyb3BwYWJsZSA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWREcm9wcGFibGU7XHJcblxyXG4gIHByaXZhdGUgaW5hY3RpdmVWaXNpYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVWaXNpYmxlO1xyXG4gIHByaXZhdGUgaW5hY3RpdmVEcmFnZ2FibGUgPSB0aGlzLmNvbmZpZy5pbmFjdGl2ZURyYWdnYWJsZTtcclxuICBwcml2YXRlIGluYWN0aXZlRHJvcHBhYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVEcm9wcGFibGU7XHJcblxyXG4gIHByaXZhdGUgcmVsYXRlZFBhcmVudE5hbWU7XHJcbiAgcHJpdmF0ZSByZWxhdGVkQ2hpbGROYW1lO1xyXG4gIHByaXZhdGUgaW5zZXJ0QmVmb3JlOiBhbnk7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZENhcmRzID0gW107XHJcbiAgcHJpdmF0ZSBjb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgcHJpdmF0ZSBjYXJkRmlsdGVyU3RyOiBhbnk7XHJcbiAgcHJpdmF0ZSB1bmlxdWVJZDtcclxuXHJcbiAgY29sdW1uczogYW55O1xyXG4gIGxvY2tlZENvbHVtbnM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIHByaXZhdGUgbW9kZWxUeXBlTG9va3VwOiBUcnVNb2RlbFR5cGVMb29rdXApIHtcclxuXHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmtleS5sYXN0SW5kZXhPZih0aGlzLnBhcmVudFRhYmxlTmFtZSk7XHJcbiAgICBsZXQgcHJlZml4ID0gdGhpcy5rZXkuc3Vic3RyaW5nKGluZGV4LCAtMSk7XHJcbiAgICBpZiAocHJlZml4KSB7XHJcbiAgICAgIHRoaXMucmVsYXRlZFBhcmVudE5hbWUgPSBwcmVmaXggKyB0aGlzLnBhcmVudFRhYmxlTmFtZTtcclxuICAgICAgdGhpcy5yZWxhdGVkQ2hpbGROYW1lID0gcHJlZml4ICsgdGhpcy5lbnRpdHlQbHVyYWxOYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZWxhdGVkUGFyZW50TmFtZSA9IHRoaXMucGFyZW50VGFibGVOYW1lO1xyXG4gICAgICB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgPSB0aGlzLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51bmlxdWVJZCA9IHV1aWR2NCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJlbnRUYWJsZU1vZGVsID0gbnVsbDsvL2RhdGFTZXJ2aWNlLm1vZGVsLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdO1xyXG4gIHByaXZhdGUgdXNlckhhc1BhcmVudFRhYmxlUm9sZSA9IG51bGw7IC8vcGFyZW50VGFibGVNb2RlbC5jYW5EaXNwbGF5O1xyXG5cclxuICBwcml2YXRlIGNyZWF0ZURhdGFGb3JFbnRpdHkgPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB2YXIgZGF0YSA9IHRoaXMuY29uZmlnLmNyZWF0ZURhdGEoZW50aXR5KTtcclxuICAgIGRhdGEuJGVudGl0eSA9IGVudGl0eTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgaGFzVW5kZWZpbmVkQ2hpbGRyZW4gPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB0eXBlIEVudGl0eU9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICBjb25zdCBlbnRpdHlQcm9wZXJ0eU5hbWUgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgcmV0dXJuICFlbnRpdHlbZW50aXR5UHJvcGVydHlOYW1lXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzRW1wdHlDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gIWVudGl0eVtlbnRpdHlQcm9wZXJ0eU5hbWVdLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSW5hY3RpdmVDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gXy5ldmVyeShbZW50aXR5UHJvcGVydHlOYW1lXSwgKGNoaWxkOiBhbnkpID0+IHsgcmV0dXJuICFjaGlsZC5hY3RpdmU7IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBZGRlZFVuc2F2ZWRDaGlsZHJlbiA9IChlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4sIHBhcmVudFJlZjogbnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gXy5zb21lKGVudGl0aWVzLCAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gdGhpcy5rZXkgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgICByZXR1cm4gZW50aXR5W2VudGl0eVByb3BlcnR5TmFtZV0gPT09IHBhcmVudFJlZlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyID0gKCkgPT4ge1xyXG4gICAgdmFyIGxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcubG9ja2VkLWNvbHVtbnMnKVswXTtcclxuICAgIHZhciB1bmxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudW5sb2NrZWQtY29sdW1ucycpWzBdO1xyXG5cclxuICAgIHdoaWxlIChsb2NrZWRDb2x1bW5zICYmIGxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IGxvY2tlZENvbHVtbnMucmVtb3ZlQ2hpbGQobG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpOyB9O1xyXG4gICAgd2hpbGUgKHVubG9ja2VkQ29sdW1ucyAmJiB1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IHVubG9ja2VkQ29sdW1ucy5yZW1vdmVDaGlsZCh1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKTsgfVxyXG4gICAgd2hpbGUgKHRoaXMuc2VsZWN0ZWRDYXJkcy5sZW5ndGgpIHsgdGhpcy5zZWxlY3RlZENhcmRzLnBvcCgpOyB9O1xyXG4gICAgdGhpcy5jb25maWcub25TZWxlY3Rpb25DaGFuZ2VkKFtdKTtcclxuICAgIHRoaXMuY29uZmlnLmNsZWFyRmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Tb3J0UGF0aCA9IChhcmdzOiBbYW55LCBzdHJpbmdbXV0pOiBhbnkgPT4ge1xyXG4gICAgbGV0IGN1cnJlbnQ6IGFueSA9IGFyZ3NbMF07XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgYXJnc1sxXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcGFydE5hbWU6IHN0cmluZztcclxuICAgICAgaWYgKGkgIT09IGFyZ3NbMV0ubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHBhcnROYW1lID0gJ28nICsgYXJnc1sxXVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJ0TmFtZSA9IGFyZ3NbMV1baV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjdXJyZW50W3BhcnROYW1lXSkge1xyXG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnROYW1lXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUl0ZW1zU291cmNlKG5ld0VudGl0aWVzOiBBcnJheTxhbnk+LCByZXZlcnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIGlmICghcmV2ZXJ0KVxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2Nyb2xsX3Bvc2l0aW9uJyArIHV1aWR2NCgpLCAnMCcpO1xyXG5cclxuICAgIGlmIChuZXdFbnRpdGllcy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuY29uZmlnLmJ1c3lNZXNzYWdlID0gJ1JlbmRlcmluZy4uLic7XHJcblxyXG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgICB0aGlzLmNhcmRGaWx0ZXJTdHIgPSBudWxsO1xyXG5cclxuICAgIGlmICghbmV3RW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSBbXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsb2NrZWRDb2x1bW5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgZW1wdHlQYXJlbnRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgY29sdW1uczogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICAgIGxldCBxdWVyeSA9IG5ldyBicmVlemUuRW50aXR5UXVlcnkoJ1F1ZXJ5JyArIHRoaXMucGFyZW50VGFibGVOYW1lKTtcclxuXHJcbiAgICB2YXIgcmVsYXRlZENoaWxkUHJvcGVydHkgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmN1c3RvbUNhcmRDb2x1bW5RdWVyeUZhY3RvcnkpXHJcbiAgICAgIHF1ZXJ5ID0gdGhpcy5jb25maWcuY3VzdG9tQ2FyZENvbHVtblF1ZXJ5RmFjdG9yeShxdWVyeSwgcmVsYXRlZENoaWxkUHJvcGVydHkpO1xyXG4gICAgZWxzZVxyXG4gICAgICBxdWVyeSA9IHF1ZXJ5LmV4cGFuZCgnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUpO1xyXG5cclxuICAgIC8vaWYgKHRoaXMucGFyZW50UXVlcnkpXHJcbiAgICAvLyAgcXVlcnkgPSBxdWVyaWVzW3RoaXMucGFyZW50UXVlcnldKHF1ZXJ5KTtcclxuXHJcbiAgICB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmN1c3RvbVNlYXJjaCh0aGlzLm1vZGVsVHlwZUxvb2t1cC5nZXRUeXBlKHRoaXMucGFyZW50VGFibGVOYW1lKSwgcXVlcnkpLnN1YnNjcmliZSgocGFyZW50cykgPT4ge1xyXG4gICAgICB0aGlzLmNvbmZpZy5hZGRQYXJlbnRzVG9GaWx0ZXIocGFyZW50cyk7XHJcblxyXG4gICAgICBlbXB0eVBhcmVudHMgPSBfLmZpbHRlcihwYXJlbnRzLCAocGFyZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzVW5kZWZpbmVkQ2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0VtcHR5Q2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0luYWN0aXZlQ2hpbGRyZW4ocGFyZW50KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmhhc0FkZGVkVW5zYXZlZENoaWxkcmVuKG5ld0VudGl0aWVzLCBwYXJlbnQuUmVmKSkge1xyXG4gICAgICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBxdWVyeWFibGVQYXJlbnRSZWZzID0gXy5wbHVjayhwYXJlbnRzLCB0aGlzLmtleSlcclxuXHJcbiAgICAgIGxldCBpbmFjdGl2ZVdpdGhQYXJlbnQ6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgbGV0IGFjdGl2ZVdpdGhvdXRQYXJlbnQ6IEFycmF5PGFueT4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdW5hc3NpZ25lZDogdHJ1ZSxcclxuICAgICAgICAgIGNhcmRzOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuXHJcbiAgICAgIHBhcmVudHMuZm9yRWFjaCgocGFyZW50OiBhbnkpID0+IHtcclxuICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICBpZiAocXVlcnlhYmxlUGFyZW50UmVmcy5pbmRleE9mKHBhcmVudFt0aGlzLmtleV0pICE9PSAtMSkge1xyXG4gICAgICAgICAgaWYgKHBhcmVudFt0aGlzLmxvY2tQcm9wZXJ0eV0pIHtcclxuICAgICAgICAgICAgbG9ja2VkQ29sdW1ucy5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCFwYXJlbnRbdGhpcy5sb2NrUHJvcGVydHldICYmICFfLmNvbnRhaW5zKGVtcHR5UGFyZW50cywgcGFyZW50KSkge1xyXG4gICAgICAgICAgICBjb2x1bW5zLnB1c2gocGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcGFyZW50WydpbmFjdGl2ZSddID0gdHJ1ZTtcclxuICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG5ld0VudGl0aWVzLmZvckVhY2goKGVudGl0eSkgPT4ge1xyXG4gICAgICAgIHZhciBlbnRpdHlQYXJlbnQgPSBfLmZpbmQocGFyZW50cywgKHApID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0pXHJcbiAgICAgICAgICAgIHJldHVybiBwLlJlZiA9PT0gZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdLlJlZjtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGVudGl0eVBhcmVudCkge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5YWJsZVBhcmVudFJlZnMuaW5kZXhPZihlbnRpdHlQYXJlbnRbdGhpcy5rZXldKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAhZW50aXR5UGFyZW50ICYmXHJcbiAgICAgICAgICBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0gJiZcclxuICAgICAgICAgIGVudGl0eVsnbycgKyB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lXS5SZWYgPiAwKSB7XHJcbiAgICAgICAgICBsZXQgaW5hY3RpdmVQYXJlbnQgPSBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV07XHJcbiAgICAgICAgICBpZiAoaW5hY3RpdmVXaXRoUGFyZW50LmluZGV4T2YoaW5hY3RpdmVQYXJlbnQpID09PSAtMSkge1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnY2FyZHMnXSA9IFtdO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnaW5hY3RpdmUnXSA9IHRydWU7XHJcbiAgICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKGluYWN0aXZlUGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGluYWN0aXZlUGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50WzBdLmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb2x1bW5Tb3J0KSB7XHJcbiAgICAgICAgdmFyIGNvbHVtblNvcnRQYXJ0cyA9IHRoaXMuY29sdW1uU29ydC5zcGxpdCgnLycpO1xyXG5cclxuICAgICAgICBsb2NrZWRDb2x1bW5zID0gXy5zb3J0QnkobG9ja2VkQ29sdW1ucywgKG8pID0+IHtcclxuICAgICAgICAgIHZhciB2ID0gdGhpcy5nZXRWYWx1ZUZyb21Tb3J0UGF0aChbbywgY29sdW1uU29ydFBhcnRzXSk7XHJcbiAgICAgICAgICBpZiAodilcclxuICAgICAgICAgICAgcmV0dXJuIF8uaXNTdHJpbmcodikgPyB2LnRyaW0oKSA6IHY7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbHVtbnMgPSBfLnNvcnRCeShjb2x1bW5zLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50ID0gXy5zb3J0QnkoaW5hY3RpdmVXaXRoUGFyZW50LCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZW1wdHlQYXJlbnRzID0gXy5zb3J0QnkoZW1wdHlQYXJlbnRzLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNhcmRTb3J0KSB7XHJcbiAgICAgICAgbG9ja2VkQ29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50LmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50LmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pbmFjdGl2ZVZpc2libGUpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGluYWN0aXZlV2l0aFBhcmVudCk7XHJcblxyXG4gICAgICBjb2x1bW5zID0gY29sdW1ucy5jb25jYXQoZW1wdHlQYXJlbnRzKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnVuYXNzaWduZWRWaXNpYmxlICYmICF0aGlzLnVuYXNzaWduZWRMb2NrZWQpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGFjdGl2ZVdpdGhvdXRQYXJlbnQpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudW5hc3NpZ25lZFZpc2libGUgJiYgdGhpcy51bmFzc2lnbmVkTG9ja2VkKVxyXG4gICAgICAgIGxvY2tlZENvbHVtbnMgPSBjb2x1bW5zLmNvbmNhdChsb2NrZWRDb2x1bW5zKTtcclxuXHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IGxvY2tlZENvbHVtbnM7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgbmV3IENhcmRWaWV3KHRoaXMubG9ja2VkQ29sdW1ucywgdGhpcy5jb2x1bW5zKTtcclxuXHJcbiAgICAgICAgaWYgKHJldmVydCkge1xyXG4gICAgICAgICAgbGV0IGNvbHVtbkVsZW1lbnQgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMnKVswXTtcclxuICAgICAgICAgIGxldCBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Njcm9sbF9wb3NpdGlvbicgKyB1dWlkdjQoKSk7XHJcbiAgICAgICAgICBjb2x1bW5FbGVtZW50LnNjcm9sbExlZnQgPSBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID8gK3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24gOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjbGFzcyBDYXJkVmlldyB7XHJcbiAgICAgIGNvbnN0cnVjdG9yKGxvY2tlZENvbHVtbnM6IGFueSwgY29sdW1uczogYW55KSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0cnUtY2FyZFwiPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaXNCdXN5XCJcclxuICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtYnVzeS1pbmRpY2F0b3JcIj5cclxuICAgIDxwPlNlYXJjaGluZyBmb3Ige3tjb25maWcuZW50aXR5UGx1cmFsTGFiZWx9fS4uLjwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmJ1c3lNZXNzYWdlXCJcclxuICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtYnVzeS1pbmRpY2F0b3JcIj5cclxuICAgIDxwPnt7Y29uZmlnLmJ1c3lNZXNzYWdlfX08L3A+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLTx0cnUtdG9vbGJhciBbY29uZmlnXT1cImNvbmZpZy50b29sYmFyQ29uZmlnXCIgY2xhc3M9XCJtYWluLXRvb2xiYXIge3tjb25maWcuc2VhcmNoUGFuZWxDb25maWcuc2lkZX19XCI+PC90cnUtdG9vbGJhcj4tLT5cclxuICA8ZGl2IGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsXCI+XHJcbiAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnd2lkdGgnOiAoKGNvbmZpZy53aWR0aCAqIGxvY2tlZENvbHVtbnMubGVuZ3RoKSArICgxMCAqIGxvY2tlZENvbHVtbnMubGVuZ3RoIC0gMSkpICsgJ3B4JyB9XCJcclxuICAgICAgICAgW25nQ2xhc3NdPVwieyd0cnUtY2FyZC1wb3J0YWwtbG9ja2VkLWNvbHVtbnMtZGl2aWRlcic6IGxvY2tlZENvbHVtbnMubGVuZ3RofVwiXHJcbiAgICAgICAgICpuZ0lmPVwibG9ja2VkQ29sdW1ucy5sZW5ndGhcIlxyXG4gICAgICAgICBjbGFzcz1cInRydS1jYXJkLXBvcnRhbC1sb2NrZWQtY29sdW1ucyBsb2NrZWQtY29sdW1uc1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBbbmdTdHlsZV09XCJ7J2xlZnQnOiBsb2NrZWRDb2x1bW5zLmxlbmd0aCA/ICgoY29uZmlnLndpZHRoICogbG9ja2VkQ29sdW1ucy5sZW5ndGgpICsgKDEwICogbG9ja2VkQ29sdW1ucy5sZW5ndGggLSAxKSArIDIyKSArICdweCcgOiAwIH1cIlxyXG4gICAgICAgICBjbGFzcz1cInRydS1jYXJkLXBvcnRhbC1jb2x1bW5zIHVubG9ja2VkLWNvbHVtbnNcIj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtY29sdW1uL3RydS1jYXJkLWNvbHVtbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWNvbHVtbi90cnUtY2FyZC1jb2x1bW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVcEMsTUFBTSxPQUFPLGFBQWE7SUFzQ2Q7SUFDQTtJQXRDRCxNQUFNLENBQU07SUFFNkIsTUFBTSxDQUFrQjtJQUVsRSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDOUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3RCLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUN0QyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDeEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3BDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFD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WUFDWixZQUFZLGFBQWtCLEVBQUUsT0FBWTtZQUU1QyxDQUFDO1NBQ0Y7SUFDSCxDQUFDO3VHQTNTVSxhQUFhOzJGQUFiLGFBQWEsaU1DYjFCLGtoQ0F1QkE7OzJGRFZhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsaUJBQWlCO29IQUtsQixNQUFNO3NCQUFkLEtBQUs7Z0JBRTRDLE1BQU07c0JBQXZELFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IGJyZWV6ZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFR5cGVMb29rdXAgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtY2FyZC1jb2x1bW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtY2FyZC1jb2x1bW4uaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWNhcmQtY29sdW1uLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDYXJkQ29sdW1uIHtcclxuICBASW5wdXQoKSBjb25maWchOiBhbnlcclxuXHJcbiAgQFZpZXdDaGlsZCgnLnRydS1jYXJkLXBvcnRhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3J0YWwhOiBIVE1MRGl2RWxlbWVudDtcclxuXHJcbiAgcHJpdmF0ZSBwYXJlbnRUYWJsZU5hbWUgPSB0aGlzLmNvbmZpZy5wYXJlbnRUYWJsZU5hbWU7XHJcbiAgcHJpdmF0ZSBrZXkgPSB0aGlzLmNvbmZpZy5rZXk7XHJcbiAgcHJpdmF0ZSBwYXJlbnRRdWVyeSA9IHRoaXMuY29uZmlnLnBhcmVudFF1ZXJ5O1xyXG4gIHByaXZhdGUgbG9ja1Byb3BlcnR5ID0gdGhpcy5jb25maWcubG9ja1Byb3BlcnR5O1xyXG4gIHByaXZhdGUgZW50aXR5UGx1cmFsTmFtZSA9IHRoaXMuY29uZmlnLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgcHJpdmF0ZSBlbnRpdHlOYW1lID0gdGhpcy5jb25maWcuZW50aXR5TmFtZTtcclxuICBwcml2YXRlIGNvbHVtblNvcnQgPSB0aGlzLmNvbmZpZy5jb2x1bW5Tb3J0O1xyXG4gIHByaXZhdGUgY2FyZFNvcnQgPSB0aGlzLmNvbmZpZy5jYXJkU29ydDtcclxuICBwcml2YXRlIGNvbG9yID0gdGhpcy5jb25maWcuY29sb3I7XHJcblxyXG4gIHByaXZhdGUgdW5hc3NpZ25lZFZpc2libGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkVmlzaWJsZTtcclxuICBwcml2YXRlIHVuYXNzaWduZWROYW1lID0gdGhpcy5jb25maWcudW5hc3NpZ25lZE5hbWU7XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkTG9ja2VkID0gdGhpcy5jb25maWcudW5hc3NpZ25lZExvY2tlZDtcclxuICBwcml2YXRlIHVuYXNzaWduZWRDb2xvciA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWRDb2xvcjtcclxuICBwcml2YXRlIHVuYXNzaWduZWREcmFnZ2FibGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkRHJhZ2dhYmxlO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZERyb3BwYWJsZSA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWREcm9wcGFibGU7XHJcblxyXG4gIHByaXZhdGUgaW5hY3RpdmVWaXNpYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVWaXNpYmxlO1xyXG4gIHByaXZhdGUgaW5hY3RpdmVEcmFnZ2FibGUgPSB0aGlzLmNvbmZpZy5pbmFjdGl2ZURyYWdnYWJsZTtcclxuICBwcml2YXRlIGluYWN0aXZlRHJvcHBhYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVEcm9wcGFibGU7XHJcblxyXG4gIHByaXZhdGUgcmVsYXRlZFBhcmVudE5hbWU7XHJcbiAgcHJpdmF0ZSByZWxhdGVkQ2hpbGROYW1lO1xyXG4gIHByaXZhdGUgaW5zZXJ0QmVmb3JlOiBhbnk7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZENhcmRzID0gW107XHJcbiAgcHJpdmF0ZSBjb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgcHJpdmF0ZSBjYXJkRmlsdGVyU3RyOiBhbnk7XHJcbiAgcHJpdmF0ZSB1bmlxdWVJZDtcclxuXHJcbiAgY29sdW1uczogYW55O1xyXG4gIGxvY2tlZENvbHVtbnM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIHByaXZhdGUgbW9kZWxUeXBlTG9va3VwOiBUcnVNb2RlbFR5cGVMb29rdXApIHtcclxuXHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmtleS5sYXN0SW5kZXhPZih0aGlzLnBhcmVudFRhYmxlTmFtZSk7XHJcbiAgICBsZXQgcHJlZml4ID0gdGhpcy5rZXkuc3Vic3RyaW5nKGluZGV4LCAtMSk7XHJcbiAgICBpZiAocHJlZml4KSB7XHJcbiAgICAgIHRoaXMucmVsYXRlZFBhcmVudE5hbWUgPSBwcmVmaXggKyB0aGlzLnBhcmVudFRhYmxlTmFtZTtcclxuICAgICAgdGhpcy5yZWxhdGVkQ2hpbGROYW1lID0gcHJlZml4ICsgdGhpcy5lbnRpdHlQbHVyYWxOYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZWxhdGVkUGFyZW50TmFtZSA9IHRoaXMucGFyZW50VGFibGVOYW1lO1xyXG4gICAgICB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgPSB0aGlzLmVudGl0eVBsdXJhbE5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51bmlxdWVJZCA9IHV1aWR2NCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJlbnRUYWJsZU1vZGVsID0gbnVsbDsvL2RhdGFTZXJ2aWNlLm1vZGVsLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdO1xyXG4gIHByaXZhdGUgdXNlckhhc1BhcmVudFRhYmxlUm9sZSA9IG51bGw7IC8vcGFyZW50VGFibGVNb2RlbC5jYW5EaXNwbGF5O1xyXG5cclxuICBwcml2YXRlIGNyZWF0ZURhdGFGb3JFbnRpdHkgPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB2YXIgZGF0YSA9IHRoaXMuY29uZmlnLmNyZWF0ZURhdGEoZW50aXR5KTtcclxuICAgIGRhdGEuJGVudGl0eSA9IGVudGl0eTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgaGFzVW5kZWZpbmVkQ2hpbGRyZW4gPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB0eXBlIEVudGl0eU9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICBjb25zdCBlbnRpdHlQcm9wZXJ0eU5hbWUgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgcmV0dXJuICFlbnRpdHlbZW50aXR5UHJvcGVydHlOYW1lXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzRW1wdHlDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gIWVudGl0eVtlbnRpdHlQcm9wZXJ0eU5hbWVdLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSW5hY3RpdmVDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gXy5ldmVyeShbZW50aXR5UHJvcGVydHlOYW1lXSwgKGNoaWxkOiBhbnkpID0+IHsgcmV0dXJuICFjaGlsZC5hY3RpdmU7IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBZGRlZFVuc2F2ZWRDaGlsZHJlbiA9IChlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4sIHBhcmVudFJlZjogbnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gXy5zb21lKGVudGl0aWVzLCAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gdGhpcy5rZXkgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgICByZXR1cm4gZW50aXR5W2VudGl0eVByb3BlcnR5TmFtZV0gPT09IHBhcmVudFJlZlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyID0gKCkgPT4ge1xyXG4gICAgdmFyIGxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcubG9ja2VkLWNvbHVtbnMnKVswXTtcclxuICAgIHZhciB1bmxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudW5sb2NrZWQtY29sdW1ucycpWzBdO1xyXG5cclxuICAgIHdoaWxlIChsb2NrZWRDb2x1bW5zICYmIGxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IGxvY2tlZENvbHVtbnMucmVtb3ZlQ2hpbGQobG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpOyB9O1xyXG4gICAgd2hpbGUgKHVubG9ja2VkQ29sdW1ucyAmJiB1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IHVubG9ja2VkQ29sdW1ucy5yZW1vdmVDaGlsZCh1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKTsgfVxyXG4gICAgd2hpbGUgKHRoaXMuc2VsZWN0ZWRDYXJkcy5sZW5ndGgpIHsgdGhpcy5zZWxlY3RlZENhcmRzLnBvcCgpOyB9O1xyXG4gICAgdGhpcy5jb25maWcub25TZWxlY3Rpb25DaGFuZ2VkKFtdKTtcclxuICAgIHRoaXMuY29uZmlnLmNsZWFyRmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Tb3J0UGF0aCA9IChhcmdzOiBbYW55LCBzdHJpbmdbXV0pOiBhbnkgPT4ge1xyXG4gICAgbGV0IGN1cnJlbnQ6IGFueSA9IGFyZ3NbMF07XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgYXJnc1sxXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcGFydE5hbWU6IHN0cmluZztcclxuICAgICAgaWYgKGkgIT09IGFyZ3NbMV0ubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHBhcnROYW1lID0gJ28nICsgYXJnc1sxXVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJ0TmFtZSA9IGFyZ3NbMV1baV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjdXJyZW50W3BhcnROYW1lXSkge1xyXG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnROYW1lXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUl0ZW1zU291cmNlKG5ld0VudGl0aWVzOiBBcnJheTxhbnk+LCByZXZlcnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIGlmICghcmV2ZXJ0KVxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2Nyb2xsX3Bvc2l0aW9uJyArIHV1aWR2NCgpLCAnMCcpO1xyXG5cclxuICAgIGlmIChuZXdFbnRpdGllcy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuY29uZmlnLmJ1c3lNZXNzYWdlID0gJ1JlbmRlcmluZy4uLic7XHJcblxyXG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgICB0aGlzLmNhcmRGaWx0ZXJTdHIgPSBudWxsO1xyXG5cclxuICAgIGlmICghbmV3RW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSBbXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsb2NrZWRDb2x1bW5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgZW1wdHlQYXJlbnRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgY29sdW1uczogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICAgIGxldCBxdWVyeSA9IG5ldyBicmVlemUuRW50aXR5UXVlcnkoJ1F1ZXJ5JyArIHRoaXMucGFyZW50VGFibGVOYW1lKTtcclxuXHJcbiAgICB2YXIgcmVsYXRlZENoaWxkUHJvcGVydHkgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmN1c3RvbUNhcmRDb2x1bW5RdWVyeUZhY3RvcnkpXHJcbiAgICAgIHF1ZXJ5ID0gdGhpcy5jb25maWcuY3VzdG9tQ2FyZENvbHVtblF1ZXJ5RmFjdG9yeShxdWVyeSwgcmVsYXRlZENoaWxkUHJvcGVydHkpO1xyXG4gICAgZWxzZVxyXG4gICAgICBxdWVyeSA9IHF1ZXJ5LmV4cGFuZCgnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUpO1xyXG5cclxuICAgIC8vaWYgKHRoaXMucGFyZW50UXVlcnkpXHJcbiAgICAvLyAgcXVlcnkgPSBxdWVyaWVzW3RoaXMucGFyZW50UXVlcnldKHF1ZXJ5KTtcclxuXHJcbiAgICB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmN1c3RvbVNlYXJjaCh0aGlzLm1vZGVsVHlwZUxvb2t1cC5nZXRUeXBlKHRoaXMucGFyZW50VGFibGVOYW1lKSwgcXVlcnkpLnN1YnNjcmliZSgocGFyZW50cykgPT4ge1xyXG4gICAgICB0aGlzLmNvbmZpZy5hZGRQYXJlbnRzVG9GaWx0ZXIocGFyZW50cyk7XHJcblxyXG4gICAgICBlbXB0eVBhcmVudHMgPSBfLmZpbHRlcihwYXJlbnRzLCAocGFyZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzVW5kZWZpbmVkQ2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0VtcHR5Q2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0luYWN0aXZlQ2hpbGRyZW4ocGFyZW50KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmhhc0FkZGVkVW5zYXZlZENoaWxkcmVuKG5ld0VudGl0aWVzLCBwYXJlbnQuUmVmKSkge1xyXG4gICAgICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBxdWVyeWFibGVQYXJlbnRSZWZzID0gXy5wbHVjayhwYXJlbnRzLCB0aGlzLmtleSlcclxuXHJcbiAgICAgIGxldCBpbmFjdGl2ZVdpdGhQYXJlbnQ6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgbGV0IGFjdGl2ZVdpdGhvdXRQYXJlbnQ6IEFycmF5PGFueT4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdW5hc3NpZ25lZDogdHJ1ZSxcclxuICAgICAgICAgIGNhcmRzOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuXHJcbiAgICAgIHBhcmVudHMuZm9yRWFjaCgocGFyZW50OiBhbnkpID0+IHtcclxuICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICBpZiAocXVlcnlhYmxlUGFyZW50UmVmcy5pbmRleE9mKHBhcmVudFt0aGlzLmtleV0pICE9PSAtMSkge1xyXG4gICAgICAgICAgaWYgKHBhcmVudFt0aGlzLmxvY2tQcm9wZXJ0eV0pIHtcclxuICAgICAgICAgICAgbG9ja2VkQ29sdW1ucy5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCFwYXJlbnRbdGhpcy5sb2NrUHJvcGVydHldICYmICFfLmNvbnRhaW5zKGVtcHR5UGFyZW50cywgcGFyZW50KSkge1xyXG4gICAgICAgICAgICBjb2x1bW5zLnB1c2gocGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcGFyZW50WydpbmFjdGl2ZSddID0gdHJ1ZTtcclxuICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG5ld0VudGl0aWVzLmZvckVhY2goKGVudGl0eSkgPT4ge1xyXG4gICAgICAgIHZhciBlbnRpdHlQYXJlbnQgPSBfLmZpbmQocGFyZW50cywgKHApID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0pXHJcbiAgICAgICAgICAgIHJldHVybiBwLlJlZiA9PT0gZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdLlJlZjtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGVudGl0eVBhcmVudCkge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5YWJsZVBhcmVudFJlZnMuaW5kZXhPZihlbnRpdHlQYXJlbnRbdGhpcy5rZXldKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAhZW50aXR5UGFyZW50ICYmXHJcbiAgICAgICAgICBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0gJiZcclxuICAgICAgICAgIGVudGl0eVsnbycgKyB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lXS5SZWYgPiAwKSB7XHJcbiAgICAgICAgICBsZXQgaW5hY3RpdmVQYXJlbnQgPSBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV07XHJcbiAgICAgICAgICBpZiAoaW5hY3RpdmVXaXRoUGFyZW50LmluZGV4T2YoaW5hY3RpdmVQYXJlbnQpID09PSAtMSkge1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnY2FyZHMnXSA9IFtdO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnaW5hY3RpdmUnXSA9IHRydWU7XHJcbiAgICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKGluYWN0aXZlUGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGluYWN0aXZlUGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50WzBdLmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb2x1bW5Tb3J0KSB7XHJcbiAgICAgICAgdmFyIGNvbHVtblNvcnRQYXJ0cyA9IHRoaXMuY29sdW1uU29ydC5zcGxpdCgnLycpO1xyXG5cclxuICAgICAgICBsb2NrZWRDb2x1bW5zID0gXy5zb3J0QnkobG9ja2VkQ29sdW1ucywgKG8pID0+IHtcclxuICAgICAgICAgIHZhciB2ID0gdGhpcy5nZXRWYWx1ZUZyb21Tb3J0UGF0aChbbywgY29sdW1uU29ydFBhcnRzXSk7XHJcbiAgICAgICAgICBpZiAodilcclxuICAgICAgICAgICAgcmV0dXJuIF8uaXNTdHJpbmcodikgPyB2LnRyaW0oKSA6IHY7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbHVtbnMgPSBfLnNvcnRCeShjb2x1bW5zLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50ID0gXy5zb3J0QnkoaW5hY3RpdmVXaXRoUGFyZW50LCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZW1wdHlQYXJlbnRzID0gXy5zb3J0QnkoZW1wdHlQYXJlbnRzLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNhcmRTb3J0KSB7XHJcbiAgICAgICAgbG9ja2VkQ29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50LmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50LmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pbmFjdGl2ZVZpc2libGUpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGluYWN0aXZlV2l0aFBhcmVudCk7XHJcblxyXG4gICAgICBjb2x1bW5zID0gY29sdW1ucy5jb25jYXQoZW1wdHlQYXJlbnRzKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnVuYXNzaWduZWRWaXNpYmxlICYmICF0aGlzLnVuYXNzaWduZWRMb2NrZWQpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGFjdGl2ZVdpdGhvdXRQYXJlbnQpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudW5hc3NpZ25lZFZpc2libGUgJiYgdGhpcy51bmFzc2lnbmVkTG9ja2VkKVxyXG4gICAgICAgIGxvY2tlZENvbHVtbnMgPSBjb2x1bW5zLmNvbmNhdChsb2NrZWRDb2x1bW5zKTtcclxuXHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IGxvY2tlZENvbHVtbnM7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgbmV3IENhcmRWaWV3KHRoaXMubG9ja2VkQ29sdW1ucywgdGhpcy5jb2x1bW5zKTtcclxuXHJcbiAgICAgICAgaWYgKHJldmVydCkge1xyXG4gICAgICAgICAgbGV0IGNvbHVtbkVsZW1lbnQgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMnKVswXTtcclxuICAgICAgICAgIGxldCBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Njcm9sbF9wb3NpdGlvbicgKyB1dWlkdjQoKSk7XHJcbiAgICAgICAgICBjb2x1bW5FbGVtZW50LnNjcm9sbExlZnQgPSBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID8gK3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24gOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjbGFzcyBDYXJkVmlldyB7XHJcbiAgICAgIGNvbnN0cnVjdG9yKGxvY2tlZENvbHVtbnM6IGFueSwgY29sdW1uczogYW55KSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0cnUtY2FyZFwiPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaXNCdXN5XCJcclxuICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtYnVzeS1pbmRpY2F0b3JcIj5cclxuICAgIDxwPlNlYXJjaGluZyBmb3Ige3tjb25maWcuZW50aXR5UGx1cmFsTGFiZWx9fS4uLjwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmJ1c3lNZXNzYWdlXCJcclxuICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtYnVzeS1pbmRpY2F0b3JcIj5cclxuICAgIDxwPnt7Y29uZmlnLmJ1c3lNZXNzYWdlfX08L3A+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLTx0cnUtdG9vbGJhciBbY29uZmlnXT1cImNvbmZpZy50b29sYmFyQ29uZmlnXCIgY2xhc3M9XCJtYWluLXRvb2xiYXJcIj48L3RydS10b29sYmFyPi0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cnUtY2FyZC1wb3J0YWxcIj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwieyd3aWR0aCc6ICgoY29uZmlnLndpZHRoICogbG9ja2VkQ29sdW1ucy5sZW5ndGgpICsgKDEwICogbG9ja2VkQ29sdW1ucy5sZW5ndGggLSAxKSkgKyAncHgnIH1cIlxyXG4gICAgICAgICBbbmdDbGFzc109XCJ7J3RydS1jYXJkLXBvcnRhbC1sb2NrZWQtY29sdW1ucy1kaXZpZGVyJzogbG9ja2VkQ29sdW1ucy5sZW5ndGh9XCJcclxuICAgICAgICAgKm5nSWY9XCJsb2NrZWRDb2x1bW5zLmxlbmd0aFwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsLWxvY2tlZC1jb2x1bW5zIGxvY2tlZC1jb2x1bW5zXCI+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnbGVmdCc6IGxvY2tlZENvbHVtbnMubGVuZ3RoID8gKChjb25maWcud2lkdGggKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCkgKyAoMTAgKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCAtIDEpICsgMjIpICsgJ3B4JyA6IDAgfVwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMgdW5sb2NrZWQtY29sdW1uc1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -2877,11 +2877,11 @@ class TruCardColumn {
2877
2877
  }
2878
2878
  }
2879
2879
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, deps: [{ token: TruDataContext }, { token: TruModelTypeLookup }], target: i0.ɵɵFactoryTarget.Component });
2880
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config" }, viewQueries: [{ propertyName: "portal", first: true, predicate: [".tru-card-portal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar {{config.searchPanelConfig.side}}\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
2880
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config" }, viewQueries: [{ propertyName: "portal", first: true, predicate: [".tru-card-portal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
2881
2881
  }
2882
2882
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, decorators: [{
2883
2883
  type: Component,
2884
- args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar {{config.searchPanelConfig.side}}\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
2884
+ args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"config.isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.entityPluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"config.busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{config.busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}} .tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
2885
2885
  }], ctorParameters: () => [{ type: TruDataContext }, { type: TruModelTypeLookup }], propDecorators: { config: [{
2886
2886
  type: Input
2887
2887
  }], portal: [{