@mintplayer/ng-bootstrap 15.25.0 → 15.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dock/src/dock/dock.component.d.ts +3 -1
- package/dock/src/dock-panel-header/dock-panel-header.component.d.ts +5 -4
- package/dock/src/index.d.ts +1 -0
- package/dock/src/panes/content-pane.d.ts +1 -0
- package/dock/src/panes/dock-pane.d.ts +1 -0
- package/dock/src/panes/document-host-pane.d.ts +1 -0
- package/dock/src/panes/floating-pane.d.ts +2 -1
- package/dock/src/panes/split-pane.d.ts +1 -0
- package/dock/src/panes/tab-group-pane.d.ts +1 -0
- package/dock/src/services/dock/dock.service.d.ts +14 -0
- package/dock/src/services/index.d.ts +1 -0
- package/esm2020/dock/src/dock/dock.component.mjs +10 -2
- package/esm2020/dock/src/dock-panel-header/dock-panel-header.component.mjs +202 -96
- package/esm2020/dock/src/index.mjs +2 -1
- package/esm2020/dock/src/panes/content-pane.mjs +4 -1
- package/esm2020/dock/src/panes/dock-pane.mjs +1 -1
- package/esm2020/dock/src/panes/document-host-pane.mjs +4 -1
- package/esm2020/dock/src/panes/floating-pane.mjs +7 -2
- package/esm2020/dock/src/panes/split-pane.mjs +4 -1
- package/esm2020/dock/src/panes/tab-group-pane.mjs +4 -1
- package/esm2020/dock/src/services/dock/dock.service.mjs +56 -0
- package/esm2020/dock/src/services/index.mjs +2 -0
- package/esm2020/resizable/src/resize-glyph/resize-glyph.directive.mjs +1 -1
- package/fesm2015/mintplayer-ng-bootstrap-dock.mjs +287 -111
- package/fesm2015/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-dock.mjs +285 -111
- package/fesm2020/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/package.json +2 -2
- package/resizable/src/resize-glyph/resize-glyph.directive.d.ts +1 -1
|
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
216
216
|
type: HostListener,
|
|
217
217
|
args: ['touchend', ['$event']]
|
|
218
218
|
}] } });
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWdseXBoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmVzaXphYmxlL3NyYy9yZXNpemUtZ2x5cGgvcmVzaXplLWdseXBoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFLMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUs1RCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQStCLFNBQWM7UUFJdkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUErRnpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFwR3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFNRCxJQUFhLGFBQWEsQ0FBQyxLQUFpQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVzQyxXQUFXLENBQUMsRUFBYztRQUMvRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFdUMsWUFBWSxDQUFDLEVBQWM7UUFDakUsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRStDLFdBQVcsQ0FBQyxFQUFjO1FBQ3hFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUs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Q0Y7WUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7O21IQTdLVSxzQkFBc0Isa0JBSWIsU0FBUzt1R0FKbEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQUtjLE1BQU07MkJBQUMsU0FBUzs0Q0FJUCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBQ1EsVUFBVTtzQkFBckMsV0FBVzt1QkFBQyxhQUFhO2dCQUNHLFdBQVc7c0JBQXZDLFdBQVc7dUJBQUMsY0FBYztnQkFFZCxhQUFhO3NCQUF6QixLQUFLO2dCQUlpQyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLRyxZQUFZO3NCQUFuRCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLVSxXQUFXO3NCQUExRCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlQLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1TLFNBQVM7c0JBQXRELFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSU4sVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgdHlwZSB7IEJzUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXplQWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXNpemUtYWN0aW9uJztcbmltcG9ydCB7IFBvaW50ZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludGVyLWRhdGEnO1xuaW1wb3J0IHsgUkVTSVpBQkxFIH0gZnJvbSAnLi4vcHJvdmlkZXJzL3Jlc2l6YWJsZS5wcm92aWRlcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic1Jlc2l6ZUdseXBoXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNSZXNpemVHbHlwaERpcmVjdGl2ZSB7XG5cbiAgLy8gQ2FuJ3QgdXNlIHR5cGVkIERJIGJlY2F1c2Ugb2YgdGhlIGBpbXBvcnQgdHlwZWBcbiAgcHJpdmF0ZSByZXNpemFibGU6IEJzUmVzaXphYmxlQ29tcG9uZW50O1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KFJFU0laQUJMRSkgcmVzaXphYmxlOiBhbnkpIHtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IHJlc2l6YWJsZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwb3NpdGlvbnMgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5nbHlwaCcpIGdseXBoQ2xhc3MgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpIGFjdGl2ZUNsYXNzID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGJzUmVzaXplR2x5cGgodmFsdWU6IFBvc2l0aW9uW10pIHtcbiAgICB0aGlzLnBvc2l0aW9ucyA9IHZhbHVlLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pIG9uTW91c2VEb3duKGV2OiBNb3VzZUV2ZW50KSB7XG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm9uUG9pbnRlckRvd24oKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pIG9uVG91Y2hTdGFydChldjogVG91Y2hFdmVudCkge1xuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vblBvaW50ZXJEb3duKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKSBvbk1vdXNlTW92ZShldjogTW91c2VFdmVudCkge1xuICAgIHRoaXMub25Qb2ludGVyTW92ZSh7IGNsaWVudFg6IGV2LmNsaWVudFgsIGNsaWVudFk6IGV2LmNsaWVudFksIHByZXZlbnREZWZhdWx0OiAoKSA9PiBldi5wcmV2ZW50RGVmYXVsdCgpIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2htb3ZlJywgWyckZXZlbnQnXSkgb25Ub3VjaE1vdmUoZXY6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAoZXYudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMub25Qb2ludGVyTW92ZSh7IGNsaWVudFg6IGV2LnRvdWNoZXNbMF0uY2xpZW50WCwgY2xpZW50WTogZXYudG91Y2hlc1swXS5jbGllbnRZLCBwcmV2ZW50RGVmYXVsdDogKCkgPT4gZXYucHJldmVudERlZmF1bHQoKSB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSkgb25Nb3VzZVVwKGV2OiBFdmVudCkge1xuICAgIHRoaXMub25Qb2ludGVyVXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoZW5kJywgWyckZXZlbnQnXSkgb25Ub3VjaEVuZChldjogRXZlbnQpIHtcbiAgICB0aGlzLm9uUG9pbnRlclVwKCk7XG4gIH1cblxuICBvblBvaW50ZXJEb3duKCkge1xuICAgIGxldCBhY3Rpb246IFJlc2l6ZUFjdGlvbiA9IHtcbiAgICAgIHBvc2l0aW9uaW5nOiB0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZ1xuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IHRoaXMucmVzaXphYmxlLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlc2l6YWJsZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgY29uc3QgbWFyZ2luTGVmdCA9ICh0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZyA9PT0gJ2Fic29sdXRlJykgPyB1bmRlZmluZWQgOiBwYXJzZUZsb2F0KHN0eWxlcy5tYXJnaW5MZWZ0LnNsaWNlKDAsIC0yKSk7XG4gICAgY29uc3QgbWFyZ2luUmlnaHQgPSAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcgPT09ICdhYnNvbHV0ZScpID8gdW5kZWZpbmVkIDogcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luUmlnaHQuc2xpY2UoMCwgLTIpKTtcbiAgICBjb25zdCBtYXJnaW5Ub3AgPSAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcgPT09ICdhYnNvbHV0ZScpID8gdW5kZWZpbmVkIDogcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luVG9wLnNsaWNlKDAsIC0yKSk7XG4gICAgY29uc3QgbWFyZ2luQm90dG9tID0gKHRoaXMucmVzaXphYmxlLnBvc2l0aW9uaW5nID09PSAnYWJzb2x1dGUnKSA/IHVuZGVmaW5lZCA6IHBhcnNlRmxvYXQoc3R5bGVzLm1hcmdpbkJvdHRvbS5zbGljZSgwLCAtMikpO1xuXG4gICAgaWYgKHRoaXMucG9zaXRpb25zPy5pbmNsdWRlcygnc3RhcnQnKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIGVuZDoge1xuICAgICAgICAgIGVkZ2U6IHJlY3QucmlnaHQsXG4gICAgICAgICAgc2l6ZTogcmVjdC53aWR0aCxcbiAgICAgICAgICBtYXJnaW46IG1hcmdpblJpZ2h0LFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpbkxlZnRcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ2VuZCcpKSB7XG4gICAgICBhY3Rpb24gPSB7XG4gICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICBlZGdlOiByZWN0LmxlZnQsXG4gICAgICAgICAgc2l6ZTogcmVjdC53aWR0aCxcbiAgICAgICAgICBtYXJnaW46IG1hcmdpbkxlZnQsXG4gICAgICAgICAgZHJhZ01hcmdpbjogbWFyZ2luUmlnaHRcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICBhY3Rpb24gPSB7XG4gICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgYm90dG9tOiB7XG4gICAgICAgICAgZWRnZTogcmVjdC5ib3R0b20sXG4gICAgICAgICAgc2l6ZTogcmVjdC5oZWlnaHQsXG4gICAgICAgICAgbWFyZ2luOiBtYXJnaW5Cb3R0b20sXG4gICAgICAgICAgZHJhZ01hcmdpbjogbWFyZ2luVG9wXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5wb3NpdGlvbnM/LmluY2x1ZGVzKCdib3R0b20nKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIHRvcDoge1xuICAgICAgICAgIGVkZ2U6IHJlY3QudG9wLFxuICAgICAgICAgIHNpemU6IHJlY3QuaGVpZ2h0LFxuICAgICAgICAgIG1hcmdpbjogbWFyZ2luVG9wLFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpbkJvdHRvbVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24gPSBhY3Rpb247XG4gICAgdGhpcy5hY3RpdmVDbGFzcyA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGlzQnVzeSA9IGZhbHNlO1xuICBvblBvaW50ZXJNb3ZlKGV2OiBQb2ludGVyRGF0YSkge1xuICAgIGlmICh0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24gJiYgIXRoaXMuaXNCdXN5KSB7XG4gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgY29uc3QgcmN0ID0gdGhpcy5yZXNpemFibGUuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbi5zdGFydCAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ2VuZCcpKSB7XG4gICAgICAgIC8vIFJpZ2h0IGdseXBoXG4gICAgICAgIGNvbnN0IHggPSAoZXYuY2xpZW50WCA8IHJjdC5sZWZ0ICsgMTApID8gcmN0LmxlZnQgKyAxMCA6IGV2LmNsaWVudFg7XG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcpIHtcbiAgICAgICAgICBjYXNlICdpbmxpbmUnOiB7XG4gICAgICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5SaWdodCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUubWFyZ2luUmlnaHQgPSBpbml0YWxNYXJnaW4gLSAoeCAtIHJjdC5yaWdodCk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlICdhYnNvbHV0ZSc6IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLndpZHRoID0geCAtIHJjdC5sZWZ0O1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmVuZCAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3N0YXJ0JykpIHtcbiAgICAgICAgLy8gTGVmdCBnbHlwaFxuICAgICAgICBjb25zdCB4ID0gKGV2LmNsaWVudFggPiByY3QucmlnaHQgLSAxMCkgPyByY3QucmlnaHQgLSAxMCA6IGV2LmNsaWVudFg7XG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcpIHtcbiAgICAgICAgICBjYXNlICdpbmxpbmUnOiB7XG4gICAgICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5MZWZ0ID8/IDA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5MZWZ0ID0gaW5pdGFsTWFyZ2luICsgeCAtIHJjdC5sZWZ0O1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYWJzb2x1dGUnOiB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5sZWZ0ID0geDtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLndpZHRoID0gdGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmVuZC5lZGdlIC0geDtcbiAgICAgICAgICB9IGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24udG9wICYmIHRoaXMucG9zaXRpb25zPy5pbmNsdWRlcygnYm90dG9tJykpIHtcbiAgICAgICAgLy8gQm90dG9tIGdseXBoXG4gICAgICAgIGNvbnN0IHkgPSAoZXYuY2xpZW50WSA8IHJjdC50b3AgKyAxMCkgPyByY3QudG9wICsgMTAgOiBldi5jbGllbnRZO1xuICAgICAgICBzd2l0Y2ggKHRoaXMucmVzaXphYmxlLnBvc2l0aW9uaW5nKSB7XG4gICAgICAgICAgY2FzZSAnaW5saW5lJzoge1xuICAgICAgICAgICAgY29uc3QgaW5pdGFsTWFyZ2luID0gdGhpcy5yZXNpemFibGUubWFyZ2luQm90dG9tID8/IDA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5oZWlnaHQgPSB5IC0gcmN0LnRvcDtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLm1hcmdpbkJvdHRvbSA9IGluaXRhbE1hcmdpbiAtICh5IC0gcmN0LmJvdHRvbSk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlICdhYnNvbHV0ZSc6IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLmhlaWdodCA9IHkgLSByY3QudG9wO1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmJvdHRvbSAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICAgIC8vIFRvcCBnbHlwaFxuICAgICAgICBjb25zdCB5ID0gKGV2LmNsaWVudFkgPiByY3QuYm90dG9tIC0gMTApID8gcmN0LmJvdHRvbSAtIDEwIDogZXYuY2xpZW50WTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZykge1xuICAgICAgICAgIGNhc2UgJ2lubGluZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRhbE1hcmdpbiA9IHRoaXMucmVzaXphYmxlLm1hcmdpblRvcCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUuaGVpZ2h0ID0gcmN0LmJvdHRvbSAtIHk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5Ub3AgPSBpbml0YWxNYXJnaW4gKyB5IC0gcmN0LnRvcDtcbiAgICAgICAgICB9IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Fic29sdXRlJzoge1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUudG9wID0geTtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLmhlaWdodCA9IHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbi5ib3R0b20uZWRnZSAtIHk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgXG4gIG9uUG9pbnRlclVwKCkge1xuICAgIHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFjdGl2ZUNsYXNzID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWdseXBoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmVzaXphYmxlL3NyYy9yZXNpemUtZ2x5cGgvcmVzaXplLWdseXBoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFLMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUs1RCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQStCLFNBQWM7UUFJdkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUErRnpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFwR3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFNRCxJQUFhLGFBQWEsQ0FBQyxLQUFpQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVzQyxXQUFXLENBQUMsRUFBYztRQUMvRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFdUMsWUFBWSxDQUFDLEVBQWM7UUFDakUsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRStDLFdBQVcsQ0FBQyxFQUFjO1FBQ3hFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUs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Q0Y7WUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7O21IQTdLVSxzQkFBc0Isa0JBSWIsU0FBUzt1R0FKbEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQUtjLE1BQU07MkJBQUMsU0FBUzs0Q0FJUCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBQ1EsVUFBVTtzQkFBckMsV0FBVzt1QkFBQyxhQUFhO2dCQUNHLFdBQVc7c0JBQXZDLFdBQVc7dUJBQUMsY0FBYztnQkFFZCxhQUFhO3NCQUF6QixLQUFLO2dCQUlpQyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLRyxZQUFZO3NCQUFuRCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLVSxXQUFXO3NCQUExRCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlQLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1TLFNBQVM7c0JBQXRELFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSU4sVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgdHlwZSB7IEJzUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXplQWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXNpemUtYWN0aW9uJztcbmltcG9ydCB7IFBvaW50ZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludGVyLWRhdGEnO1xuaW1wb3J0IHsgUkVTSVpBQkxFIH0gZnJvbSAnLi4vcHJvdmlkZXJzL3Jlc2l6YWJsZS5wcm92aWRlcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic1Jlc2l6ZUdseXBoXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNSZXNpemVHbHlwaERpcmVjdGl2ZSB7XG5cbiAgLy8gQ2FuJ3QgdXNlIHR5cGVkIERJIGJlY2F1c2Ugb2YgdGhlIGBpbXBvcnQgdHlwZWBcbiAgcHJpdmF0ZSByZWFkb25seSByZXNpemFibGU6IEJzUmVzaXphYmxlQ29tcG9uZW50O1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KFJFU0laQUJMRSkgcmVzaXphYmxlOiBhbnkpIHtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IHJlc2l6YWJsZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwb3NpdGlvbnMgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5nbHlwaCcpIGdseXBoQ2xhc3MgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpIGFjdGl2ZUNsYXNzID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGJzUmVzaXplR2x5cGgodmFsdWU6IFBvc2l0aW9uW10pIHtcbiAgICB0aGlzLnBvc2l0aW9ucyA9IHZhbHVlLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pIG9uTW91c2VEb3duKGV2OiBNb3VzZUV2ZW50KSB7XG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm9uUG9pbnRlckRvd24oKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pIG9uVG91Y2hTdGFydChldjogVG91Y2hFdmVudCkge1xuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vblBvaW50ZXJEb3duKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKSBvbk1vdXNlTW92ZShldjogTW91c2VFdmVudCkge1xuICAgIHRoaXMub25Qb2ludGVyTW92ZSh7IGNsaWVudFg6IGV2LmNsaWVudFgsIGNsaWVudFk6IGV2LmNsaWVudFksIHByZXZlbnREZWZhdWx0OiAoKSA9PiBldi5wcmV2ZW50RGVmYXVsdCgpIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2htb3ZlJywgWyckZXZlbnQnXSkgb25Ub3VjaE1vdmUoZXY6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAoZXYudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMub25Qb2ludGVyTW92ZSh7IGNsaWVudFg6IGV2LnRvdWNoZXNbMF0uY2xpZW50WCwgY2xpZW50WTogZXYudG91Y2hlc1swXS5jbGllbnRZLCBwcmV2ZW50RGVmYXVsdDogKCkgPT4gZXYucHJldmVudERlZmF1bHQoKSB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSkgb25Nb3VzZVVwKGV2OiBFdmVudCkge1xuICAgIHRoaXMub25Qb2ludGVyVXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoZW5kJywgWyckZXZlbnQnXSkgb25Ub3VjaEVuZChldjogRXZlbnQpIHtcbiAgICB0aGlzLm9uUG9pbnRlclVwKCk7XG4gIH1cblxuICBvblBvaW50ZXJEb3duKCkge1xuICAgIGxldCBhY3Rpb246IFJlc2l6ZUFjdGlvbiA9IHtcbiAgICAgIHBvc2l0aW9uaW5nOiB0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZ1xuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IHRoaXMucmVzaXphYmxlLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlc2l6YWJsZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgY29uc3QgbWFyZ2luTGVmdCA9ICh0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZyA9PT0gJ2Fic29sdXRlJykgPyB1bmRlZmluZWQgOiBwYXJzZUZsb2F0KHN0eWxlcy5tYXJnaW5MZWZ0LnNsaWNlKDAsIC0yKSk7XG4gICAgY29uc3QgbWFyZ2luUmlnaHQgPSAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcgPT09ICdhYnNvbHV0ZScpID8gdW5kZWZpbmVkIDogcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luUmlnaHQuc2xpY2UoMCwgLTIpKTtcbiAgICBjb25zdCBtYXJnaW5Ub3AgPSAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcgPT09ICdhYnNvbHV0ZScpID8gdW5kZWZpbmVkIDogcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luVG9wLnNsaWNlKDAsIC0yKSk7XG4gICAgY29uc3QgbWFyZ2luQm90dG9tID0gKHRoaXMucmVzaXphYmxlLnBvc2l0aW9uaW5nID09PSAnYWJzb2x1dGUnKSA/IHVuZGVmaW5lZCA6IHBhcnNlRmxvYXQoc3R5bGVzLm1hcmdpbkJvdHRvbS5zbGljZSgwLCAtMikpO1xuXG4gICAgaWYgKHRoaXMucG9zaXRpb25zPy5pbmNsdWRlcygnc3RhcnQnKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIGVuZDoge1xuICAgICAgICAgIGVkZ2U6IHJlY3QucmlnaHQsXG4gICAgICAgICAgc2l6ZTogcmVjdC53aWR0aCxcbiAgICAgICAgICBtYXJnaW46IG1hcmdpblJpZ2h0LFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpbkxlZnRcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ2VuZCcpKSB7XG4gICAgICBhY3Rpb24gPSB7XG4gICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICBlZGdlOiByZWN0LmxlZnQsXG4gICAgICAgICAgc2l6ZTogcmVjdC53aWR0aCxcbiAgICAgICAgICBtYXJnaW46IG1hcmdpbkxlZnQsXG4gICAgICAgICAgZHJhZ01hcmdpbjogbWFyZ2luUmlnaHRcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICBhY3Rpb24gPSB7XG4gICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgYm90dG9tOiB7XG4gICAgICAgICAgZWRnZTogcmVjdC5ib3R0b20sXG4gICAgICAgICAgc2l6ZTogcmVjdC5oZWlnaHQsXG4gICAgICAgICAgbWFyZ2luOiBtYXJnaW5Cb3R0b20sXG4gICAgICAgICAgZHJhZ01hcmdpbjogbWFyZ2luVG9wXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5wb3NpdGlvbnM/LmluY2x1ZGVzKCdib3R0b20nKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIHRvcDoge1xuICAgICAgICAgIGVkZ2U6IHJlY3QudG9wLFxuICAgICAgICAgIHNpemU6IHJlY3QuaGVpZ2h0LFxuICAgICAgICAgIG1hcmdpbjogbWFyZ2luVG9wLFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpbkJvdHRvbVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24gPSBhY3Rpb247XG4gICAgdGhpcy5hY3RpdmVDbGFzcyA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGlzQnVzeSA9IGZhbHNlO1xuICBvblBvaW50ZXJNb3ZlKGV2OiBQb2ludGVyRGF0YSkge1xuICAgIGlmICh0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24gJiYgIXRoaXMuaXNCdXN5KSB7XG4gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgY29uc3QgcmN0ID0gdGhpcy5yZXNpemFibGUuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbi5zdGFydCAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ2VuZCcpKSB7XG4gICAgICAgIC8vIFJpZ2h0IGdseXBoXG4gICAgICAgIGNvbnN0IHggPSAoZXYuY2xpZW50WCA8IHJjdC5sZWZ0ICsgMTApID8gcmN0LmxlZnQgKyAxMCA6IGV2LmNsaWVudFg7XG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcpIHtcbiAgICAgICAgICBjYXNlICdpbmxpbmUnOiB7XG4gICAgICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5SaWdodCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUubWFyZ2luUmlnaHQgPSBpbml0YWxNYXJnaW4gLSAoeCAtIHJjdC5yaWdodCk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlICdhYnNvbHV0ZSc6IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLndpZHRoID0geCAtIHJjdC5sZWZ0O1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmVuZCAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3N0YXJ0JykpIHtcbiAgICAgICAgLy8gTGVmdCBnbHlwaFxuICAgICAgICBjb25zdCB4ID0gKGV2LmNsaWVudFggPiByY3QucmlnaHQgLSAxMCkgPyByY3QucmlnaHQgLSAxMCA6IGV2LmNsaWVudFg7XG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcpIHtcbiAgICAgICAgICBjYXNlICdpbmxpbmUnOiB7XG4gICAgICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5MZWZ0ID8/IDA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5MZWZ0ID0gaW5pdGFsTWFyZ2luICsgeCAtIHJjdC5sZWZ0O1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYWJzb2x1dGUnOiB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5sZWZ0ID0geDtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLndpZHRoID0gdGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmVuZC5lZGdlIC0geDtcbiAgICAgICAgICB9IGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24udG9wICYmIHRoaXMucG9zaXRpb25zPy5pbmNsdWRlcygnYm90dG9tJykpIHtcbiAgICAgICAgLy8gQm90dG9tIGdseXBoXG4gICAgICAgIGNvbnN0IHkgPSAoZXYuY2xpZW50WSA8IHJjdC50b3AgKyAxMCkgPyByY3QudG9wICsgMTAgOiBldi5jbGllbnRZO1xuICAgICAgICBzd2l0Y2ggKHRoaXMucmVzaXphYmxlLnBvc2l0aW9uaW5nKSB7XG4gICAgICAgICAgY2FzZSAnaW5saW5lJzoge1xuICAgICAgICAgICAgY29uc3QgaW5pdGFsTWFyZ2luID0gdGhpcy5yZXNpemFibGUubWFyZ2luQm90dG9tID8/IDA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5oZWlnaHQgPSB5IC0gcmN0LnRvcDtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLm1hcmdpbkJvdHRvbSA9IGluaXRhbE1hcmdpbiAtICh5IC0gcmN0LmJvdHRvbSk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlICdhYnNvbHV0ZSc6IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLmhlaWdodCA9IHkgLSByY3QudG9wO1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmJvdHRvbSAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICAgIC8vIFRvcCBnbHlwaFxuICAgICAgICBjb25zdCB5ID0gKGV2LmNsaWVudFkgPiByY3QuYm90dG9tIC0gMTApID8gcmN0LmJvdHRvbSAtIDEwIDogZXYuY2xpZW50WTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZykge1xuICAgICAgICAgIGNhc2UgJ2lubGluZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRhbE1hcmdpbiA9IHRoaXMucmVzaXphYmxlLm1hcmdpblRvcCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUuaGVpZ2h0ID0gcmN0LmJvdHRvbSAtIHk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5Ub3AgPSBpbml0YWxNYXJnaW4gKyB5IC0gcmN0LnRvcDtcbiAgICAgICAgICB9IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Fic29sdXRlJzoge1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUudG9wID0geTtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLmhlaWdodCA9IHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbi5ib3R0b20uZWRnZSAtIHk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgXG4gIG9uUG9pbnRlclVwKCkge1xuICAgIHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFjdGl2ZUNsYXNzID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ViewChild, Input, ContentChildren, ViewChildren, HostBinding, HostListener, NgModule } from '@angular/core';
|
|
2
|
+
import { Component, ViewChild, Input, ContentChildren, ViewChildren, HostBinding, Injectable, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i3 from '@angular/cdk/portal';
|
|
@@ -13,7 +13,8 @@ import * as i6 from '@mintplayer/ng-bootstrap/tab-control';
|
|
|
13
13
|
import { BsTabControlModule } from '@mintplayer/ng-bootstrap/tab-control';
|
|
14
14
|
import * as i4 from '@mintplayer/ng-bootstrap/instance-of';
|
|
15
15
|
import { BsInstanceOfModule } from '@mintplayer/ng-bootstrap/instance-of';
|
|
16
|
-
import { BehaviorSubject, Subject, takeUntil, take } from 'rxjs';
|
|
16
|
+
import { BehaviorSubject, Subject, takeUntil, map, take } from 'rxjs';
|
|
17
|
+
import { deepClone } from '@mintplayer/parentify';
|
|
17
18
|
import * as i1 from '@angular/cdk/overlay';
|
|
18
19
|
|
|
19
20
|
class BsDockPanelComponent {
|
|
@@ -49,6 +50,9 @@ class BsTabGroupPane extends BsDockPane {
|
|
|
49
50
|
this.panes = [];
|
|
50
51
|
Object.assign(this, data);
|
|
51
52
|
}
|
|
53
|
+
get isEmpty() {
|
|
54
|
+
return this.panes.length === 0;
|
|
55
|
+
}
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
class BsDocumentHost extends BsDockPane {
|
|
@@ -56,38 +60,53 @@ class BsDocumentHost extends BsDockPane {
|
|
|
56
60
|
super();
|
|
57
61
|
Object.assign(this, data);
|
|
58
62
|
}
|
|
63
|
+
get isEmpty() {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
return (_b = (_a = this.rootPane) === null || _a === void 0 ? void 0 : _a.isEmpty) !== null && _b !== void 0 ? _b : true;
|
|
66
|
+
}
|
|
59
67
|
}
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
(function (EPaneType) {
|
|
63
|
-
EPaneType[EPaneType["documentHost"] = 1] = "documentHost";
|
|
64
|
-
EPaneType[EPaneType["splitPane"] = 2] = "splitPane";
|
|
65
|
-
EPaneType[EPaneType["contentPane"] = 3] = "contentPane";
|
|
66
|
-
EPaneType[EPaneType["tabGroupPane"] = 4] = "tabGroupPane";
|
|
67
|
-
})(EPaneType || (EPaneType = {}));
|
|
68
|
-
|
|
69
|
-
class BsSplitPane extends BsDockPane {
|
|
69
|
+
class BsContentPane extends BsDockPane {
|
|
70
70
|
constructor(data) {
|
|
71
71
|
super();
|
|
72
|
-
this.orientation = 'horizontal';
|
|
73
|
-
this.panes = [];
|
|
74
72
|
Object.assign(this, data);
|
|
75
73
|
}
|
|
74
|
+
get isEmpty() {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
class
|
|
79
|
+
class BsFloatingPane extends BsDockPane {
|
|
79
80
|
constructor(data) {
|
|
80
81
|
super();
|
|
81
82
|
Object.assign(this, data);
|
|
82
83
|
}
|
|
84
|
+
get isEmpty() {
|
|
85
|
+
var _a, _b;
|
|
86
|
+
return (_b = (_a = this.pane) === null || _a === void 0 ? void 0 : _a.isEmpty) !== null && _b !== void 0 ? _b : true;
|
|
87
|
+
}
|
|
83
88
|
}
|
|
84
89
|
|
|
85
|
-
class
|
|
90
|
+
class BsSplitPane extends BsDockPane {
|
|
86
91
|
constructor(data) {
|
|
92
|
+
super();
|
|
93
|
+
this.orientation = 'horizontal';
|
|
94
|
+
this.panes = [];
|
|
87
95
|
Object.assign(this, data);
|
|
88
96
|
}
|
|
97
|
+
get isEmpty() {
|
|
98
|
+
return this.panes.length === 0;
|
|
99
|
+
}
|
|
89
100
|
}
|
|
90
101
|
|
|
102
|
+
var EPaneType;
|
|
103
|
+
(function (EPaneType) {
|
|
104
|
+
EPaneType[EPaneType["documentHost"] = 1] = "documentHost";
|
|
105
|
+
EPaneType[EPaneType["splitPane"] = 2] = "splitPane";
|
|
106
|
+
EPaneType[EPaneType["contentPane"] = 3] = "contentPane";
|
|
107
|
+
EPaneType[EPaneType["tabGroupPane"] = 4] = "tabGroupPane";
|
|
108
|
+
})(EPaneType || (EPaneType = {}));
|
|
109
|
+
|
|
91
110
|
class BsDockPaneRendererComponent {
|
|
92
111
|
constructor(overlay, element) {
|
|
93
112
|
this.overlay = overlay;
|
|
@@ -154,6 +173,10 @@ class BsDockComponent {
|
|
|
154
173
|
.subscribe((floating) => {
|
|
155
174
|
floating.forEach((panel) => panel.moveToOverlay());
|
|
156
175
|
});
|
|
176
|
+
this.parentifiedLayout$ = this.layout$.pipe(map(layout => deepClone(layout, true,
|
|
177
|
+
// []
|
|
178
|
+
[BsContentPane, BsDocumentHost, BsFloatingPane, BsSplitPane, BsTabGroupPane], true)));
|
|
179
|
+
this.parentifiedLayout$.pipe(takeUntil(this.destroyed$)).subscribe(console.log);
|
|
157
180
|
}
|
|
158
181
|
set panels(value) {
|
|
159
182
|
this.panels$.next(value.toArray());
|
|
@@ -202,13 +225,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
202
225
|
args: ['style.right']
|
|
203
226
|
}] } });
|
|
204
227
|
|
|
228
|
+
class BsDockService {
|
|
229
|
+
buildTraces(layout) {
|
|
230
|
+
const result = [layout.rootPane, ...layout.floatingPanes].map(pane => this.buildTracesPrivate([pane]));
|
|
231
|
+
// const result = this.buildTracesPrivate([layout.rootPane]);
|
|
232
|
+
return result.flatMap(traceGroup => traceGroup);
|
|
233
|
+
}
|
|
234
|
+
buildTracesPrivate(currentSequence) {
|
|
235
|
+
const children = this.getChildPanes(currentSequence[currentSequence.length - 1]);
|
|
236
|
+
if (children.length === 0) {
|
|
237
|
+
return [{
|
|
238
|
+
finished: true,
|
|
239
|
+
trace: currentSequence
|
|
240
|
+
}];
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
const result = children.map(child => this.buildTracesPrivate([...currentSequence, child]));
|
|
244
|
+
return result.flatMap(r => r);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
getChildPanes(pane) {
|
|
248
|
+
if (pane instanceof BsContentPane) {
|
|
249
|
+
return [];
|
|
250
|
+
}
|
|
251
|
+
else if (pane instanceof BsTabGroupPane) {
|
|
252
|
+
return pane.panes;
|
|
253
|
+
}
|
|
254
|
+
else if (pane instanceof BsSplitPane) {
|
|
255
|
+
return pane.panes;
|
|
256
|
+
}
|
|
257
|
+
else if (pane instanceof BsFloatingPane) {
|
|
258
|
+
return pane.pane ? [pane.pane] : [];
|
|
259
|
+
}
|
|
260
|
+
else if (pane instanceof BsDocumentHost) {
|
|
261
|
+
return pane.rootPane ? [pane.rootPane] : [];
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
return [];
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
BsDockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
269
|
+
BsDockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockService, providedIn: 'root' });
|
|
270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockService, decorators: [{
|
|
271
|
+
type: Injectable,
|
|
272
|
+
args: [{
|
|
273
|
+
providedIn: 'root'
|
|
274
|
+
}]
|
|
275
|
+
}] });
|
|
276
|
+
|
|
205
277
|
class BsDockPanelHeaderComponent {
|
|
206
|
-
constructor(dockPanel, dock, element) {
|
|
278
|
+
constructor(dockPanel, dock, dockService, element) {
|
|
207
279
|
this.dockPanel = dockPanel;
|
|
208
280
|
this.dock = dock;
|
|
281
|
+
this.dockService = dockService;
|
|
209
282
|
this.element = element;
|
|
210
283
|
this.isMouseDown = false;
|
|
211
|
-
this.
|
|
284
|
+
this.isDragging = false;
|
|
212
285
|
this.dBlock = true;
|
|
213
286
|
}
|
|
214
287
|
onMouseDown(ev) {
|
|
@@ -217,131 +290,234 @@ class BsDockPanelHeaderComponent {
|
|
|
217
290
|
}
|
|
218
291
|
onMouseMove(ev) {
|
|
219
292
|
if (this.isMouseDown) {
|
|
220
|
-
if (!this.
|
|
221
|
-
this.
|
|
222
|
-
this.dock.
|
|
293
|
+
if (!this.isDragging) {
|
|
294
|
+
this.isDragging = true;
|
|
295
|
+
this.dock.parentifiedLayout$.pipe(take(1)).subscribe((layout) => {
|
|
223
296
|
var _a, _b, _c, _d;
|
|
224
|
-
|
|
225
|
-
|
|
297
|
+
// this.dock.layout$.pipe(take(1)).subscribe((layout) => {
|
|
298
|
+
const traces = this.dockService.buildTraces(layout);
|
|
299
|
+
console.log('traces', { layout, traces });
|
|
300
|
+
const matching = traces.filter(t => {
|
|
301
|
+
const lastPane = t.trace[t.trace.length - 1];
|
|
302
|
+
// return (lastPane instanceof BsContentPane) && (lastPane.dockPanel === this.dockPanel);
|
|
303
|
+
return (lastPane instanceof BsContentPane) && (lastPane.dockPanel === this.dockPanel);
|
|
304
|
+
});
|
|
305
|
+
console.log('matching', matching);
|
|
306
|
+
if (matching.length !== 1) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
// const tabs = matching[0].trace.filter(pane => pane instanceof BsTabGroupPane);
|
|
310
|
+
// const lastTabGroup = tabs[tabs.length - 1];
|
|
311
|
+
// // console.log('last tabgroup', lastTabGroup);
|
|
312
|
+
let tabControlEl = this.element.nativeElement;
|
|
226
313
|
do {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
314
|
+
if (tabControlEl.parentElement) {
|
|
315
|
+
tabControlEl = tabControlEl.parentElement;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
throw 'No more parents';
|
|
319
|
+
}
|
|
320
|
+
} while (tabControlEl.tagName.toUpperCase() !== 'BS-TAB-CONTROL');
|
|
321
|
+
const coords = {
|
|
322
|
+
width: tabControlEl.clientWidth,
|
|
323
|
+
height: tabControlEl.clientHeight,
|
|
324
|
+
left: ev.clientX - ev.offsetX,
|
|
325
|
+
top: ev.clientY - ev.offsetY,
|
|
326
|
+
};
|
|
327
|
+
// this.dockPanel.headerPortal?.isAttached && this.dockPanel.headerPortal?.detach();
|
|
328
|
+
// this.dockPanel.contentPortal?.isAttached && this.dockPanel.contentPortal?.detach();
|
|
329
|
+
// this.removeFromPane(layout.rootPane, this.dockPanel);
|
|
330
|
+
const trace = [...matching[0].trace];
|
|
331
|
+
((_a = this.dockPanel.headerPortal) === null || _a === void 0 ? void 0 : _a.isAttached) && ((_b = this.dockPanel.headerPortal) === null || _b === void 0 ? void 0 : _b.detach());
|
|
332
|
+
((_c = this.dockPanel.contentPortal) === null || _c === void 0 ? void 0 : _c.isAttached) && ((_d = this.dockPanel.contentPortal) === null || _d === void 0 ? void 0 : _d.detach());
|
|
333
|
+
for (let index = trace.length - 1; index >= 0; index--) {
|
|
334
|
+
if (index > 0) {
|
|
335
|
+
this.removeFromPaneBis(trace[index - 1], trace[index]);
|
|
336
|
+
if (!trace[index - 1].isEmpty)
|
|
337
|
+
break;
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
const floatingIndex = layout.floatingPanes.indexOf(trace[0]);
|
|
341
|
+
if (trace[0].isEmpty && (floatingIndex > -1)) {
|
|
342
|
+
layout.floatingPanes.splice(floatingIndex, 1);
|
|
256
343
|
}
|
|
257
|
-
}
|
|
258
|
-
this.dragOperation = {
|
|
259
|
-
offsetX: ev.offsetX,
|
|
260
|
-
offsetY: ev.offsetY,
|
|
261
|
-
floatingPane
|
|
262
|
-
};
|
|
263
|
-
layout.floatingPanes.push(floatingPane);
|
|
264
|
-
this.dock.layout$.next(layout);
|
|
344
|
+
}
|
|
265
345
|
}
|
|
346
|
+
// this.removeFromPane((<any>matching[0].trace[0])['$original'], this.dockPanel);
|
|
347
|
+
const floatingPane = new BsFloatingPane({
|
|
348
|
+
pane: new BsTabGroupPane({
|
|
349
|
+
panes: [
|
|
350
|
+
new BsContentPane({
|
|
351
|
+
dockPanel: this.dockPanel
|
|
352
|
+
})
|
|
353
|
+
]
|
|
354
|
+
}),
|
|
355
|
+
size: {
|
|
356
|
+
width: coords.width,
|
|
357
|
+
height: coords.height,
|
|
358
|
+
},
|
|
359
|
+
location: {
|
|
360
|
+
x: coords.left,
|
|
361
|
+
y: coords.top,
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
this.dragOperation = {
|
|
365
|
+
offsetX: ev.offsetX,
|
|
366
|
+
offsetY: ev.offsetY,
|
|
367
|
+
floatingPane
|
|
368
|
+
};
|
|
369
|
+
layout.floatingPanes.push(floatingPane);
|
|
370
|
+
setTimeout(() => this.dock.layout$.next(layout), 5);
|
|
371
|
+
// console.log('traces', { traces, matching, dockPanel: this.dockPanel, equals: traces[2].trace[3] });
|
|
372
|
+
// let element: HTMLElement | null = this.element.nativeElement;
|
|
373
|
+
// let tree: HTMLElement[] = [];
|
|
374
|
+
// do {
|
|
375
|
+
// tree.push(element!);
|
|
376
|
+
// element = element!.parentElement;
|
|
377
|
+
// } while (element);
|
|
378
|
+
// const tabControls = tree.filter(el => el.tagName.toUpperCase() === 'BS-TAB-CONTROL');
|
|
379
|
+
// if (tabControls.length > 0) {
|
|
380
|
+
// const coords = {
|
|
381
|
+
// width: tabControls[0].clientWidth,
|
|
382
|
+
// height: tabControls[0].clientHeight,
|
|
383
|
+
// left: ev.clientX - ev.offsetX,
|
|
384
|
+
// top: ev.clientY - ev.offsetY,
|
|
385
|
+
// };
|
|
386
|
+
// this.dockPanel.headerPortal?.isAttached && this.dockPanel.headerPortal?.detach();
|
|
387
|
+
// this.dockPanel.contentPortal?.isAttached && this.dockPanel.contentPortal?.detach();
|
|
388
|
+
// this.removeFromPane(layout.rootPane, this.dockPanel);
|
|
389
|
+
// const floatingPane = new BsFloatingPane({
|
|
390
|
+
// pane: new BsTabGroupPane({
|
|
391
|
+
// panes: [
|
|
392
|
+
// new BsContentPane({
|
|
393
|
+
// dockPanel: this.dockPanel
|
|
394
|
+
// })
|
|
395
|
+
// ]
|
|
396
|
+
// }),
|
|
397
|
+
// size: {
|
|
398
|
+
// width: coords.width,
|
|
399
|
+
// height: coords.height,
|
|
400
|
+
// },
|
|
401
|
+
// location: {
|
|
402
|
+
// x: coords.left,
|
|
403
|
+
// y: coords.top,
|
|
404
|
+
// }
|
|
405
|
+
// });
|
|
406
|
+
// this.dragOperation = {
|
|
407
|
+
// offsetX: ev.offsetX,
|
|
408
|
+
// offsetY: ev.offsetY,
|
|
409
|
+
// floatingPane
|
|
410
|
+
// };
|
|
411
|
+
// layout.floatingPanes.push(floatingPane);
|
|
412
|
+
// this.dock.layout$.next(layout);
|
|
413
|
+
// }
|
|
266
414
|
});
|
|
267
415
|
}
|
|
268
|
-
else
|
|
269
|
-
if (this.dragOperation
|
|
270
|
-
this.dragOperation.floatingPane.location
|
|
271
|
-
|
|
416
|
+
else {
|
|
417
|
+
if (this.dragOperation) {
|
|
418
|
+
if (this.dragOperation.floatingPane.location) {
|
|
419
|
+
this.dragOperation.floatingPane.location.x = ev.clientX - this.dragOperation.offsetX;
|
|
420
|
+
this.dragOperation.floatingPane.location.y = ev.clientY - this.dragOperation.offsetY;
|
|
421
|
+
}
|
|
422
|
+
// } else {
|
|
423
|
+
// const traces = this.dockService.buildTraces(this.dock.layout);
|
|
424
|
+
// const matchingTrace = traces.filter(trace => {
|
|
425
|
+
// const pane = trace.trace[trace.trace.length - 1];
|
|
426
|
+
// return (pane instanceof BsContentPane) && (pane.dockPanel === this.dockPanel);
|
|
427
|
+
// });
|
|
428
|
+
// console.log('matching', { traces, matchingTrace });
|
|
429
|
+
// // this.dragOperation = {
|
|
430
|
+
// // }
|
|
272
431
|
}
|
|
273
432
|
}
|
|
274
433
|
}
|
|
275
434
|
}
|
|
276
|
-
|
|
435
|
+
removeFromPaneBis(host, pane) {
|
|
277
436
|
if (host instanceof BsContentPane) {
|
|
278
|
-
return { paneRemoved: false, hostIsEmpty: false };
|
|
279
437
|
}
|
|
280
438
|
else if (host instanceof BsDocumentHost) {
|
|
281
439
|
// Actually documentHost should never be removed
|
|
282
|
-
if (!host.rootPane) {
|
|
283
|
-
return { paneRemoved: false, hostIsEmpty: true };
|
|
284
|
-
}
|
|
285
|
-
const result = this.removeFromPane(host.rootPane, panel);
|
|
286
|
-
return { paneRemoved: result.paneRemoved, hostIsEmpty: result.hostIsEmpty };
|
|
287
440
|
}
|
|
288
441
|
else if (host instanceof BsTabGroupPane) {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
host.panes.splice(
|
|
292
|
-
return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
// ATM. all panes are ContentPanes anyway.
|
|
296
|
-
// So unless you'd want to have splitters inside the tabs,
|
|
297
|
-
// This code will not be hit.
|
|
298
|
-
// const result = host.panes
|
|
299
|
-
// .map(parentPane => this.removeFromPane(parentPane, panel))
|
|
300
|
-
// .filter(r => r.paneRemoved);
|
|
301
|
-
//
|
|
302
|
-
// if (result.length > 0) {
|
|
303
|
-
// return { paneRemoved: true, hostIsEmpty: }
|
|
304
|
-
// }
|
|
305
|
-
return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };
|
|
442
|
+
if (pane instanceof BsContentPane) {
|
|
443
|
+
const index = host.panes.indexOf(pane);
|
|
444
|
+
host.panes.splice(index, 1);
|
|
306
445
|
}
|
|
307
446
|
}
|
|
308
447
|
else if (host instanceof BsSplitPane) {
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
if (matching.length > 0) {
|
|
314
|
-
host.panes.splice(host.panes.findIndex(p => (p instanceof BsContentPane) && matching.includes(p)), 1);
|
|
315
|
-
// TODO: Remove splitter if only 1 pane left?
|
|
316
|
-
return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
for (let splitPane of host.panes) {
|
|
320
|
-
const result = this.removeFromPane(splitPane, panel);
|
|
321
|
-
if (result.paneRemoved && result.hostIsEmpty) {
|
|
322
|
-
// splitPane is empty now, so we can remove it from this splitter
|
|
323
|
-
host.panes.splice(host.panes.indexOf(splitPane), 1);
|
|
324
|
-
return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };
|
|
448
|
+
const index = host.panes.indexOf(pane);
|
|
449
|
+
host.panes.splice(index, 1);
|
|
450
|
+
}
|
|
451
|
+
else if (host instanceof BsFloatingPane) {
|
|
329
452
|
}
|
|
330
453
|
else {
|
|
331
|
-
throw '
|
|
454
|
+
throw 'Unknown pane type';
|
|
332
455
|
}
|
|
333
456
|
}
|
|
457
|
+
// removeFromPane(host: BsDockPane, panel: BsDockPanelComponent /*, parents: BsDockPane[] */): RemoveFromPaneResult {
|
|
458
|
+
// if (host instanceof BsContentPane) {
|
|
459
|
+
// return { paneRemoved: false, hostIsEmpty: false };
|
|
460
|
+
// } else if (host instanceof BsDocumentHost) {
|
|
461
|
+
// // Actually documentHost should never be removed
|
|
462
|
+
// if (!host.rootPane) {
|
|
463
|
+
// return { paneRemoved: false, hostIsEmpty: true };
|
|
464
|
+
// }
|
|
465
|
+
// const result = this.removeFromPane(host.rootPane, panel);
|
|
466
|
+
// return { paneRemoved: result.paneRemoved, hostIsEmpty: result.hostIsEmpty };
|
|
467
|
+
// } else if (host instanceof BsTabGroupPane) {
|
|
468
|
+
// const matching = host.panes.filter(p => p.dockPanel === panel);
|
|
469
|
+
// if (matching.length > 0) {
|
|
470
|
+
// host.panes.splice(host.panes.findIndex(p => p.dockPanel === panel), 1);
|
|
471
|
+
// return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
|
|
472
|
+
// } else {
|
|
473
|
+
// // ATM. all panes are ContentPanes anyway.
|
|
474
|
+
// // So unless you'd want to have splitters inside the tabs,
|
|
475
|
+
// // This code will not be hit.
|
|
476
|
+
// // const result = host.panes
|
|
477
|
+
// // .map(parentPane => this.removeFromPane(parentPane, panel))
|
|
478
|
+
// // .filter(r => r.paneRemoved);
|
|
479
|
+
// //
|
|
480
|
+
// // if (result.length > 0) {
|
|
481
|
+
// // return { paneRemoved: true, hostIsEmpty: }
|
|
482
|
+
// // }
|
|
483
|
+
// return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };
|
|
484
|
+
// }
|
|
485
|
+
// } else if (host instanceof BsSplitPane) {
|
|
486
|
+
// const matching = host.panes
|
|
487
|
+
// .filter(p => p instanceof BsContentPane)
|
|
488
|
+
// .map(p => <BsContentPane>p)
|
|
489
|
+
// .filter(p => p.dockPanel === panel);
|
|
490
|
+
// if (matching.length > 0) {
|
|
491
|
+
// host.panes.splice(host.panes.findIndex(p => (p instanceof BsContentPane) && matching.includes(p)), 1);
|
|
492
|
+
// // TODO: Remove splitter if only 1 pane left?
|
|
493
|
+
// return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
|
|
494
|
+
// } else {
|
|
495
|
+
// for (let splitPane of host.panes) {
|
|
496
|
+
// const result = this.removeFromPane(splitPane, panel);
|
|
497
|
+
// if (result.paneRemoved && result.hostIsEmpty) {
|
|
498
|
+
// // splitPane is empty now, so we can remove it from this splitter
|
|
499
|
+
// host.panes.splice(host.panes.indexOf(splitPane), 1);
|
|
500
|
+
// return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
|
|
501
|
+
// }
|
|
502
|
+
// }
|
|
503
|
+
// }
|
|
504
|
+
// return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };
|
|
505
|
+
// } else {
|
|
506
|
+
// throw 'unknown host type';
|
|
507
|
+
// }
|
|
508
|
+
// }
|
|
334
509
|
onMouseUp(ev) {
|
|
335
510
|
this.isMouseDown = false;
|
|
511
|
+
this.isDragging = false;
|
|
336
512
|
this.dragOperation = undefined;
|
|
337
513
|
}
|
|
338
514
|
}
|
|
339
|
-
BsDockPanelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, deps: [{ token: BsDockPanelComponent }, { token: BsDockComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
515
|
+
BsDockPanelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, deps: [{ token: BsDockPanelComponent }, { token: BsDockComponent }, { token: BsDockService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
340
516
|
BsDockPanelHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockPanelHeaderComponent, selector: "bs-dock-panel-header", host: { listeners: { "mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)" }, properties: { "class.d-block": "this.dBlock" } }, ngImport: i0, template: "<ng-content></ng-content>", styles: [":host{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] });
|
|
341
517
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, decorators: [{
|
|
342
518
|
type: Component,
|
|
343
519
|
args: [{ selector: 'bs-dock-panel-header', template: "<ng-content></ng-content>", styles: [":host{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] }]
|
|
344
|
-
}], ctorParameters: function () { return [{ type: BsDockPanelComponent }, { type: BsDockComponent }, { type: i0.ElementRef }]; }, propDecorators: { onMouseDown: [{
|
|
520
|
+
}], ctorParameters: function () { return [{ type: BsDockPanelComponent }, { type: BsDockComponent }, { type: BsDockService }, { type: i0.ElementRef }]; }, propDecorators: { onMouseDown: [{
|
|
345
521
|
type: HostListener,
|
|
346
522
|
args: ['mousedown', ['$event']]
|
|
347
523
|
}], onMouseMove: [{
|
|
@@ -409,5 +585,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
409
585
|
* Generated bundle index. Do not edit.
|
|
410
586
|
*/
|
|
411
587
|
|
|
412
|
-
export { BsContentPane, BsDockComponent, BsDockModule, BsDockPane, BsDockPaneRendererComponent, BsDockPanelComponent, BsDockPanelHeaderComponent, BsDocumentHost, BsFloatingPane, BsSplitPane, BsTabGroupPane, EPaneType };
|
|
588
|
+
export { BsContentPane, BsDockComponent, BsDockModule, BsDockPane, BsDockPaneRendererComponent, BsDockPanelComponent, BsDockPanelHeaderComponent, BsDockService, BsDocumentHost, BsFloatingPane, BsSplitPane, BsTabGroupPane, EPaneType };
|
|
413
589
|
//# sourceMappingURL=mintplayer-ng-bootstrap-dock.mjs.map
|