@fundamental-ngx/core 0.48.0-rc.13 → 0.48.0-rc.14
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/esm2022/splitter/splitter-pane-container/splitter-pane-container.component.mjs +6 -1
- package/esm2022/splitter/splitter-split-pane/splitter-split-pane.component.mjs +10 -3
- package/fesm2022/fundamental-ngx-core-splitter.mjs +14 -2
- package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fundamental-ngx-core-v0.48.0-rc.14.tgz +0 -0
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +2 -2
- package/splitter/splitter-split-pane/splitter-split-pane.component.d.ts +3 -1
- package/fundamental-ngx-core-v0.48.0-rc.13.tgz +0 -0
|
@@ -233,6 +233,11 @@ export class SplitterPaneContainerComponent {
|
|
|
233
233
|
setDirectPanesSubscription();
|
|
234
234
|
this._resizePanesToFitInContainer(true);
|
|
235
235
|
}));
|
|
236
|
+
this._panes.forEach((pane) => {
|
|
237
|
+
this._subscription$.add(pane.sizeChange.subscribe(() => {
|
|
238
|
+
this._resizePanesToFitInContainer(true);
|
|
239
|
+
}));
|
|
240
|
+
});
|
|
236
241
|
this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));
|
|
237
242
|
}
|
|
238
243
|
/** @hidden */
|
|
@@ -352,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
352
357
|
standalone: true
|
|
353
358
|
}]
|
|
354
359
|
}], ctorParameters: () => [{ type: SplitterPaneContainerComponent }] });
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NwbGl0dGVyL3NwbGl0dGVyLXBhbmUtY29udGFpbmVyL3NwbGl0dGVyLXBhbmUtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcGxpdHRlci9zcGxpdHRlci1wYW5lLWNvbnRhaW5lci9zcGxpdHRlci1wYW5lLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEVBQ1QsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdE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LENBQUM7SUFDNUYsQ0FBQzs4R0FYUSxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBBTkVfQVVUT19TSVpFLCBQQU5FX05PTkVfU0laRSwgUkVTSVpFUl9TSVpFX1BYLCBST09UX1BBR0UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3BsaXR0ZXJQYW5lUmVzaXplRXZlbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NwbGl0dGVyLXBhbmUtcmVzaXplLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcGxpdHRlclBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9zcGxpdHRlci1wYWdpbmF0aW9uL3NwbGl0dGVyLXBhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNwbGl0dGVyUmVzaXplckNvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0dGVyLXJlc2l6ZXIvc3BsaXR0ZXItcmVzaXplci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQgfSBmcm9tICcuLi9zcGxpdHRlci1zcGxpdC1wYW5lL3NwbGl0dGVyLXNwbGl0LXBhbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFNwbGl0dGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BsaXR0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24sXG4gICAgU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb25UeXBlXG59IGZyb20gJy4vc3BsaXR0ZXItcGFuZS1vcmllbnRhdGlvbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zcGxpdHRlci1wYW5lLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0dGVyLXBhbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1zcGxpdHRlcl9fcGFuZS1jb250YWluZXInLFxuICAgICAgICAnW2NsYXNzLmZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lci0taG9yaXpvbnRhbF0nOiAnIV9pc1Jvb3RDb250YWluZXIgJiYgX2lzSG9yaXpvbnRhbCcsXG4gICAgICAgICdbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS12ZXJ0aWNhbF0nOiAnX2lzUm9vdENvbnRhaW5lciB8fCBfaXNWZXJ0aWNhbCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBTcGxpdHRlclBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgU3BsaXR0ZXJSZXNpemVyQ29tcG9uZW50LFxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IE5vRGVmYXVsdFBhbmVQaXBlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJQYW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogUGFuZSB0eXBlIC0gdmVydGljYWwgKGRlZmF1bHQpIG9yIGhvcml6b250YWwuICovXG4gICAgQElucHV0KClcbiAgICBvcmllbnRhdGlvbjogU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb25UeXBlID0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWw7XG5cbiAgICAvKipcbiAgICAgKiBTdHlsZSBvZiB0aGUgcmVzaXplci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlc2l6ZXJUeXBlOiAnZGVmYXVsdCcgfCAndHJhbnNwYXJlbnQnIHwgJ3RyYW5zbHVjZW50JyA9ICdkZWZhdWx0JztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIGFmdGVyIGNvbnRhaW5lcidzIHBhbmVzIGhhcyByZXNpemVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIHJlYWRvbmx5IHJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJQYW5lUmVzaXplRXZlbnRbXT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9wYW5lczogUXVlcnlMaXN0PFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudClcbiAgICBfZGlyZWN0UGFuZXM6IFF1ZXJ5TGlzdDxTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZWZhdWx0UGFuZTogTnVsbGFibGU8U3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcGFnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jdXJyZW50UGFnZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYW5lU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3dhbnRlZFBhbmVzU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxQYW5lU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RpcmVjdFBhbmVTdWJzY3JpcHRpb24kID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb24kID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzSG9yaXpvbnRhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09IFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uLmhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uID09PSBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbi52ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNSb290Q29udGFpbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuX3BhcmVudFNwbGl0dGVyUGFuZUNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfcGFuZXNPbkNhbnZhcygpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcmVjdFBhbmVzLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pc09uQ2FudmFzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfYWN0aXZlUGFuZXMoKTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnRbXSB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50UGFnZSA9PT0gUk9PVF9QQUdFKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFuZXNPbkNhbnZhcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9wYW5lcy5maWx0ZXIoKHBhbmUpID0+IHBhbmUuaWQgPT09IHRoaXMuX2N1cnJlbnRQYWdlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZSgpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgY29uc3QgcGFuZXMgPSB0aGlzLl9kaXJlY3RQYW5lcy5maWx0ZXIoKHBhbmUpID0+IHBhbmUuaWQgIT09IHRoaXMuX2RlZmF1bHRQYW5lPy5pZCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RlZmF1bHRQYW5lKSB7XG4gICAgICAgICAgICBwYW5lcy51bnNoaWZ0KHRoaXMuX2RlZmF1bHRQYW5lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYW5lcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9pc1J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3NwbGl0dGVyOiBTcGxpdHRlckNvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50U3BsaXR0ZXJQYW5lQ29udGFpbmVyOiBTcGxpdHRlclBhbmVDb250YWluZXJDb21wb25lbnRcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzUm9vdENvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5fc2V0RGVmYXVsdFBhbmUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBhZ2VzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX3BhbmVzLmZvckVhY2goKHBhbmUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24kLmFkZChwYW5lLnRvZ2dsZU9uQ2FudmFzLnN1YnNjcmliZSgoKSA9PiB0aGlzLl91cGRhdGVQYWdlcygpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRQYW5lcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RpcmVjdFBhbmVTdWJzY3JpcHRpb24kLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9nZXRQYW5lU3R5bGVzKHBhbmU6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50KTogeyBba2xhc3M6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICAgICAgICAnbWluLXdpZHRoJzogUEFORV9BVVRPX1NJWkUsXG4gICAgICAgICAgICAnbWF4LXdpZHRoJzogUEFORV9OT05FX1NJWkUsXG4gICAgICAgICAgICAnbWluLWhlaWdodCc6IFBBTkVfQVVUT19TSVpFLFxuICAgICAgICAgICAgJ21heC1oZWlnaHQnOiBQQU5FX05PTkVfU0laRVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLl9pc1ZlcnRpY2FsICYmIHBhbmUuaXNPbkNhbnZhcyAmJiBwYW5lLl9hY3R1YWxTaXplICE9PSBQQU5FX0FVVE9fU0laRSkge1xuICAgICAgICAgICAgc3R5bGVbJ21pbi13aWR0aCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgICAgIHN0eWxlWydtYXgtd2lkdGgnXSA9IHBhbmUuX2FjdHVhbFNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faXNIb3Jpem9udGFsICYmIHBhbmUuaXNPbkNhbnZhcyAmJiBwYW5lLl9hY3R1YWxTaXplICE9PSBQQU5FX0FVVE9fU0laRSkge1xuICAgICAgICAgICAgc3R5bGVbJ21pbi1oZWlnaHQnXSA9IHBhbmUuX2FjdHVhbFNpemU7XG4gICAgICAgICAgICBzdHlsZVsnbWF4LWhlaWdodCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zdGFydFJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGFuZVNpemVzID0gW107XG4gICAgICAgIHRoaXMuX2luaXRpYWxQYW5lU2l6ZXMgPSBbXTtcblxuICAgICAgICB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZS5mb3JFYWNoKChwYW5lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYW5lU2l6ZSA9IHRoaXMuX2dldFBhbmVFbGVtZW50U2l6ZVB4KHBhbmUuaWQpO1xuXG4gICAgICAgICAgICB0aGlzLl9wYW5lU2l6ZXMucHVzaChwYW5lU2l6ZSk7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsUGFuZVNpemVzLnB1c2gocGFuZVNpemUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9lbmRSZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRQYW5lU2l6ZXM6IFNwbGl0dGVyUGFuZVJlc2l6ZUV2ZW50W10gPSBbXTtcblxuICAgICAgICB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZS5mb3JFYWNoKChwYW5lLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BhbmVTaXplc1tpbmRleF0gIT09IHRoaXMuX2luaXRpYWxQYW5lU2l6ZXNbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlZFBhbmVTaXplcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgcGFuZUlkOiBwYW5lLmlkLFxuICAgICAgICAgICAgICAgICAgICBvbGRTaXplOiB0aGlzLl9pbml0aWFsUGFuZVNpemVzW2luZGV4XSArICdweCcsXG4gICAgICAgICAgICAgICAgICAgIG5ld1NpemU6IHRoaXMuX3BhbmVTaXplc1tpbmRleF0gKyAncHgnXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVzaXplLmVtaXQoY2hhbmdlZFBhbmVTaXplcyk7XG5cbiAgICAgICAgdGhpcy5fcmVzaXplUGFuZXNUb0ZpdEluQ29udGFpbmVyKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUmVzaXplKHBhbmVJZDogc3RyaW5nLCBkaWZmOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpZmYgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpZmYgKj0gdGhpcy5faXNSdGwgJiYgdGhpcy5vcmllbnRhdGlvbiA9PT0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWwgPyAtMSA6IDE7XG5cbiAgICAgICAgY29uc3QgcmVzaXplZFBhbmVJbmRleCA9XG4gICAgICAgICAgICB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZS5maW5kSW5kZXgoKHBhbmUpID0+IHBhbmUuaWQgPT09IHBhbmVJZCkgKyAoZGlmZiA8IDAgPyAxIDogMCk7XG4gICAgICAgIGNvbnN0IHJlc2l6ZWRQYW5lID0gdGhpcy5fcGFuZXNJblJpZ2h0T3JkZXJGb3JSZXNpemVbcmVzaXplZFBhbmVJbmRleF07XG5cbiAgICAgICAgbGV0IHNpYmxpbmdQYW5lSW5kZXggPSByZXNpemVkUGFuZUluZGV4O1xuICAgICAgICBsZXQgc2libGluZ1BhbmU7XG4gICAgICAgIGxldCBzaWJsaW5nUGFuZVNpemU7XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgc2libGluZ1BhbmVJbmRleCArPSBkaWZmIDwgMCA/IC0xIDogMTtcbiAgICAgICAgICAgIHNpYmxpbmdQYW5lID0gdGhpcy5fcGFuZXNJblJpZ2h0T3JkZXJGb3JSZXNpemVbc2libGluZ1BhbmVJbmRleF07XG4gICAgICAgICAgICBzaWJsaW5nUGFuZVNpemUgPSB0aGlzLl9wYW5lU2l6ZXNbc2libGluZ1BhbmVJbmRleF07XG5cbiAgICAgICAgICAgIGlmICghc2libGluZ1BhbmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKCFzaWJsaW5nUGFuZVNpemUpO1xuXG4gICAgICAgIGNvbnN0IHJlc2l6ZWRQYW5lTmV3U2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tyZXNpemVkUGFuZUluZGV4XSArIGRpZmYgKiAoZGlmZiA8IDAgPyAtMSA6IDEpO1xuICAgICAgICBjb25zdCBzaWJsaW5nUGFuZU5ld1NpemUgPSB0aGlzLl9wYW5lU2l6ZXNbc2libGluZ1BhbmVJbmRleF0gKyBkaWZmICogKGRpZmYgPCAwID8gMSA6IC0xKTtcblxuICAgICAgICAvKiogUHJldmVudCBmcm9tIHNldHRpbmcgbmVnYXRpdmUgc2l6ZSAqL1xuICAgICAgICBpZiAocmVzaXplZFBhbmVOZXdTaXplIDwgMCB8fCBzaWJsaW5nUGFuZU5ld1NpemUgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9wYW5lU2l6ZXNbcmVzaXplZFBhbmVJbmRleF0gPSByZXNpemVkUGFuZU5ld1NpemU7XG4gICAgICAgIHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XSA9IHNpYmxpbmdQYW5lTmV3U2l6ZTtcblxuICAgICAgICByZXNpemVkUGFuZS5zaXplID0gdGhpcy5fcGFuZVNpemVzW3Jlc2l6ZWRQYW5lSW5kZXhdICsgJ3B4JztcbiAgICAgICAgc2libGluZ1BhbmUuc2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XSArICdweCc7XG5cbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUGFnZUNoYW5nZShwYWdlOiBzdHJpbmcgPSBST09UX1BBR0UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudFBhZ2UgPSBwYWdlO1xuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVQYWdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGFnZXMgPSBbXTtcblxuICAgICAgICBjb25zdCBvZmZDYW52YXNEZW1hbmRQYWdlcyA9IHRoaXMuX3BhbmVzXG4gICAgICAgICAgICAuZmlsdGVyKChwYW5lKSA9PiAhcGFuZS5pc09uQ2FudmFzICYmIHBhbmUuZGVtYW5kUGFuZSlcbiAgICAgICAgICAgIC5tYXAoKHBhbmUpID0+IHBhbmUuaWQpO1xuICAgICAgICBsZXQgbmV3UGFnZSA9IFJPT1RfUEFHRTtcblxuICAgICAgICBpZiAob2ZmQ2FudmFzRGVtYW5kUGFnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9wYWdlcyA9IG9mZkNhbnZhc0RlbWFuZFBhZ2VzO1xuICAgICAgICAgICAgbmV3UGFnZSA9IG9mZkNhbnZhc0RlbWFuZFBhZ2VzWzBdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fcGFuZXNPbkNhbnZhcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGFnZXMudW5zaGlmdChST09UX1BBR0UpO1xuICAgICAgICAgICAgICAgIG5ld1BhZ2UgPSBST09UX1BBR0U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9wYW5lc09uQ2FudmFzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhZ2VzLnVuc2hpZnQodGhpcy5fcGFuZXNPbkNhbnZhc1swXS5pZCk7XG4gICAgICAgICAgICAgICAgbmV3UGFnZSA9IHRoaXMuX3BhbmVzT25DYW52YXNbMF0uaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZUV4aXN0ID0gdGhpcy5fcGFnZXMuaW5jbHVkZXModGhpcy5fY3VycmVudFBhZ2UpO1xuXG4gICAgICAgIGlmICghY3VycmVudFBhZ2VFeGlzdCkge1xuICAgICAgICAgICAgLyoqIERldGFjaGluZyBiYXNpY2FsbHkgd29ya3Mgd2l0aG91dCB0aGUgY29kZSBidXQgaXQncyB0aGUgZWRnZS1jYXNlICovXG4gICAgICAgICAgICBjb25zdCBpc1Nob3VsZERldGFjaERlZmF1bHRQYW5lID0gdGhpcy5fY3VycmVudFBhZ2UgPT09IHRoaXMuX2RlZmF1bHRQYW5lPy5pZCAmJiBuZXdQYWdlID09PSBST09UX1BBR0U7XG5cbiAgICAgICAgICAgIGlmIChpc1Nob3VsZERldGFjaERlZmF1bHRQYW5lICYmIHRoaXMuX2RlZmF1bHRQYW5lPy5fY29udGVudD8uaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRQYW5lLl9jb250ZW50LmRldGFjaCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9vblBhZ2VDaGFuZ2UobmV3UGFnZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRQYW5lcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzaXplUGFuZXNUb0ZpdEluQ29udGFpbmVyKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IHNldERpcmVjdFBhbmVzU3Vic2NyaXB0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2RpcmVjdFBhbmVTdWJzY3JpcHRpb24kID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLl9kaXJlY3RQYW5lcy5mb3JFYWNoKChwYW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQuYWRkKFxuICAgICAgICAgICAgICAgICAgICBwYW5lLnRvZ2dsZU9uQ2FudmFzLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIoKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHByZXZEaXJlY3RQYW5lcyA9IFsuLi50aGlzLl9kaXJlY3RQYW5lc107XG4gICAgICAgIGNvbnN0IGFyZURpcmVjdFBhbmVzU2FtZSA9IChwYW5lczogUXVlcnlMaXN0PFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgaWYgKHBhbmVzLmxlbmd0aCAhPT0gcHJldkRpcmVjdFBhbmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHByZXZEaXJlY3RQYW5lcy5ldmVyeSgocHJldlBhbmUpID0+ICEhcGFuZXMuZmluZCgocGFuZSkgPT4gcGFuZS5pZCA9PT0gcHJldlBhbmUuaWQpKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzZXREaXJlY3RQYW5lc1N1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQuYWRkKFxuICAgICAgICAgICAgdGhpcy5fcGFuZXMuY2hhbmdlcy5waXBlKGZpbHRlcigocGFuZXMpID0+ICFhcmVEaXJlY3RQYW5lc1NhbWUocGFuZXMpKSkuc3Vic2NyaWJlKChwYW5lc0xpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBwcmV2RGlyZWN0UGFuZXMgPSBwYW5lc0xpc3QudG9BcnJheSgpO1xuXG4gICAgICAgICAgICAgICAgc2V0RGlyZWN0UGFuZXNTdWJzY3JpcHRpb24oKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcih0cnVlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQodGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoMTApLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIoKSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0RGVmYXVsdFBhbmUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNldERlZmF1bHRQYW5lID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3NwbGl0dGVyLmRlZmF1bHRQYW5lSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWZhdWx0UGFuZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhbmVzLmZpbmQoKHBhbmUpID0+IHBhbmUuaWQgPT09IHRoaXMuX3NwbGl0dGVyLmRlZmF1bHRQYW5lSWQpID8/IHRoaXMuX2RpcmVjdFBhbmVzWzBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiogRGV0YWNoaW5nIGJhc2ljYWxseSB3b3JrcyB3aXRob3V0IHRoZSBjb2RlIGJ1dCBpdCdzIHRoZSBlZGdlLWNhc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9kZWZhdWx0UGFuZT8uX2NvbnRlbnQ/LmlzQXR0YWNoZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWZhdWx0UGFuZS5fY29udGVudC5kZXRhY2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzZXREZWZhdWx0UGFuZSgpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQuYWRkKFxuICAgICAgICAgICAgdGhpcy5fc3BsaXR0ZXIuX2RlZmF1bHRQYW5lSWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQYW5lKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGFnZXMoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIoc2V0SW5pdGlhbFNpemUgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoc2V0SW5pdGlhbFNpemUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJTaXplUHggPSB0aGlzLl9pc0hvcml6b250YWxcbiAgICAgICAgICAgID8gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuICAgICAgICAgICAgOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGxldCBhdmFpbGFibGVTcGFjZVB4ID0gY29udGFpbmVyU2l6ZVB4IC0gUkVTSVpFUl9TSVpFX1BYICogKHRoaXMuX2RpcmVjdFBhbmVzLmxlbmd0aCAtIDEpO1xuXG4gICAgICAgIHRoaXMuX2RpcmVjdFBhbmVzLmZvckVhY2goKHBhbmUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWF2YWlsYWJsZVNwYWNlUHgpIHtcbiAgICAgICAgICAgICAgICBwYW5lLl9hY3R1YWxTaXplID0gJzBweCc7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2V0SW5pdGlhbFNpemUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93YW50ZWRQYW5lc1NpemVzW2luZGV4XSA9IHRoaXMuX2dldFBhbmVFbGVtZW50U2l6ZVB4KHBhbmUuaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYW5lU2l6ZSA9IHRoaXMuX3dhbnRlZFBhbmVzU2l6ZXNbaW5kZXhdO1xuXG4gICAgICAgICAgICBpZiAoYXZhaWxhYmxlU3BhY2VQeCAtIHRoaXMuX3dhbnRlZFBhbmVzU2l6ZXNbaW5kZXhdIDwgMCkge1xuICAgICAgICAgICAgICAgIHBhbmUuX2FjdHVhbFNpemUgPSBhdmFpbGFibGVTcGFjZVB4ICsgJ3B4JztcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVTcGFjZVB4ID0gMDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhbmUuX2FjdHVhbFNpemUgPSBwYW5lLnNpemUgPT09IFBBTkVfQVVUT19TSVpFID8gUEFORV9BVVRPX1NJWkUgOiBwYW5lU2l6ZSArICdweCc7XG4gICAgICAgICAgICBhdmFpbGFibGVTcGFjZVB4IC09IHBhbmVTaXplO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UGFuZUVsZW1lbnRTaXplUHgocGFuZUlkOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwYW5lRWxlbWVudCA9IHRoaXMuX2dldFBhbmVFbGVtZW50KHBhbmVJZCk7XG5cbiAgICAgICAgaWYgKCFwYW5lRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5faXNIb3Jpem9udGFsID8gcGFuZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogcGFuZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRQYW5lRWxlbWVudChwYW5lSWQ6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHtwYW5lSWR9YCk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ25vRGVmYXVsdFBhbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTm9EZWZhdWx0UGFuZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3NwbGl0dGVyUGFuZUNvbnRhaW5lcjogU3BsaXR0ZXJQYW5lQ29udGFpbmVyQ29tcG9uZW50KSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0cmFuc2Zvcm0odmFsdWU6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10sIGV4Y2x1ZGluZ0NvbmRpdGlvbiA9IHRydWUpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgaWYgKCFleGNsdWRpbmdDb25kaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZS5maWx0ZXIoKHBhbmUpID0+IHBhbmUuaWQgIT09IHRoaXMuX3NwbGl0dGVyUGFuZUNvbnRhaW5lci5fZGVmYXVsdFBhbmU/LmlkKTtcbiAgICB9XG59XG4iLCJAaWYgKF9pc1Jvb3RDb250YWluZXIpIHtcbiAgICBAaWYgKF9kZWZhdWx0UGFuZT8uaXNPbkNhbnZhcyAmJiBfYWN0aXZlUGFuZXMubGVuZ3RoID4gMSkge1xuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBhbmVzVGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGFuZXM6IFtfZGVmYXVsdFBhbmVdLCBzaG93UmVzaXplcjogdHJ1ZSB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS1ob3Jpem9udGFsXT1cIiFfaXNSb290Q29udGFpbmVyICYmIF9pc0hvcml6b250YWxcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lci0tdmVydGljYWxdPVwiX2lzUm9vdENvbnRhaW5lciB8fCBfaXNWZXJ0aWNhbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBhbmVzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgIHBhbmVzOiBfYWN0aXZlUGFuZXMgfCBub0RlZmF1bHRQYW5lOiBfZGVmYXVsdFBhbmU/LmlzT25DYW52YXMgJiYgX2FjdGl2ZVBhbmVzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChfcGFnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZmQtc3BsaXR0ZXItcGFnaW5hdGlvblxuICAgICAgICAgICAgICAgIFtwYWdlc109XCJfcGFnZXNcIlxuICAgICAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJfY3VycmVudFBhZ2VcIlxuICAgICAgICAgICAgICAgIChvblBhZ2VDaGFuZ2UpPVwiX29uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZkLXNwbGl0dGVyLXBhZ2luYXRpb24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwYW5lc1RlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGFuZXM6IF9wYW5lc09uQ2FudmFzIH1cIj48L25nLXRlbXBsYXRlPlxufVxuPCEtLSBJREUgd29uJ3QgcmVjb2duaXplIHR5cGVzIHByb3Blcmx5IGJlbG93IC0tPlxuPG5nLXRlbXBsYXRlICNwYW5lc1RlbXBsYXRlIGxldC1wYW5lcz1cInBhbmVzXCIgbGV0LXNob3dSZXNpemVyPVwic2hvd1Jlc2l6ZXJcIj5cbiAgICBAZm9yIChwYW5lIG9mIHBhbmVzOyB0cmFjayBwYW5lOyBsZXQgbGFzdCA9ICRsYXN0KSB7XG4gICAgICAgIDxzZWN0aW9uIFtpZF09XCJwYW5lLmlkXCIgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiIFtzdHlsZV09XCJfZ2V0UGFuZVN0eWxlcyhwYW5lKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicGFuZS5fY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgQGlmICghbGFzdCB8fCBzaG93UmVzaXplcikge1xuICAgICAgICAgICAgPGZkLXNwbGl0dGVyLXJlc2l6ZXJcbiAgICAgICAgICAgICAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChzdGFydFJlc2l6ZSk9XCJfc3RhcnRSZXNpemUoKVwiXG4gICAgICAgICAgICAgICAgKGVuZFJlc2l6ZSk9XCJfZW5kUmVzaXplKClcIlxuICAgICAgICAgICAgICAgIChyZXNpemUpPVwiX29uUmVzaXplKHBhbmUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCInZmQtc3BsaXR0ZXJfX3Jlc2l6ZXItLScgKyByZXNpemVyVHlwZVwiXG4gICAgICAgICAgICA+PC9mZC1zcGxpdHRlci1yZXNpemVyPlxuICAgICAgICB9XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NwbGl0dGVyL3NwbGl0dGVyLXBhbmUtY29udGFpbmVyL3NwbGl0dGVyLXBhbmUtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcGxpdHRlci9zcGxpdHRlci1wYW5lLWNvbnRhaW5lci9zcGxpdHRlci1wYW5lLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEVBQ1QsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdE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dkYsY0FBYztJQUNkLFNBQVMsQ0FBQyxLQUFtQyxFQUFFLGtCQUFrQixHQUFHLElBQUk7UUFDcEUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQzs4R0FYUSxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBBTkVfQVVUT19TSVpFLCBQQU5FX05PTkVfU0laRSwgUkVTSVpFUl9TSVpFX1BYLCBST09UX1BBR0UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3BsaXR0ZXJQYW5lUmVzaXplRXZlbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NwbGl0dGVyLXBhbmUtcmVzaXplLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcGxpdHRlclBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9zcGxpdHRlci1wYWdpbmF0aW9uL3NwbGl0dGVyLXBhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNwbGl0dGVyUmVzaXplckNvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0dGVyLXJlc2l6ZXIvc3BsaXR0ZXItcmVzaXplci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQgfSBmcm9tICcuLi9zcGxpdHRlci1zcGxpdC1wYW5lL3NwbGl0dGVyLXNwbGl0LXBhbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFNwbGl0dGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BsaXR0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24sXG4gICAgU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb25UeXBlXG59IGZyb20gJy4vc3BsaXR0ZXItcGFuZS1vcmllbnRhdGlvbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zcGxpdHRlci1wYW5lLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0dGVyLXBhbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1zcGxpdHRlcl9fcGFuZS1jb250YWluZXInLFxuICAgICAgICAnW2NsYXNzLmZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lci0taG9yaXpvbnRhbF0nOiAnIV9pc1Jvb3RDb250YWluZXIgJiYgX2lzSG9yaXpvbnRhbCcsXG4gICAgICAgICdbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS12ZXJ0aWNhbF0nOiAnX2lzUm9vdENvbnRhaW5lciB8fCBfaXNWZXJ0aWNhbCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBTcGxpdHRlclBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgU3BsaXR0ZXJSZXNpemVyQ29tcG9uZW50LFxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IE5vRGVmYXVsdFBhbmVQaXBlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJQYW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogUGFuZSB0eXBlIC0gdmVydGljYWwgKGRlZmF1bHQpIG9yIGhvcml6b250YWwuICovXG4gICAgQElucHV0KClcbiAgICBvcmllbnRhdGlvbjogU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb25UeXBlID0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWw7XG5cbiAgICAvKipcbiAgICAgKiBTdHlsZSBvZiB0aGUgcmVzaXplci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlc2l6ZXJUeXBlOiAnZGVmYXVsdCcgfCAndHJhbnNwYXJlbnQnIHwgJ3RyYW5zbHVjZW50JyA9ICdkZWZhdWx0JztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIGFmdGVyIGNvbnRhaW5lcidzIHBhbmVzIGhhcyByZXNpemVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIHJlYWRvbmx5IHJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJQYW5lUmVzaXplRXZlbnRbXT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9wYW5lczogUXVlcnlMaXN0PFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudClcbiAgICBfZGlyZWN0UGFuZXM6IFF1ZXJ5TGlzdDxTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZWZhdWx0UGFuZTogTnVsbGFibGU8U3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcGFnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jdXJyZW50UGFnZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYW5lU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3dhbnRlZFBhbmVzU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxQYW5lU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RpcmVjdFBhbmVTdWJzY3JpcHRpb24kID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb24kID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzSG9yaXpvbnRhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09IFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uLmhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uID09PSBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbi52ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNSb290Q29udGFpbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuX3BhcmVudFNwbGl0dGVyUGFuZUNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfcGFuZXNPbkNhbnZhcygpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcmVjdFBhbmVzLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pc09uQ2FudmFzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfYWN0aXZlUGFuZXMoKTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnRbXSB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50UGFnZSA9PT0gUk9PVF9QQUdFKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFuZXNPbkNhbnZhcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9wYW5lcy5maWx0ZXIoKHBhbmUpID0+IHBhbmUuaWQgPT09IHRoaXMuX2N1cnJlbnRQYWdlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZSgpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgY29uc3QgcGFuZXMgPSB0aGlzLl9kaXJlY3RQYW5lcy5maWx0ZXIoKHBhbmUpID0+IHBhbmUuaWQgIT09IHRoaXMuX2RlZmF1bHRQYW5lPy5pZCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RlZmF1bHRQYW5lKSB7XG4gICAgICAgICAgICBwYW5lcy51bnNoaWZ0KHRoaXMuX2RlZmF1bHRQYW5lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYW5lcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9pc1J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3NwbGl0dGVyOiBTcGxpdHRlckNvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50U3BsaXR0ZXJQYW5lQ29udGFpbmVyOiBTcGxpdHRlclBhbmVDb250YWluZXJDb21wb25lbnRcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzUm9vdENvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5fc2V0RGVmYXVsdFBhbmUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBhZ2VzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX3BhbmVzLmZvckVhY2goKHBhbmUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24kLmFkZChwYW5lLnRvZ2dsZU9uQ2FudmFzLnN1YnNjcmliZSgoKSA9PiB0aGlzLl91cGRhdGVQYWdlcygpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRQYW5lcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RpcmVjdFBhbmVTdWJzY3JpcHRpb24kLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9nZXRQYW5lU3R5bGVzKHBhbmU6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50KTogeyBba2xhc3M6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICAgICAgICAnbWluLXdpZHRoJzogUEFORV9BVVRPX1NJWkUsXG4gICAgICAgICAgICAnbWF4LXdpZHRoJzogUEFORV9OT05FX1NJWkUsXG4gICAgICAgICAgICAnbWluLWhlaWdodCc6IFBBTkVfQVVUT19TSVpFLFxuICAgICAgICAgICAgJ21heC1oZWlnaHQnOiBQQU5FX05PTkVfU0laRVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLl9pc1ZlcnRpY2FsICYmIHBhbmUuaXNPbkNhbnZhcyAmJiBwYW5lLl9hY3R1YWxTaXplICE9PSBQQU5FX0FVVE9fU0laRSkge1xuICAgICAgICAgICAgc3R5bGVbJ21pbi13aWR0aCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgICAgIHN0eWxlWydtYXgtd2lkdGgnXSA9IHBhbmUuX2FjdHVhbFNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faXNIb3Jpem9udGFsICYmIHBhbmUuaXNPbkNhbnZhcyAmJiBwYW5lLl9hY3R1YWxTaXplICE9PSBQQU5FX0FVVE9fU0laRSkge1xuICAgICAgICAgICAgc3R5bGVbJ21pbi1oZWlnaHQnXSA9IHBhbmUuX2FjdHVhbFNpemU7XG4gICAgICAgICAgICBzdHlsZVsnbWF4LWhlaWdodCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zdGFydFJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGFuZVNpemVzID0gW107XG4gICAgICAgIHRoaXMuX2luaXRpYWxQYW5lU2l6ZXMgPSBbXTtcblxuICAgICAgICB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZS5mb3JFYWNoKChwYW5lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYW5lU2l6ZSA9IHRoaXMuX2dldFBhbmVFbGVtZW50U2l6ZVB4KHBhbmUuaWQpO1xuXG4gICAgICAgICAgICB0aGlzLl9wYW5lU2l6ZXMucHVzaChwYW5lU2l6ZSk7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsUGFuZVNpemVzLnB1c2gocGFuZVNpemUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9lbmRSZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRQYW5lU2l6ZXM6IFNwbGl0dGVyUGFuZVJlc2l6ZUV2ZW50W10gPSBbXTtcblxuICAgICAgICB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZS5mb3JFYWNoKChwYW5lLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BhbmVTaXplc1tpbmRleF0gIT09IHRoaXMuX2luaXRpYWxQYW5lU2l6ZXNbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlZFBhbmVTaXplcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgcGFuZUlkOiBwYW5lLmlkLFxuICAgICAgICAgICAgICAgICAgICBvbGRTaXplOiB0aGlzLl9pbml0aWFsUGFuZVNpemVzW2luZGV4XSArICdweCcsXG4gICAgICAgICAgICAgICAgICAgIG5ld1NpemU6IHRoaXMuX3BhbmVTaXplc1tpbmRleF0gKyAncHgnXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVzaXplLmVtaXQoY2hhbmdlZFBhbmVTaXplcyk7XG5cbiAgICAgICAgdGhpcy5fcmVzaXplUGFuZXNUb0ZpdEluQ29udGFpbmVyKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUmVzaXplKHBhbmVJZDogc3RyaW5nLCBkaWZmOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpZmYgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpZmYgKj0gdGhpcy5faXNSdGwgJiYgdGhpcy5vcmllbnRhdGlvbiA9PT0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWwgPyAtMSA6IDE7XG5cbiAgICAgICAgY29uc3QgcmVzaXplZFBhbmVJbmRleCA9XG4gICAgICAgICAgICB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZS5maW5kSW5kZXgoKHBhbmUpID0+IHBhbmUuaWQgPT09IHBhbmVJZCkgKyAoZGlmZiA8IDAgPyAxIDogMCk7XG4gICAgICAgIGNvbnN0IHJlc2l6ZWRQYW5lID0gdGhpcy5fcGFuZXNJblJpZ2h0T3JkZXJGb3JSZXNpemVbcmVzaXplZFBhbmVJbmRleF07XG5cbiAgICAgICAgbGV0IHNpYmxpbmdQYW5lSW5kZXggPSByZXNpemVkUGFuZUluZGV4O1xuICAgICAgICBsZXQgc2libGluZ1BhbmU7XG4gICAgICAgIGxldCBzaWJsaW5nUGFuZVNpemU7XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgc2libGluZ1BhbmVJbmRleCArPSBkaWZmIDwgMCA/IC0xIDogMTtcbiAgICAgICAgICAgIHNpYmxpbmdQYW5lID0gdGhpcy5fcGFuZXNJblJpZ2h0T3JkZXJGb3JSZXNpemVbc2libGluZ1BhbmVJbmRleF07XG4gICAgICAgICAgICBzaWJsaW5nUGFuZVNpemUgPSB0aGlzLl9wYW5lU2l6ZXNbc2libGluZ1BhbmVJbmRleF07XG5cbiAgICAgICAgICAgIGlmICghc2libGluZ1BhbmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKCFzaWJsaW5nUGFuZVNpemUpO1xuXG4gICAgICAgIGNvbnN0IHJlc2l6ZWRQYW5lTmV3U2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tyZXNpemVkUGFuZUluZGV4XSArIGRpZmYgKiAoZGlmZiA8IDAgPyAtMSA6IDEpO1xuICAgICAgICBjb25zdCBzaWJsaW5nUGFuZU5ld1NpemUgPSB0aGlzLl9wYW5lU2l6ZXNbc2libGluZ1BhbmVJbmRleF0gKyBkaWZmICogKGRpZmYgPCAwID8gMSA6IC0xKTtcblxuICAgICAgICAvKiogUHJldmVudCBmcm9tIHNldHRpbmcgbmVnYXRpdmUgc2l6ZSAqL1xuICAgICAgICBpZiAocmVzaXplZFBhbmVOZXdTaXplIDwgMCB8fCBzaWJsaW5nUGFuZU5ld1NpemUgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9wYW5lU2l6ZXNbcmVzaXplZFBhbmVJbmRleF0gPSByZXNpemVkUGFuZU5ld1NpemU7XG4gICAgICAgIHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XSA9IHNpYmxpbmdQYW5lTmV3U2l6ZTtcblxuICAgICAgICByZXNpemVkUGFuZS5zaXplID0gdGhpcy5fcGFuZVNpemVzW3Jlc2l6ZWRQYW5lSW5kZXhdICsgJ3B4JztcbiAgICAgICAgc2libGluZ1BhbmUuc2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XSArICdweCc7XG5cbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUGFnZUNoYW5nZShwYWdlOiBzdHJpbmcgPSBST09UX1BBR0UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudFBhZ2UgPSBwYWdlO1xuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVQYWdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGFnZXMgPSBbXTtcblxuICAgICAgICBjb25zdCBvZmZDYW52YXNEZW1hbmRQYWdlcyA9IHRoaXMuX3BhbmVzXG4gICAgICAgICAgICAuZmlsdGVyKChwYW5lKSA9PiAhcGFuZS5pc09uQ2FudmFzICYmIHBhbmUuZGVtYW5kUGFuZSlcbiAgICAgICAgICAgIC5tYXAoKHBhbmUpID0+IHBhbmUuaWQpO1xuICAgICAgICBsZXQgbmV3UGFnZSA9IFJPT1RfUEFHRTtcblxuICAgICAgICBpZiAob2ZmQ2FudmFzRGVtYW5kUGFnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9wYWdlcyA9IG9mZkNhbnZhc0RlbWFuZFBhZ2VzO1xuICAgICAgICAgICAgbmV3UGFnZSA9IG9mZkNhbnZhc0RlbWFuZFBhZ2VzWzBdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fcGFuZXNPbkNhbnZhcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGFnZXMudW5zaGlmdChST09UX1BBR0UpO1xuICAgICAgICAgICAgICAgIG5ld1BhZ2UgPSBST09UX1BBR0U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9wYW5lc09uQ2FudmFzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhZ2VzLnVuc2hpZnQodGhpcy5fcGFuZXNPbkNhbnZhc1swXS5pZCk7XG4gICAgICAgICAgICAgICAgbmV3UGFnZSA9IHRoaXMuX3BhbmVzT25DYW52YXNbMF0uaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZUV4aXN0ID0gdGhpcy5fcGFnZXMuaW5jbHVkZXModGhpcy5fY3VycmVudFBhZ2UpO1xuXG4gICAgICAgIGlmICghY3VycmVudFBhZ2VFeGlzdCkge1xuICAgICAgICAgICAgLyoqIERldGFjaGluZyBiYXNpY2FsbHkgd29ya3Mgd2l0aG91dCB0aGUgY29kZSBidXQgaXQncyB0aGUgZWRnZS1jYXNlICovXG4gICAgICAgICAgICBjb25zdCBpc1Nob3VsZERldGFjaERlZmF1bHRQYW5lID0gdGhpcy5fY3VycmVudFBhZ2UgPT09IHRoaXMuX2RlZmF1bHRQYW5lPy5pZCAmJiBuZXdQYWdlID09PSBST09UX1BBR0U7XG5cbiAgICAgICAgICAgIGlmIChpc1Nob3VsZERldGFjaERlZmF1bHRQYW5lICYmIHRoaXMuX2RlZmF1bHRQYW5lPy5fY29udGVudD8uaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRQYW5lLl9jb250ZW50LmRldGFjaCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9vblBhZ2VDaGFuZ2UobmV3UGFnZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRQYW5lcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzaXplUGFuZXNUb0ZpdEluQ29udGFpbmVyKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IHNldERpcmVjdFBhbmVzU3Vic2NyaXB0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2RpcmVjdFBhbmVTdWJzY3JpcHRpb24kID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLl9kaXJlY3RQYW5lcy5mb3JFYWNoKChwYW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQuYWRkKFxuICAgICAgICAgICAgICAgICAgICBwYW5lLnRvZ2dsZU9uQ2FudmFzLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIoKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHByZXZEaXJlY3RQYW5lcyA9IFsuLi50aGlzLl9kaXJlY3RQYW5lc107XG4gICAgICAgIGNvbnN0IGFyZURpcmVjdFBhbmVzU2FtZSA9IChwYW5lczogUXVlcnlMaXN0PFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgaWYgKHBhbmVzLmxlbmd0aCAhPT0gcHJldkRpcmVjdFBhbmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHByZXZEaXJlY3RQYW5lcy5ldmVyeSgocHJldlBhbmUpID0+ICEhcGFuZXMuZmluZCgocGFuZSkgPT4gcGFuZS5pZCA9PT0gcHJldlBhbmUuaWQpKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzZXREaXJlY3RQYW5lc1N1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQuYWRkKFxuICAgICAgICAgICAgdGhpcy5fcGFuZXMuY2hhbmdlcy5waXBlKGZpbHRlcigocGFuZXMpID0+ICFhcmVEaXJlY3RQYW5lc1NhbWUocGFuZXMpKSkuc3Vic2NyaWJlKChwYW5lc0xpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBwcmV2RGlyZWN0UGFuZXMgPSBwYW5lc0xpc3QudG9BcnJheSgpO1xuXG4gICAgICAgICAgICAgICAgc2V0RGlyZWN0UGFuZXNTdWJzY3JpcHRpb24oKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcih0cnVlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fcGFuZXMuZm9yRWFjaCgocGFuZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICAgICAgICAgICAgcGFuZS5zaXplQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcih0cnVlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQodGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoMTApLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIoKSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0RGVmYXVsdFBhbmUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNldERlZmF1bHRQYW5lID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3NwbGl0dGVyLmRlZmF1bHRQYW5lSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWZhdWx0UGFuZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhbmVzLmZpbmQoKHBhbmUpID0+IHBhbmUuaWQgPT09IHRoaXMuX3NwbGl0dGVyLmRlZmF1bHRQYW5lSWQpID8/IHRoaXMuX2RpcmVjdFBhbmVzWzBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiogRGV0YWNoaW5nIGJhc2ljYWxseSB3b3JrcyB3aXRob3V0IHRoZSBjb2RlIGJ1dCBpdCdzIHRoZSBlZGdlLWNhc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9kZWZhdWx0UGFuZT8uX2NvbnRlbnQ/LmlzQXR0YWNoZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWZhdWx0UGFuZS5fY29udGVudC5kZXRhY2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzZXREZWZhdWx0UGFuZSgpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQuYWRkKFxuICAgICAgICAgICAgdGhpcy5fc3BsaXR0ZXIuX2RlZmF1bHRQYW5lSWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQYW5lKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGFnZXMoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIoc2V0SW5pdGlhbFNpemUgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoc2V0SW5pdGlhbFNpemUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJTaXplUHggPSB0aGlzLl9pc0hvcml6b250YWxcbiAgICAgICAgICAgID8gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuICAgICAgICAgICAgOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGxldCBhdmFpbGFibGVTcGFjZVB4ID0gY29udGFpbmVyU2l6ZVB4IC0gUkVTSVpFUl9TSVpFX1BYICogKHRoaXMuX2RpcmVjdFBhbmVzLmxlbmd0aCAtIDEpO1xuXG4gICAgICAgIHRoaXMuX2RpcmVjdFBhbmVzLmZvckVhY2goKHBhbmUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWF2YWlsYWJsZVNwYWNlUHgpIHtcbiAgICAgICAgICAgICAgICBwYW5lLl9hY3R1YWxTaXplID0gJzBweCc7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2V0SW5pdGlhbFNpemUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93YW50ZWRQYW5lc1NpemVzW2luZGV4XSA9IHRoaXMuX2dldFBhbmVFbGVtZW50U2l6ZVB4KHBhbmUuaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYW5lU2l6ZSA9IHRoaXMuX3dhbnRlZFBhbmVzU2l6ZXNbaW5kZXhdO1xuXG4gICAgICAgICAgICBpZiAoYXZhaWxhYmxlU3BhY2VQeCAtIHRoaXMuX3dhbnRlZFBhbmVzU2l6ZXNbaW5kZXhdIDwgMCkge1xuICAgICAgICAgICAgICAgIHBhbmUuX2FjdHVhbFNpemUgPSBhdmFpbGFibGVTcGFjZVB4ICsgJ3B4JztcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVTcGFjZVB4ID0gMDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhbmUuX2FjdHVhbFNpemUgPSBwYW5lLnNpemUgPT09IFBBTkVfQVVUT19TSVpFID8gUEFORV9BVVRPX1NJWkUgOiBwYW5lU2l6ZSArICdweCc7XG4gICAgICAgICAgICBhdmFpbGFibGVTcGFjZVB4IC09IHBhbmVTaXplO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UGFuZUVsZW1lbnRTaXplUHgocGFuZUlkOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwYW5lRWxlbWVudCA9IHRoaXMuX2dldFBhbmVFbGVtZW50KHBhbmVJZCk7XG5cbiAgICAgICAgaWYgKCFwYW5lRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5faXNIb3Jpem9udGFsID8gcGFuZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogcGFuZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRQYW5lRWxlbWVudChwYW5lSWQ6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHtwYW5lSWR9YCk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ25vRGVmYXVsdFBhbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTm9EZWZhdWx0UGFuZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3NwbGl0dGVyUGFuZUNvbnRhaW5lcjogU3BsaXR0ZXJQYW5lQ29udGFpbmVyQ29tcG9uZW50KSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0cmFuc2Zvcm0odmFsdWU6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10sIGV4Y2x1ZGluZ0NvbmRpdGlvbiA9IHRydWUpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgaWYgKCFleGNsdWRpbmdDb25kaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZS5maWx0ZXIoKHBhbmUpID0+IHBhbmUuaWQgIT09IHRoaXMuX3NwbGl0dGVyUGFuZUNvbnRhaW5lci5fZGVmYXVsdFBhbmU/LmlkKTtcbiAgICB9XG59XG4iLCJAaWYgKF9pc1Jvb3RDb250YWluZXIpIHtcbiAgICBAaWYgKF9kZWZhdWx0UGFuZT8uaXNPbkNhbnZhcyAmJiBfYWN0aXZlUGFuZXMubGVuZ3RoID4gMSkge1xuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBhbmVzVGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGFuZXM6IFtfZGVmYXVsdFBhbmVdLCBzaG93UmVzaXplcjogdHJ1ZSB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS1ob3Jpem9udGFsXT1cIiFfaXNSb290Q29udGFpbmVyICYmIF9pc0hvcml6b250YWxcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lci0tdmVydGljYWxdPVwiX2lzUm9vdENvbnRhaW5lciB8fCBfaXNWZXJ0aWNhbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBhbmVzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgIHBhbmVzOiBfYWN0aXZlUGFuZXMgfCBub0RlZmF1bHRQYW5lOiBfZGVmYXVsdFBhbmU/LmlzT25DYW52YXMgJiYgX2FjdGl2ZVBhbmVzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChfcGFnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZmQtc3BsaXR0ZXItcGFnaW5hdGlvblxuICAgICAgICAgICAgICAgIFtwYWdlc109XCJfcGFnZXNcIlxuICAgICAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJfY3VycmVudFBhZ2VcIlxuICAgICAgICAgICAgICAgIChvblBhZ2VDaGFuZ2UpPVwiX29uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZkLXNwbGl0dGVyLXBhZ2luYXRpb24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwYW5lc1RlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGFuZXM6IF9wYW5lc09uQ2FudmFzIH1cIj48L25nLXRlbXBsYXRlPlxufVxuPCEtLSBJREUgd29uJ3QgcmVjb2duaXplIHR5cGVzIHByb3Blcmx5IGJlbG93IC0tPlxuPG5nLXRlbXBsYXRlICNwYW5lc1RlbXBsYXRlIGxldC1wYW5lcz1cInBhbmVzXCIgbGV0LXNob3dSZXNpemVyPVwic2hvd1Jlc2l6ZXJcIj5cbiAgICBAZm9yIChwYW5lIG9mIHBhbmVzOyB0cmFjayBwYW5lOyBsZXQgbGFzdCA9ICRsYXN0KSB7XG4gICAgICAgIDxzZWN0aW9uIFtpZF09XCJwYW5lLmlkXCIgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiIFtzdHlsZV09XCJfZ2V0UGFuZVN0eWxlcyhwYW5lKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicGFuZS5fY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgQGlmICghbGFzdCB8fCBzaG93UmVzaXplcikge1xuICAgICAgICAgICAgPGZkLXNwbGl0dGVyLXJlc2l6ZXJcbiAgICAgICAgICAgICAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChzdGFydFJlc2l6ZSk9XCJfc3RhcnRSZXNpemUoKVwiXG4gICAgICAgICAgICAgICAgKGVuZFJlc2l6ZSk9XCJfZW5kUmVzaXplKClcIlxuICAgICAgICAgICAgICAgIChyZXNpemUpPVwiX29uUmVzaXplKHBhbmUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCInZmQtc3BsaXR0ZXJfX3Jlc2l6ZXItLScgKyByZXNpemVyVHlwZVwiXG4gICAgICAgICAgICA+PC9mZC1zcGxpdHRlci1yZXNpemVyPlxuICAgICAgICB9XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -13,7 +13,10 @@ export class SplitterSplitPaneComponent {
|
|
|
13
13
|
/** Size (height in vertical orientation, width in horizontal orientation) of the pane. */
|
|
14
14
|
set size(size) {
|
|
15
15
|
this._size = size;
|
|
16
|
-
this._actualSize
|
|
16
|
+
if (this._actualSize !== this._size) {
|
|
17
|
+
this._actualSize = this._size;
|
|
18
|
+
this.sizeChange.emit();
|
|
19
|
+
}
|
|
17
20
|
}
|
|
18
21
|
get size() {
|
|
19
22
|
return this._size;
|
|
@@ -41,6 +44,8 @@ export class SplitterSplitPaneComponent {
|
|
|
41
44
|
this.demandPane = true;
|
|
42
45
|
/** Event emitted when the pane appears on/disappears out of canvas. */
|
|
43
46
|
this.toggleOnCanvas = new EventEmitter();
|
|
47
|
+
/** Event emitted when the size is changed via the input property. */
|
|
48
|
+
this.sizeChange = new EventEmitter();
|
|
44
49
|
/** @hidden */
|
|
45
50
|
this._actualSize = PANE_AUTO_SIZE;
|
|
46
51
|
/** @hidden */
|
|
@@ -105,7 +110,7 @@ export class SplitterSplitPaneComponent {
|
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SplitterSplitPaneComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.ViewportRuler }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: SplitterSplitPaneComponent, isStandalone: true, selector: "fd-splitter-split-pane", inputs: { size: "size", id: "id", requiredParentWidth: "requiredParentWidth", demandPane: "demandPane" }, outputs: { toggleOnCanvas: "toggleOnCanvas" }, viewQueries: [{ propertyName: "_templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: SplitterSplitPaneComponent, isStandalone: true, selector: "fd-splitter-split-pane", inputs: { size: "size", id: "id", requiredParentWidth: "requiredParentWidth", demandPane: "demandPane" }, outputs: { toggleOnCanvas: "toggleOnCanvas", sizeChange: "sizeChange" }, viewQueries: [{ propertyName: "_templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
109
114
|
}
|
|
110
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SplitterSplitPaneComponent, decorators: [{
|
|
111
116
|
type: Component,
|
|
@@ -125,8 +130,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
125
130
|
type: Input
|
|
126
131
|
}], toggleOnCanvas: [{
|
|
127
132
|
type: Output
|
|
133
|
+
}], sizeChange: [{
|
|
134
|
+
type: Output
|
|
128
135
|
}], _templateRef: [{
|
|
129
136
|
type: ViewChild,
|
|
130
137
|
args: [TemplateRef, { static: true }]
|
|
131
138
|
}] } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItc3BsaXQtcGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3BsaXR0ZXIvc3BsaXR0ZXItc3BsaXQtcGFuZS9zcGxpdHRlci1zcGxpdC1wYW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcGxpdHRlci9zcGxpdHRlci1zcGxpdC1wYW5lL3NwbGl0dGVyLXNwbGl0LXBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBRTlDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQixlQUFlO0FBUWYsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQywwRkFBMEY7SUFDMUYsSUFDSSxJQUFJLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELElB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LEVBQUU7WUFDdkUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7OEdBcklRLDBCQUEwQiwrRUFrRVgsUUFBUTtrR0FsRXZCLDBCQUEwQix5UkE2QnhCLFdBQVcsOERDaEUxQixnRUFHQTs7MkZEZ0NhLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDSSx3QkFBd0IsaUJBRW5CLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTs7MEJBb0VYLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTt5Q0EvRDVCLElBQUk7c0JBRFAsS0FBSztnQkFZTixFQUFFO3NCQURELEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFLRyxjQUFjO3NCQUR0QixNQUFNO2dCQUtQLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQQU5FX0FVVE9fU0laRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmxldCBwYW5lVW5pcXVlSWQgPSAwO1xuXG4vKiogQGR5bmFtaWMgKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtc3BsaXR0ZXItc3BsaXQtcGFuZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0dGVyLXNwbGl0LXBhbmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogU2l6ZSAoaGVpZ2h0IGluIHZlcnRpY2FsIG9yaWVudGF0aW9uLCB3aWR0aCBpbiBob3Jpem9udGFsIG9yaWVudGF0aW9uKSBvZiB0aGUgcGFuZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzaXplKHNpemU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5fYWN0dWFsU2l6ZSA9IHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgZ2V0IHNpemUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgLyoqIElkIG9mIHRoZSBzcGxpdCBwYW5lLiBHZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgZmQtc3BsaXR0ZXItc3BsaXQtcGFuZS0ke3BhbmVVbmlxdWVJZCsrfWA7XG5cbiAgICAvKiogUmVxdWlyZWQgYnJvd3NlcidzIHdpbmRvdyB3aWR0aCBpbiBwaXhlbHMgd2hlbiB0aGUgcGFuZWwgd2lsbCBiZSBzaG93bi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkUGFyZW50V2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBXaGV0aGVyIHBhbmUgaXMgcmVhY2hhYmxlIHVzaW5nIHBhZ2luYXRpb24gYmFyIHdoZW4gaXMgb2ZmLWNhbnZhcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRlbWFuZFBhbmUgPSB0cnVlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcGFuZSBhcHBlYXJzIG9uL2Rpc2FwcGVhcnMgb3V0IG9mIGNhbnZhcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB0b2dnbGVPbkNhbnZhcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBfdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hY3R1YWxTaXplID0gUEFORV9BVVRPX1NJWkU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NpemUgPSBQQU5FX0FVVE9fU0laRTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29udGVudFBvcnRhbDogVGVtcGxhdGVQb3J0YWwgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNPbkNhbnZhcyA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogUmV0dXJucyBpZiB0aGUgcGFuZSBpcyBvbiBjYW52YXMuICovXG4gICAgZ2V0IGlzT25DYW52YXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc09uQ2FudmFzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9jb250ZW50KCk6IFRlbXBsYXRlUG9ydGFsIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50UG9ydGFsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3dpbmRvdygpOiBOdWxsYWJsZTxXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnQ/LmRlZmF1bHRWaWV3O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50OiBEb2N1bWVudCB8IG51bGxcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250ZW50UG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3RlbXBsYXRlUmVmLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJvY2Vzc1BhbmVPbkNhbnZhcygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1Jlc2l6ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBIaWRlIHBhbmUgZnJvbSB0aGUgY2FudmFzLiAqL1xuICAgIGhpZGVGcm9tQ2FudmFzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNPbkNhbnZhcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNPbkNhbnZhcyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudG9nZ2xlT25DYW52YXMuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIFNob3cgcGFuZSBvbiB0aGUgY2FudmFzLiAqL1xuICAgIHNob3dPbkNhbnZhcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPbkNhbnZhcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNPbkNhbnZhcyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy50b2dnbGVPbkNhbnZhcy5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fd2luZG93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92aWV3cG9ydFJ1bGVyXG4gICAgICAgICAgICAuY2hhbmdlKDEwKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3Byb2Nlc3NQYW5lT25DYW52YXMoKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcm9jZXNzUGFuZU9uQ2FudmFzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3dpbmRvdykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWRQYXJlbnRXaWR0aCA+IHRoaXMuX3dpbmRvdy5pbm5lcldpZHRoICYmIHRoaXMuaXNPbkNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5oaWRlRnJvbUNhbnZhcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWRQYXJlbnRXaWR0aCA8IHRoaXMuX3dpbmRvdy5pbm5lcldpZHRoICYmICF0aGlzLmlzT25DYW52YXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd09uQ2FudmFzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItc3BsaXQtcGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3BsaXR0ZXIvc3BsaXR0ZXItc3BsaXQtcGFuZS9zcGxpdHRlci1zcGxpdC1wYW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcGxpdHRlci9zcGxpdHRlci1zcGxpdC1wYW5lL3NwbGl0dGVyLXNwbGl0LXBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBRTlDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQixlQUFlO0FBUWYsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQywwRkFBMEY7SUFDMUYsSUFDSSxJQUFJLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNqQyxJQUFJLENB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RCxjQUFjO0lBQ04sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2RSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQzs4R0E1SVEsMEJBQTBCLCtFQXlFWCxRQUFRO2tHQXpFdkIsMEJBQTBCLG1UQW9DeEIsV0FBVyw4REN2RTFCLGdFQUdBOzsyRkRnQ2EsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLHdCQUF3QixpQkFFbkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJOzswQkEyRVgsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFRO3lDQXRFNUIsSUFBSTtzQkFEUCxLQUFLO2dCQWVOLEVBQUU7c0JBREQsS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtHLGNBQWM7c0JBRHRCLE1BQU07Z0JBS0UsVUFBVTtzQkFEbEIsTUFBTTtnQkFLUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUEFORV9BVVRPX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5sZXQgcGFuZVVuaXF1ZUlkID0gMDtcblxuLyoqIEBkeW5hbWljICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNwbGl0dGVyLXNwbGl0LXBhbmUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGxpdHRlci1zcGxpdC1wYW5lLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFNpemUgKGhlaWdodCBpbiB2ZXJ0aWNhbCBvcmllbnRhdGlvbiwgd2lkdGggaW4gaG9yaXpvbnRhbCBvcmllbnRhdGlvbikgb2YgdGhlIHBhbmUuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2l6ZShzaXplOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICAgIGlmICh0aGlzLl9hY3R1YWxTaXplICE9PSB0aGlzLl9zaXplKSB7XG4gICAgICAgICAgICB0aGlzLl9hY3R1YWxTaXplID0gdGhpcy5fc2l6ZTtcbiAgICAgICAgICAgIHRoaXMuc2l6ZUNoYW5nZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgc2l6ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgICB9XG5cbiAgICAvKiogSWQgb2YgdGhlIHNwbGl0IHBhbmUuIEdlbmVyYXRlZCBpZiBub3QgcHJvdmlkZWQuICovXG4gICAgQElucHV0KClcbiAgICBpZCA9IGBmZC1zcGxpdHRlci1zcGxpdC1wYW5lLSR7cGFuZVVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBSZXF1aXJlZCBicm93c2VyJ3Mgd2luZG93IHdpZHRoIGluIHBpeGVscyB3aGVuIHRoZSBwYW5lbCB3aWxsIGJlIHNob3duLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWRQYXJlbnRXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqIFdoZXRoZXIgcGFuZSBpcyByZWFjaGFibGUgdXNpbmcgcGFnaW5hdGlvbiBiYXIgd2hlbiBpcyBvZmYtY2FudmFzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGVtYW5kUGFuZSA9IHRydWU7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwYW5lIGFwcGVhcnMgb24vZGlzYXBwZWFycyBvdXQgb2YgY2FudmFzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHRvZ2dsZU9uQ2FudmFzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2l6ZSBpcyBjaGFuZ2VkIHZpYSB0aGUgaW5wdXQgcHJvcGVydHkuICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBfdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hY3R1YWxTaXplID0gUEFORV9BVVRPX1NJWkU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NpemUgPSBQQU5FX0FVVE9fU0laRTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29udGVudFBvcnRhbDogVGVtcGxhdGVQb3J0YWwgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNPbkNhbnZhcyA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogUmV0dXJucyBpZiB0aGUgcGFuZSBpcyBvbiBjYW52YXMuICovXG4gICAgZ2V0IGlzT25DYW52YXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc09uQ2FudmFzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9jb250ZW50KCk6IFRlbXBsYXRlUG9ydGFsIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50UG9ydGFsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3dpbmRvdygpOiBOdWxsYWJsZTxXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnQ/LmRlZmF1bHRWaWV3O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50OiBEb2N1bWVudCB8IG51bGxcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250ZW50UG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3RlbXBsYXRlUmVmLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJvY2Vzc1BhbmVPbkNhbnZhcygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1Jlc2l6ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBIaWRlIHBhbmUgZnJvbSB0aGUgY2FudmFzLiAqL1xuICAgIGhpZGVGcm9tQ2FudmFzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNPbkNhbnZhcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNPbkNhbnZhcyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudG9nZ2xlT25DYW52YXMuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIFNob3cgcGFuZSBvbiB0aGUgY2FudmFzLiAqL1xuICAgIHNob3dPbkNhbnZhcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPbkNhbnZhcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNPbkNhbnZhcyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy50b2dnbGVPbkNhbnZhcy5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fd2luZG93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92aWV3cG9ydFJ1bGVyXG4gICAgICAgICAgICAuY2hhbmdlKDEwKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3Byb2Nlc3NQYW5lT25DYW52YXMoKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcm9jZXNzUGFuZU9uQ2FudmFzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3dpbmRvdykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWRQYXJlbnRXaWR0aCA+IHRoaXMuX3dpbmRvdy5pbm5lcldpZHRoICYmIHRoaXMuaXNPbkNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5oaWRlRnJvbUNhbnZhcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWRQYXJlbnRXaWR0aCA8IHRoaXMuX3dpbmRvdy5pbm5lcldpZHRoICYmICF0aGlzLmlzT25DYW52YXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd09uQ2FudmFzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -24,7 +24,10 @@ class SplitterSplitPaneComponent {
|
|
|
24
24
|
/** Size (height in vertical orientation, width in horizontal orientation) of the pane. */
|
|
25
25
|
set size(size) {
|
|
26
26
|
this._size = size;
|
|
27
|
-
this._actualSize
|
|
27
|
+
if (this._actualSize !== this._size) {
|
|
28
|
+
this._actualSize = this._size;
|
|
29
|
+
this.sizeChange.emit();
|
|
30
|
+
}
|
|
28
31
|
}
|
|
29
32
|
get size() {
|
|
30
33
|
return this._size;
|
|
@@ -52,6 +55,8 @@ class SplitterSplitPaneComponent {
|
|
|
52
55
|
this.demandPane = true;
|
|
53
56
|
/** Event emitted when the pane appears on/disappears out of canvas. */
|
|
54
57
|
this.toggleOnCanvas = new EventEmitter();
|
|
58
|
+
/** Event emitted when the size is changed via the input property. */
|
|
59
|
+
this.sizeChange = new EventEmitter();
|
|
55
60
|
/** @hidden */
|
|
56
61
|
this._actualSize = PANE_AUTO_SIZE;
|
|
57
62
|
/** @hidden */
|
|
@@ -116,7 +121,7 @@ class SplitterSplitPaneComponent {
|
|
|
116
121
|
}
|
|
117
122
|
}
|
|
118
123
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SplitterSplitPaneComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.ViewportRuler }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: SplitterSplitPaneComponent, isStandalone: true, selector: "fd-splitter-split-pane", inputs: { size: "size", id: "id", requiredParentWidth: "requiredParentWidth", demandPane: "demandPane" }, outputs: { toggleOnCanvas: "toggleOnCanvas" }, viewQueries: [{ propertyName: "_templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: SplitterSplitPaneComponent, isStandalone: true, selector: "fd-splitter-split-pane", inputs: { size: "size", id: "id", requiredParentWidth: "requiredParentWidth", demandPane: "demandPane" }, outputs: { toggleOnCanvas: "toggleOnCanvas", sizeChange: "sizeChange" }, viewQueries: [{ propertyName: "_templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
120
125
|
}
|
|
121
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SplitterSplitPaneComponent, decorators: [{
|
|
122
127
|
type: Component,
|
|
@@ -136,6 +141,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
136
141
|
type: Input
|
|
137
142
|
}], toggleOnCanvas: [{
|
|
138
143
|
type: Output
|
|
144
|
+
}], sizeChange: [{
|
|
145
|
+
type: Output
|
|
139
146
|
}], _templateRef: [{
|
|
140
147
|
type: ViewChild,
|
|
141
148
|
args: [TemplateRef, { static: true }]
|
|
@@ -632,6 +639,11 @@ class SplitterPaneContainerComponent {
|
|
|
632
639
|
setDirectPanesSubscription();
|
|
633
640
|
this._resizePanesToFitInContainer(true);
|
|
634
641
|
}));
|
|
642
|
+
this._panes.forEach((pane) => {
|
|
643
|
+
this._subscription$.add(pane.sizeChange.subscribe(() => {
|
|
644
|
+
this._resizePanesToFitInContainer(true);
|
|
645
|
+
}));
|
|
646
|
+
});
|
|
635
647
|
this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));
|
|
636
648
|
}
|
|
637
649
|
/** @hidden */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-splitter.mjs","sources":["../../../../libs/core/splitter/constants.ts","../../../../libs/core/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/core/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/core/splitter/splitter.component.ts","../../../../libs/core/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/core/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/core/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/core/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/core/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/core/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/core/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/core/splitter/splitter.module.ts","../../../../libs/core/splitter/fundamental-ngx-core-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n this._actualSize = this._size;\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _unsubscribe$ = new Subject<void>();\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Nullable<Window & typeof globalThis> {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\n\n@Component({\n selector: 'fd-splitter',\n template: `<ng-content></ng-content>`,\n styleUrl: './splitter.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' },\n standalone: true\n})\nexport class SplitterComponent {\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return !!paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fd-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n },\n standalone: true,\n imports: [ButtonComponent, FdTranslatePipe]\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","@for (page of pages; track page) {\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"'coreSplitter.paginationItemAriaLabel' | fdTranslate\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n >\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n </button>\n}\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, fromEvent, throttleTime } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.is-active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n },\n standalone: true,\n imports: [ButtonComponent, IconComponent]\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number | null = null;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<Element>,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number | undefined;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (diff !== undefined) {\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n }\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this._document!, 'mousemove')\n .pipe(throttleTime(10), takeUntil(this._pointerMoveListener))\n .subscribe((event) => {\n this._ngZone.run(() => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n });\n\n fromEvent(this._document!, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this._ngZone.run(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n });\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - (this._start ?? newPosition);\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<div class=\"fd-splitter__resizer-decoration-before\"></div>\n\n<button fd-button fdType=\"transparent\" tabindex=\"-1\" class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</button>\n\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SkipSelf,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { Nullable, RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterPaginationComponent } from '../splitter-pagination/splitter-pagination.component';\nimport { SplitterResizerComponent } from '../splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from '../splitter.component';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\n\n@Component({\n selector: 'fd-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n },\n standalone: true,\n imports: [\n NgTemplateOutlet,\n SplitterPaginationComponent,\n PortalModule,\n SplitterResizerComponent,\n forwardRef(() => NoDefaultPanePipe)\n ]\n})\nexport class SplitterPaneContainerComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /** Pane type - vertical (default) or horizontal. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /**\n * Style of the resizer.\n */\n @Input()\n resizerType: 'default' | 'transparent' | 'translucent' = 'default';\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent)\n _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: Nullable<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private get _isRtl(): boolean {\n return this._rtlService?.rtl.getValue();\n }\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() private readonly _rtlService: RtlService,\n @Optional() @SkipSelf() private readonly _parentSplitterPaneContainer: SplitterPaneContainerComponent\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: string } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n diff *= this._isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane;\n let siblingPaneSize;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane =\n this._panes.find((pane) => pane.id === this._splitter.defaultPaneId) ?? this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return 0;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n\n@Pipe({\n name: 'noDefaultPane',\n standalone: true\n})\nexport class NoDefaultPanePipe implements PipeTransform {\n /** @hidden */\n constructor(private readonly _splitterPaneContainer: SplitterPaneContainerComponent) {}\n\n /** @hidden */\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","@if (_isRootContainer) {\n @if (_defaultPane?.isOnCanvas && _activePanes.length > 1) {\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{ panes: [_defaultPane], showResizer: true }\"\n ></ng-template>\n }\n <div class=\"fd-splitter__split-pane\">\n <div\n class=\"fd-splitter__pane-container\"\n [class.fd-splitter__pane-container--horizontal]=\"!_isRootContainer && _isHorizontal\"\n [class.fd-splitter__pane-container--vertical]=\"_isRootContainer || _isVertical\"\n >\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{\n panes: _activePanes | noDefaultPane: _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\"\n ></ng-template>\n </div>\n @if (_pages.length) {\n <fd-splitter-pagination\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fd-splitter-pagination>\n }\n </div>\n} @else {\n <ng-template [ngTemplateOutlet]=\"panesTemplate\" [ngTemplateOutletContext]=\"{ panes: _panesOnCanvas }\"></ng-template>\n}\n<!-- IDE won't recognize types properly below -->\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n @for (pane of panes; track pane; let last = $last) {\n <section [id]=\"pane.id\" class=\"fd-splitter__split-pane\" [style]=\"_getPaneStyles(pane)\">\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n @if (!last || showResizer) {\n <fd-splitter-resizer\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n [class]=\"'fd-splitter__resizer--' + resizerType\"\n ></fd-splitter-resizer>\n }\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport {\n NoDefaultPanePipe,\n SplitterPaneContainerComponent\n} from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\nconst components = [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n];\n\n/**\n * @deprecated\n * Use individual component imports.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SplitterComponent","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-splitter.mjs","sources":["../../../../libs/core/splitter/constants.ts","../../../../libs/core/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/core/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/core/splitter/splitter.component.ts","../../../../libs/core/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/core/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/core/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/core/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/core/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/core/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/core/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/core/splitter/splitter.module.ts","../../../../libs/core/splitter/fundamental-ngx-core-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n if (this._actualSize !== this._size) {\n this._actualSize = this._size;\n this.sizeChange.emit();\n }\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** Event emitted when the size is changed via the input property. */\n @Output()\n readonly sizeChange = new EventEmitter<void>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _unsubscribe$ = new Subject<void>();\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Nullable<Window & typeof globalThis> {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\n\n@Component({\n selector: 'fd-splitter',\n template: `<ng-content></ng-content>`,\n styleUrl: './splitter.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' },\n standalone: true\n})\nexport class SplitterComponent {\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return !!paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fd-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n },\n standalone: true,\n imports: [ButtonComponent, FdTranslatePipe]\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","@for (page of pages; track page) {\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"'coreSplitter.paginationItemAriaLabel' | fdTranslate\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n >\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n </button>\n}\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, fromEvent, throttleTime } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.is-active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n },\n standalone: true,\n imports: [ButtonComponent, IconComponent]\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number | null = null;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<Element>,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number | undefined;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (diff !== undefined) {\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n }\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this._document!, 'mousemove')\n .pipe(throttleTime(10), takeUntil(this._pointerMoveListener))\n .subscribe((event) => {\n this._ngZone.run(() => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n });\n\n fromEvent(this._document!, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this._ngZone.run(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n });\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - (this._start ?? newPosition);\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<div class=\"fd-splitter__resizer-decoration-before\"></div>\n\n<button fd-button fdType=\"transparent\" tabindex=\"-1\" class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</button>\n\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SkipSelf,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { Nullable, RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterPaginationComponent } from '../splitter-pagination/splitter-pagination.component';\nimport { SplitterResizerComponent } from '../splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from '../splitter.component';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\n\n@Component({\n selector: 'fd-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n },\n standalone: true,\n imports: [\n NgTemplateOutlet,\n SplitterPaginationComponent,\n PortalModule,\n SplitterResizerComponent,\n forwardRef(() => NoDefaultPanePipe)\n ]\n})\nexport class SplitterPaneContainerComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /** Pane type - vertical (default) or horizontal. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /**\n * Style of the resizer.\n */\n @Input()\n resizerType: 'default' | 'transparent' | 'translucent' = 'default';\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent)\n _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: Nullable<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private get _isRtl(): boolean {\n return this._rtlService?.rtl.getValue();\n }\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() private readonly _rtlService: RtlService,\n @Optional() @SkipSelf() private readonly _parentSplitterPaneContainer: SplitterPaneContainerComponent\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: string } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n diff *= this._isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane;\n let siblingPaneSize;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._panes.forEach((pane) => {\n this._subscription$.add(\n pane.sizeChange.subscribe(() => {\n this._resizePanesToFitInContainer(true);\n })\n );\n });\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane =\n this._panes.find((pane) => pane.id === this._splitter.defaultPaneId) ?? this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return 0;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n\n@Pipe({\n name: 'noDefaultPane',\n standalone: true\n})\nexport class NoDefaultPanePipe implements PipeTransform {\n /** @hidden */\n constructor(private readonly _splitterPaneContainer: SplitterPaneContainerComponent) {}\n\n /** @hidden */\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","@if (_isRootContainer) {\n @if (_defaultPane?.isOnCanvas && _activePanes.length > 1) {\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{ panes: [_defaultPane], showResizer: true }\"\n ></ng-template>\n }\n <div class=\"fd-splitter__split-pane\">\n <div\n class=\"fd-splitter__pane-container\"\n [class.fd-splitter__pane-container--horizontal]=\"!_isRootContainer && _isHorizontal\"\n [class.fd-splitter__pane-container--vertical]=\"_isRootContainer || _isVertical\"\n >\n <ng-template\n [ngTemplateOutlet]=\"panesTemplate\"\n [ngTemplateOutletContext]=\"{\n panes: _activePanes | noDefaultPane: _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\"\n ></ng-template>\n </div>\n @if (_pages.length) {\n <fd-splitter-pagination\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fd-splitter-pagination>\n }\n </div>\n} @else {\n <ng-template [ngTemplateOutlet]=\"panesTemplate\" [ngTemplateOutletContext]=\"{ panes: _panesOnCanvas }\"></ng-template>\n}\n<!-- IDE won't recognize types properly below -->\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n @for (pane of panes; track pane; let last = $last) {\n <section [id]=\"pane.id\" class=\"fd-splitter__split-pane\" [style]=\"_getPaneStyles(pane)\">\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n @if (!last || showResizer) {\n <fd-splitter-resizer\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n [class]=\"'fd-splitter__resizer--' + resizerType\"\n ></fd-splitter-resizer>\n }\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport {\n NoDefaultPanePipe,\n SplitterPaneContainerComponent\n} from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\nconst components = [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n];\n\n/**\n * @deprecated\n * Use individual component imports.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SplitterComponent","i2"],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/core",
|
|
3
|
-
"version": "0.48.0-rc.
|
|
3
|
+
"version": "0.48.0-rc.14",
|
|
4
4
|
"schematics": "./schematics/collection.json",
|
|
5
5
|
"ng-update": {
|
|
6
6
|
"migrations": "./schematics/migrations.json"
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"@angular/forms": "^17.0.0",
|
|
24
24
|
"@angular/platform-browser": "^17.0.0",
|
|
25
25
|
"@angular/router": "^17.0.0",
|
|
26
|
-
"@fundamental-ngx/cdk": "0.48.0-rc.
|
|
27
|
-
"@fundamental-ngx/i18n": "0.48.0-rc.
|
|
26
|
+
"@fundamental-ngx/cdk": "0.48.0-rc.14",
|
|
27
|
+
"@fundamental-ngx/i18n": "0.48.0-rc.14",
|
|
28
28
|
"@sap-theming/theming-base-content": "^11.9.0",
|
|
29
29
|
"fundamental-styles": "0.32.0",
|
|
30
30
|
"rxjs": "^7.8.0"
|
|
@@ -8,8 +8,8 @@ const package_utils_1 = require("../utils/package-utils");
|
|
|
8
8
|
const desiredVersions = {
|
|
9
9
|
'fundamental-styles': process.env.FD_ENV_FDSTYLES_VER_PLACEHOLDER || '0.32.0',
|
|
10
10
|
'@sap-theming/theming-base-content': process.env.FD_ENV_THEMING_VER_PLACEHOLDER || '^11.9.0',
|
|
11
|
-
'@fundamental-ngx/i18n': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.0-rc.
|
|
12
|
-
'@fundamental-ngx/cdk': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.0-rc.
|
|
11
|
+
'@fundamental-ngx/i18n': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.0-rc.14',
|
|
12
|
+
'@fundamental-ngx/cdk': process.env.FD_ENV_VERSION_PLACEHOLDER || '0.48.0-rc.14'
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
15
|
* Adds dependencies to the project
|
|
@@ -18,6 +18,8 @@ export declare class SplitterSplitPaneComponent implements OnInit, AfterViewInit
|
|
|
18
18
|
demandPane: boolean;
|
|
19
19
|
/** Event emitted when the pane appears on/disappears out of canvas. */
|
|
20
20
|
readonly toggleOnCanvas: EventEmitter<boolean>;
|
|
21
|
+
/** Event emitted when the size is changed via the input property. */
|
|
22
|
+
readonly sizeChange: EventEmitter<void>;
|
|
21
23
|
/** @hidden */
|
|
22
24
|
_templateRef: TemplateRef<any>;
|
|
23
25
|
/** @hidden */
|
|
@@ -53,5 +55,5 @@ export declare class SplitterSplitPaneComponent implements OnInit, AfterViewInit
|
|
|
53
55
|
/** @hidden */
|
|
54
56
|
private _processPaneOnCanvas;
|
|
55
57
|
static ɵfac: i0.ɵɵFactoryDeclaration<SplitterSplitPaneComponent, [null, null, { optional: true; }]>;
|
|
56
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SplitterSplitPaneComponent, "fd-splitter-split-pane", never, { "size": { "alias": "size"; "required": false; }; "id": { "alias": "id"; "required": false; }; "requiredParentWidth": { "alias": "requiredParentWidth"; "required": false; }; "demandPane": { "alias": "demandPane"; "required": false; }; }, { "toggleOnCanvas": "toggleOnCanvas"; }, never, ["*"], true, never>;
|
|
58
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SplitterSplitPaneComponent, "fd-splitter-split-pane", never, { "size": { "alias": "size"; "required": false; }; "id": { "alias": "id"; "required": false; }; "requiredParentWidth": { "alias": "requiredParentWidth"; "required": false; }; "demandPane": { "alias": "demandPane"; "required": false; }; }, { "toggleOnCanvas": "toggleOnCanvas"; "sizeChange": "sizeChange"; }, never, ["*"], true, never>;
|
|
57
59
|
}
|
|
Binary file
|