@ngutil/floating 0.0.27 → 0.0.29

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.
@@ -27,6 +27,7 @@ export class FloatingRef {
27
27
  this.#traits = {};
28
28
  this.#untilCleanup = this.state.current$.pipe(filter(state => state === "cleanup"), shareReplay(1));
29
29
  this.#untilDisposed = this.state.current$.pipe(filter(state => state === "cleanup"), shareReplay(1));
30
+ container.nativeElement.style.overflow = "hidden";
30
31
  this.#traits = traits;
31
32
  this.traitState$ = this.#traitState().pipe(shareReplay(1));
32
33
  const sub = this.state.current$.subscribe(state => {
@@ -78,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
78
79
  type: Inject,
79
80
  args: [TRAITS]
80
81
  }] }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nL2Zsb2F0aW5nLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVuRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7OztBQUtyRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQVMsUUFBUSxDQUFDLENBQUE7QUFhMUQsTUFBTSxPQUFPLFdBQVc7SUFhWCxPQUFPLENBQWE7SUFHcEIsYUFBYSxDQUdyQjtJQUVRLGNBQWMsQ0FHdEI7SUFFRCxZQUNhLFFBQXNCLEVBQ3RCLFNBQXVCLEVBQ2hCLE1BQWM7UUFGckIsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBM0IzQixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQUksQ0FBQyxDQUFDLENBQUE7UUFFakMsVUFBSyxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzVCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLEVBQUU7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtZQUNwRCxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FB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QyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hELEdBQUcsQ0FBQyxJQUFJLENBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUE7WUFDcEMsQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFBO1FBQ0wsQ0FBQztRQUVELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO2FBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUN4QixDQUFDO0lBQ0wsQ0FBQzs4R0F4RlEsV0FBVywwRUE2QlIsTUFBTTtrSEE3QlQsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVTs7MEJBOEJGLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IEVNUFRZLCBmaWx0ZXIsIG1hcCwgbWVyZ2UsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHNoYXJlUmVwbGF5LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IFN0YXRlQ2hhaW4gfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5pbXBvcnQgeyBDb250YWluZXJSZWYgfSBmcm9tIFwiLi4vbGF5ZXIvY29udGFpbmVyLXJlZlwiXG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tIFwiLi4vbGF5ZXIvbGF5ZXIuc2VydmljZVwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vdHJhaXRzL19iYXNlXCJcblxuZXhwb3J0IHR5cGUgVHJhaXRzID0geyBba2V5OiBzdHJpbmddOiBGbG9hdGluZ1RyYWl0IH1cblxuZXhwb3J0IGNvbnN0IFRSQUlUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUcmFpdHM+KFwiVFJBSVRTXCIpXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdDaGFubmVsIHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBkYXRhPzogYW55XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdUcmFpdEV2ZW50IHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBkYXRhOiBvYmplY3Rcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nUmVmPEMgZXh0ZW5kcyBGbG9hdGluZ0NoYW5uZWwgPSBGbG9hdGluZ0NoYW5uZWwsIFQgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50PiB7XG4gICAgcmVhZG9ubHkgY2hhbm5lbCA9IG5ldyBSZXBsYXlTdWJqZWN0PEM+KDEpXG5cbiAgICByZWFkb25seSBzdGF0ZSA9IG5ldyBTdGF0ZUNoYWluKHtcbiAgICAgICAgaW5pdDoge30sXG4gICAgICAgIHNob3dpbmc6IHt9LFxuICAgICAgICBzaG93bjoge30sXG4gICAgICAgIGNsb3Npbmc6IHsgY2FuY2VsbGFibGU6IGZhbHNlLCBvcmRlcjogXCJzZXF1ZW50aWFsXCIgfSxcbiAgICAgICAgZGlzcG9zaW5nOiB7IGNhbmNlbGxhYmxlOiBmYWxzZSB9LFxuICAgICAgICBkaXNwb3NlZDogeyBjYW5jZWxsYWJsZTogZmFsc2UsIG9yZGVyOiBcInNlcXVlbnRpYWxcIiB9LFxuICAgICAgICBjbGVhbnVwOiB7IGNhbmNlbGxhYmxlOiBmYWxzZSwgb3JkZXI6IFwic2VxdWVudGlhbFwiIH1cbiAgICB9KVxuXG4gICAgcmVhZG9ubHkgI3RyYWl0czogVHJhaXRzID0ge31cbiAgICByZWFkb25seSB0cmFpdFN0YXRlJDogT2JzZXJ2YWJsZTxGbG9hdGluZ1RyYWl0RXZlbnQ+XG5cbiAgICByZWFkb25seSAjdW50aWxDbGVhbnVwID0gdGhpcy5zdGF0ZS5jdXJyZW50JC5waXBlKFxuICAgICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGUgPT09IFwiY2xlYW51cFwiKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgICByZWFkb25seSAjdW50aWxEaXNwb3NlZCA9IHRoaXMuc3RhdGUuY3VycmVudCQucGlwZShcbiAgICAgICAgZmlsdGVyKHN0YXRlID0+IHN0YXRlID09PSBcImNsZWFudXBcIiksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGxheWVyU3ZjOiBMYXllclNlcnZpY2UsXG4gICAgICAgIHJlYWRvbmx5IGNvbnRhaW5lcjogQ29udGFpbmVyUmVmLFxuICAgICAgICBASW5qZWN0KFRSQUlUUykgdHJhaXRzOiBUcmFpdHNcbiAgICApIHtcbiAgICAgICAgdGhpcy4jdHJhaXRzID0gdHJhaXRzXG4gICAgICAgIHRoaXMudHJhaXRTdGF0ZSQgPSB0aGlzLiN0cmFpdFN0YXRlKCkucGlwZShzaGFyZVJlcGxheSgxKSlcblxuICAgICAgICBjb25zdCBzdWIgPSB0aGlzLnN0YXRlLmN1cnJlbnQkLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwubmV4dCh7IHR5cGU6IHN0YXRlIH0gYXMgYW55KVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnN0YXRlLm9uKFwiaW5pdFwiLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRyYWl0U3RhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuI3VudGlsQ2xlYW51cCkpLnN1YnNjcmliZSgpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc3RhdGUub24oXCJkaXNwb3NlZFwiLCAoKSA9PiB7XG4gICAgICAgICAgICBzdWIudW5zdWJzY3JpYmUoKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnN0YXRlLmNvbnRyb2woY29udGFpbmVyLnN0YXRlKVxuICAgIH1cblxuICAgIHNob3coKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnJ1bihbXCJpbml0XCIsIFwic2hvd2luZ1wiLCBcInNob3duXCJdKVxuICAgIH1cblxuICAgIGhpZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnJ1bihbXCJkaXNwb3NpbmdcIiwgXCJkaXNwb3NlZFwiLCBcImNsZWFudXBcIl0pXG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnJ1bihbXCJjbG9zaW5nXCIsIFwiZGlzcG9zaW5nXCIsIFwiZGlzcG9zZWRcIiwgXCJjbGVhbnVwXCJdKVxuICAgIH1cblxuICAgIHdhdGNoVHJhaXQ8VD4obmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0U3RhdGUkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy4jdW50aWxEaXNwb3NlZCksXG4gICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQubmFtZSA9PT0gbmFtZSksXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4gZXZlbnQuZGF0YSBhcyBUKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAjdHJhaXRTdGF0ZSgpOiBPYnNlcnZhYmxlPEZsb2F0aW5nVHJhaXRFdmVudD4ge1xuICAgICAgICBjb25zdCBzcmMgPSBbXVxuXG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuI3RyYWl0cykpIHtcbiAgICAgICAgICAgIHNyYy5wdXNoKFxuICAgICAgICAgICAgICAgIHYuY29ubmVjdCh0aGlzKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy4jdW50aWxDbGVhbnVwKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBuYW1lOiBrLCBkYXRhOiByZXN1bHQgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzcmMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFlcbiAgICAgICAgfSBlbHNlIGlmIChzcmMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gc3JjWzBdXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4uc3JjKVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nL2Zsb2F0aW5nLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVuRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7OztBQUtyRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQVMsUUFBUSxDQUFDLENBQUE7QUFhMUQsTUFBTSxPQUFPLFdBQVc7SUFhWCxPQUFPLENBQWE7SUFHcEIsYUFBYSxDQUdyQjtJQUVRLGNBQWMsQ0FHdEI7SUFFRCxZQUNhLFFBQXNCLEVBQ3RCLFNBQXVCLEVBQ2hCLE1BQWM7UUFGckIsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBM0IzQixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQUksQ0FBQyxDQUFDLENBQUE7UUFFakMsVUFBSyxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzVCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLEVBQUU7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtZQUNwRCxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FB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QUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDaEQsR0FBRyxDQUFDLElBQUksQ0FDSixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNULE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtZQUNwQyxDQUFDLENBQUMsQ0FDTCxDQUNKLENBQUE7UUFDTCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7YUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO1FBQ3hCLENBQUM7SUFDTCxDQUFDOzhHQTFGUSxXQUFXLDBFQTZCUixNQUFNO2tIQTdCVCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVOzswQkE4QkYsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgRU1QVFksIGZpbHRlciwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc2hhcmVSZXBsYXksIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgU3RhdGVDaGFpbiB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5cbmltcG9ydCB7IENvbnRhaW5lclJlZiB9IGZyb20gXCIuLi9sYXllci9jb250YWluZXItcmVmXCJcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gXCIuLi9sYXllci9sYXllci5zZXJ2aWNlXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi90cmFpdHMvX2Jhc2VcIlxuXG5leHBvcnQgdHlwZSBUcmFpdHMgPSB7IFtrZXk6IHN0cmluZ106IEZsb2F0aW5nVHJhaXQgfVxuXG5leHBvcnQgY29uc3QgVFJBSVRTID0gbmV3IEluamVjdGlvblRva2VuPFRyYWl0cz4oXCJUUkFJVFNcIilcblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ0NoYW5uZWwge1xuICAgIHR5cGU6IHN0cmluZ1xuICAgIGRhdGE/OiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1RyYWl0RXZlbnQge1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIGRhdGE6IG9iamVjdFxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdSZWY8QyBleHRlbmRzIEZsb2F0aW5nQ2hhbm5lbCA9IEZsb2F0aW5nQ2hhbm5lbCwgVCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+IHtcbiAgICByZWFkb25seSBjaGFubmVsID0gbmV3IFJlcGxheVN1YmplY3Q8Qz4oMSlcblxuICAgIHJlYWRvbmx5IHN0YXRlID0gbmV3IFN0YXRlQ2hhaW4oe1xuICAgICAgICBpbml0OiB7fSxcbiAgICAgICAgc2hvd2luZzoge30sXG4gICAgICAgIHNob3duOiB7fSxcbiAgICAgICAgY2xvc2luZzogeyBjYW5jZWxsYWJsZTogZmFsc2UsIG9yZGVyOiBcInNlcXVlbnRpYWxcIiB9LFxuICAgICAgICBkaXNwb3Npbmc6IHsgY2FuY2VsbGFibGU6IGZhbHNlIH0sXG4gICAgICAgIGRpc3Bvc2VkOiB7IGNhbmNlbGxhYmxlOiBmYWxzZSwgb3JkZXI6IFwic2VxdWVudGlhbFwiIH0sXG4gICAgICAgIGNsZWFudXA6IHsgY2FuY2VsbGFibGU6IGZhbHNlLCBvcmRlcjogXCJzZXF1ZW50aWFsXCIgfVxuICAgIH0pXG5cbiAgICByZWFkb25seSAjdHJhaXRzOiBUcmFpdHMgPSB7fVxuICAgIHJlYWRvbmx5IHRyYWl0U3RhdGUkOiBPYnNlcnZhYmxlPEZsb2F0aW5nVHJhaXRFdmVudD5cblxuICAgIHJlYWRvbmx5ICN1bnRpbENsZWFudXAgPSB0aGlzLnN0YXRlLmN1cnJlbnQkLnBpcGUoXG4gICAgICAgIGZpbHRlcihzdGF0ZSA9PiBzdGF0ZSA9PT0gXCJjbGVhbnVwXCIpLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICAgIHJlYWRvbmx5ICN1bnRpbERpc3Bvc2VkID0gdGhpcy5zdGF0ZS5jdXJyZW50JC5waXBlKFxuICAgICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGUgPT09IFwiY2xlYW51cFwiKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgbGF5ZXJTdmM6IExheWVyU2VydmljZSxcbiAgICAgICAgcmVhZG9ubHkgY29udGFpbmVyOiBDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoVFJBSVRTKSB0cmFpdHM6IFRyYWl0c1xuICAgICkge1xuICAgICAgICBjb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCJcblxuICAgICAgICB0aGlzLiN0cmFpdHMgPSB0cmFpdHNcbiAgICAgICAgdGhpcy50cmFpdFN0YXRlJCA9IHRoaXMuI3RyYWl0U3RhdGUoKS5waXBlKHNoYXJlUmVwbGF5KDEpKVxuXG4gICAgICAgIGNvbnN0IHN1YiA9IHRoaXMuc3RhdGUuY3VycmVudCQuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hhbm5lbC5uZXh0KHsgdHlwZTogc3RhdGUgfSBhcyBhbnkpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc3RhdGUub24oXCJpbml0XCIsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJhaXRTdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy4jdW50aWxDbGVhbnVwKSkuc3Vic2NyaWJlKClcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5zdGF0ZS5vbihcImRpc3Bvc2VkXCIsICgpID0+IHtcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc3RhdGUuY29udHJvbChjb250YWluZXIuc3RhdGUpXG4gICAgfVxuXG4gICAgc2hvdygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFtcImluaXRcIiwgXCJzaG93aW5nXCIsIFwic2hvd25cIl0pXG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFtcImRpc3Bvc2luZ1wiLCBcImRpc3Bvc2VkXCIsIFwiY2xlYW51cFwiXSlcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucnVuKFtcImNsb3NpbmdcIiwgXCJkaXNwb3NpbmdcIiwgXCJkaXNwb3NlZFwiLCBcImNsZWFudXBcIl0pXG4gICAgfVxuXG4gICAgd2F0Y2hUcmFpdDxUPihuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhaXRTdGF0ZSQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLiN1bnRpbERpc3Bvc2VkKSxcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5uYW1lID09PSBuYW1lKSxcbiAgICAgICAgICAgIG1hcChldmVudCA9PiBldmVudC5kYXRhIGFzIFQpLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgICN0cmFpdFN0YXRlKCk6IE9ic2VydmFibGU8RmxvYXRpbmdUcmFpdEV2ZW50PiB7XG4gICAgICAgIGNvbnN0IHNyYyA9IFtdXG5cbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy4jdHJhaXRzKSkge1xuICAgICAgICAgICAgc3JjLnB1c2goXG4gICAgICAgICAgICAgICAgdi5jb25uZWN0KHRoaXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLiN1bnRpbENsZWFudXApLFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IGssIGRhdGE6IHJlc3VsdCB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNyYy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWVxuICAgICAgICB9IGVsc2UgaWYgKHNyYy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBzcmNbMF1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZSguLi5zcmMpXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -6,9 +6,11 @@ import { position } from "./traits/position";
6
6
  import * as i0 from "@angular/core";
7
7
  // export type FloatingTrait = (...args: any[]) => (traits: object) => Observable<object>
8
8
  export class FloatingFactory {
9
+ #providers;
9
10
  constructor(layer) {
10
11
  this.layer = layer;
11
12
  this.traits = {};
13
+ this.#providers = [];
12
14
  this.subscribe = (...args) => this.show().subscribe(...args);
13
15
  }
14
16
  trait(...traits) {
@@ -57,13 +59,23 @@ export class FloatingFactory {
57
59
  ...providers,
58
60
  { provide: TRAITS, useValue: this.traits },
59
61
  { provide: LayerService, useValue: this.layer },
60
- FloatingRef
62
+ FloatingRef,
63
+ ...this.#providers
61
64
  ];
62
65
  return providers;
63
66
  }
64
67
  position(options) {
65
68
  return this.trait(position(options));
66
69
  }
70
+ provides(providers) {
71
+ if (Array.isArray(providers)) {
72
+ this.#providers = [...this.#providers, ...providers];
73
+ }
74
+ else {
75
+ this.#providers = [...this.#providers, providers];
76
+ }
77
+ return this;
78
+ }
67
79
  }
68
80
  export class FloatingTemplateFactory extends FloatingFactory {
69
81
  constructor(layer, tpl, options) {
@@ -120,4 +132,4 @@ export class FloatingService {
120
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FloatingService, decorators: [{
121
133
  type: Injectable
122
134
  }] });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy9mbG9hdGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVyRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRSxPQUFPLEVBQWdDLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUUxRSx5RkFBeUY7QUFFekYsTUFBTSxPQUFnQixlQUFlO0lBR2pDLFlBQStCLEtBQW1CO1FBQW5CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFGL0IsV0FBTSxHQUFxQyxFQUFFLENBQUE7UUErQ2hFLGNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7SUE3Q1QsQ0FBQztJQUV0RCxLQUFLLENBQUMsR0FBRyxNQUE4QztRQUNuRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQTtZQUNuQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9B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Q0ksS0FBbUIsRUFDSCxTQUFZLEVBQ1osT0FBa0M7UUFFbEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBSEksY0FBUyxHQUFULFNBQVMsQ0FBRztRQUNaLFlBQU8sR0FBUCxPQUFPLENBQTJCO0lBR3RELENBQUM7SUFFa0IsTUFBTTtRQUNyQixNQUFNLE9BQU8sR0FBOEIsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUM5RCxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN4RSxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzlDLENBQUM7Q0FDSjtBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBQ2YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQU90QyxJQUFJLENBQUksS0FBd0MsRUFBRSxJQUFTO1FBQ3ZELElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN4RSxDQUFDO0lBQ0wsQ0FBQzs4R0FkUSxlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIlxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQcm92aWRlciwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliZXIgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gXCIuLi9sYXllci9sYXllci5zZXJ2aWNlXCJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbE9wdGlvbnMsIFRlbXBsYXRlUG9ydGFsT3B0aW9ucyB9IGZyb20gXCIuLi9sYXllci9wb3J0YWwtcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nQ2hhbm5lbCwgRmxvYXRpbmdSZWYsIFRSQUlUUyB9IGZyb20gXCIuL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyB0eXBlIEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi90cmFpdHMvX2Jhc2VcIlxuaW1wb3J0IHsgdHlwZSBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucywgcG9zaXRpb24gfSBmcm9tIFwiLi90cmFpdHMvcG9zaXRpb25cIlxuXG4vLyBleHBvcnQgdHlwZSBGbG9hdGluZ1RyYWl0ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiAodHJhaXRzOiBvYmplY3QpID0+IE9ic2VydmFibGU8b2JqZWN0PlxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmxvYXRpbmdGYWN0b3J5IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhaXRzOiB7IFtrZXk6IHN0cmluZ106IEZsb2F0aW5nVHJhaXQgfSA9IHt9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgbGF5ZXI6IExheWVyU2VydmljZSkge31cblxuICAgIHRyYWl0KC4uLnRyYWl0czogQXJyYXk8RmxvYXRpbmdUcmFpdCB8IEZsb2F0aW5nVHJhaXRbXT4pIHtcbiAgICAgICAgZm9yIChjb25zdCB0cmFpdCBvZiB0cmFpdHMpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRyYWl0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhaXQoLi4udHJhaXQpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhaXRzW3RyYWl0Lm5hbWVdID0gdHJhaXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgc2hvdygpOiBPYnNlcnZhYmxlPEZsb2F0aW5nQ2hhbm5lbD4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGRlc3Q6IFN1YnNjcmliZXI8RmxvYXRpbmdDaGFubmVsPikgPT4ge1xuICAgICAgICAgICAgbGV0IGRpc3Bvc2VkID0gZmFsc2VcblxuICAgICAgICAgICAgY29uc3QgcmVmID0gdGhpcy5jcmVhdGUoKVxuICAgICAgICAgICAgY29uc3QgY2hhbm5lbFN1YiA9IHJlZi5jaGFubmVsLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgZGVzdC5uZXh0KGV2ZW50KVxuICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBcImRpc3Bvc2VkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcG9zZWQgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGRlc3QuY29tcGxldGUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHNob3dTdWIgPSByZWYuc2hvdygpLnN1YnNjcmliZSgpXG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2hvd1N1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgY2hhbm5lbFN1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgaWYgKCFkaXNwb3NlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwb3NlJCA9IHJlZi5jaGFubmVsLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJkaXNwb3NlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcG9zZSQudW5zdWJzY3JpYmUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRlU3ViID0gcmVmLmhpZGUoKS5zdWJzY3JpYmUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBzdWJzY3JpYmUgPSAoLi4uYXJnczogYW55W10pID0+IHRoaXMuc2hvdygpLnN1YnNjcmliZSguLi5hcmdzKVxuXG4gICAgcHJvdGVjdGVkIHByb3ZpZGVycyhwcm92aWRlcnM/OiBQcm92aWRlcltdKTogUHJvdmlkZXJbXSB7XG4gICAgICAgIGlmICghcHJvdmlkZXJzKSB7XG4gICAgICAgICAgICBwcm92aWRlcnMgPSBbXVxuICAgICAgICB9XG5cbiAgICAgICAgcHJvdmlkZXJzID0gW1xuICAgICAgICAgICAgLi4ucHJvdmlkZXJzLFxuICAgICAgICAgICAgeyBwcm92aWRlOiBUUkFJVFMsIHVzZVZhbHVlOiB0aGlzLnRyYWl0cyB9LFxuICAgICAgICAgICAgeyBwcm92aWRlOiBMYXllclNlcnZpY2UsIHVzZVZhbHVlOiB0aGlzLmxheWVyIH0sXG4gICAgICAgICAgICBGbG9hdGluZ1JlZlxuICAgICAgICBdXG5cbiAgICAgICAgcmV0dXJuIHByb3ZpZGVyc1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGUoKTogRmxvYXRpbmdSZWY8RmxvYXRpbmdDaGFubmVsPlxuXG4gICAgcG9zaXRpb24ob3B0aW9uczogRmxvYXRpbmdQb3NpdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhaXQocG9zaXRpb24ob3B0aW9ucykpXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdUZW1wbGF0ZUZhY3Rvcnk8VCBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBGbG9hdGluZ0ZhY3Rvcnkge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBsYXllcjogTGF5ZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdHBsOiBUZW1wbGF0ZVJlZjxUPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnM6IFRlbXBsYXRlUG9ydGFsT3B0aW9uczxUPlxuICAgICkge1xuICAgICAgICBzdXBlcihsYXllcilcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlKCk6IEZsb2F0aW5nUmVmPEZsb2F0aW5nQ2hhbm5lbD4ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBUZW1wbGF0ZVBvcnRhbE9wdGlvbnM8VD4gPSB7IC4uLnRoaXMub3B0aW9ucyB9XG4gICAgICAgIG9wdGlvbnMucHJvdmlkZXJzID0gdGhpcy5wcm92aWRlcnMob3B0aW9ucy5wcm92aWRlcnMpXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMubGF5ZXIubmV3VGVtcGxhdGVQb3J0YWwodGhpcy50cGwsIG9wdGlvbnMpXG4gICAgICAgIHJldHVybiBjb250YWluZXIuaW5qZWN0b3IuZ2V0KEZsb2F0aW5nUmVmKVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nQ29tcG9uZW50RmFjdG9yeTxUIGV4dGVuZHMgQ29tcG9uZW50VHlwZTxhbnk+PiBleHRlbmRzIEZsb2F0aW5nRmFjdG9yeSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGxheWVyOiBMYXllclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjb21wb25lbnQ6IFQsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGxheWVyKVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGUoKTogRmxvYXRpbmdSZWY8RmxvYXRpbmdDaGFubmVsPiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IENvbXBvbmVudFBvcnRhbE9wdGlvbnM8VD4gPSB7IC4uLnRoaXMub3B0aW9ucyB9XG4gICAgICAgIG9wdGlvbnMucHJvdmlkZXJzID0gdGhpcy5wcm92aWRlcnMob3B0aW9ucy5wcm92aWRlcnMpXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMubGF5ZXIubmV3Q29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50LCBvcHRpb25zKVxuICAgICAgICByZXR1cm4gY29udGFpbmVyLmluamVjdG9yLmdldChGbG9hdGluZ1JlZilcbiAgICB9XG59XG5cbi8qKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIFNvbWVDb21wb25lbnQge31cbiAqXG4gKiBjbGFzcyBTb21lTGlzdCB7XG4gKiAgICAgIHJlYWRvbmx5IGZsb2F0aW5nID0gaW5qZWN0KEZsb2F0aW5nU2VydmljZSlcbiAqXG4gKiAgICAgIHNob3dDb21wb25lbnQoKSB7XG4gKiAgICAgICAgICB0aGlzLmZsb2F0aW5nLmZyb20oU29tZUNvbXBvbmVudCkudHJhaXRzKHBvc2l0aW9uKCksIGJhY2tkcm9wKCkpLnN1YnNjcmliZSgpXG4gKiAgICAgIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdTZXJ2aWNlIHtcbiAgICByZWFkb25seSAjbGF5ZXIgPSBpbmplY3QoTGF5ZXJTZXJ2aWNlKVxuICAgIC8vIHJlYWRvbmx5IHBhcmVudCA9IGluamVjdChGbG9hdGluZ1JlZiwgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSlcblxuICAgIGZyb208VCBleHRlbmRzIENvbXBvbmVudFR5cGU8YW55Pj4oY29tcG9uZW50OiBULCBvcHRzPzogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPik6IEZsb2F0aW5nQ29tcG9uZW50RmFjdG9yeTxUPlxuXG4gICAgZnJvbTxUIGV4dGVuZHMgb2JqZWN0Pih0cGw6IFRlbXBsYXRlUmVmPFQ+LCBvcHRzPzogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+KTogRmxvYXRpbmdUZW1wbGF0ZUZhY3Rvcnk8VD5cblxuICAgIGZyb208VD4odmFsdWU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPiwgb3B0czogYW55KTogRmxvYXRpbmdGYWN0b3J5IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmxvYXRpbmdUZW1wbGF0ZUZhY3RvcnkodGhpcy4jbGF5ZXIsIHZhbHVlIGFzIGFueSwgb3B0cylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmxvYXRpbmdDb21wb25lbnRGYWN0b3J5KHRoaXMuI2xheWVyLCB2YWx1ZSBhcyBhbnksIG9wdHMpXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy9mbG9hdGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVyRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRSxPQUFPLEVBQWdDLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUUxRSx5RkFBeUY7QUFFekYsTUFBTSxPQUFnQixlQUFlO0lBR2pDLFVBQVUsQ0FBaUI7SUFFM0IsWUFBK0IsS0FBbUI7UUFBbkIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUovQixXQUFNLEdBQXFDLEVBQUUsQ0FBQTtRQUVoRSxlQUFVLEdBQWUsRUFBRSxDQUFBO1FBK0MzQixjQUFTLEdBQTZDLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQTdDbkQsQ0FBQztJQUV0RCxLQUFLLENBQUMsR0FBRyxNQUE4QztRQUNuRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FB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SyxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN4RSxDQUFDO0lBQ0wsQ0FBQzs4R0FkUSxlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIlxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQcm92aWRlciwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliZXIgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gXCIuLi9sYXllci9sYXllci5zZXJ2aWNlXCJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbE9wdGlvbnMsIFRlbXBsYXRlUG9ydGFsT3B0aW9ucyB9IGZyb20gXCIuLi9sYXllci9wb3J0YWwtcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nQ2hhbm5lbCwgRmxvYXRpbmdSZWYsIFRSQUlUUyB9IGZyb20gXCIuL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyB0eXBlIEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi90cmFpdHMvX2Jhc2VcIlxuaW1wb3J0IHsgdHlwZSBGbG9hdGluZ1Bvc2l0aW9uT3B0aW9ucywgcG9zaXRpb24gfSBmcm9tIFwiLi90cmFpdHMvcG9zaXRpb25cIlxuXG4vLyBleHBvcnQgdHlwZSBGbG9hdGluZ1RyYWl0ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiAodHJhaXRzOiBvYmplY3QpID0+IE9ic2VydmFibGU8b2JqZWN0PlxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmxvYXRpbmdGYWN0b3J5IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhaXRzOiB7IFtrZXk6IHN0cmluZ106IEZsb2F0aW5nVHJhaXQgfSA9IHt9XG5cbiAgICAjcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW11cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBsYXllcjogTGF5ZXJTZXJ2aWNlKSB7fVxuXG4gICAgdHJhaXQoLi4udHJhaXRzOiBBcnJheTxGbG9hdGluZ1RyYWl0IHwgRmxvYXRpbmdUcmFpdFtdPikge1xuICAgICAgICBmb3IgKGNvbnN0IHRyYWl0IG9mIHRyYWl0cykge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodHJhaXQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpdCguLi50cmFpdClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpdHNbdHJhaXQubmFtZV0gPSB0cmFpdFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBzaG93KCk6IE9ic2VydmFibGU8RmxvYXRpbmdDaGFubmVsPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZGVzdDogU3Vic2NyaWJlcjxGbG9hdGluZ0NoYW5uZWw+KSA9PiB7XG4gICAgICAgICAgICBsZXQgZGlzcG9zZWQgPSBmYWxzZVxuXG4gICAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLmNyZWF0ZSgpXG4gICAgICAgICAgICBjb25zdCBjaGFubmVsU3ViID0gcmVmLmNoYW5uZWwuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBkZXN0Lm5leHQoZXZlbnQpXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiZGlzcG9zZWRcIikge1xuICAgICAgICAgICAgICAgICAgICBkaXNwb3NlZCA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgZGVzdC5jb21wbGV0ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3Qgc2hvd1N1YiA9IHJlZi5zaG93KCkuc3Vic2NyaWJlKClcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzaG93U3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgICAgICBjaGFubmVsU3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgICAgICBpZiAoIWRpc3Bvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3Bvc2UkID0gcmVmLmNoYW5uZWwuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBcImRpc3Bvc2VkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlU3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwb3NlJC51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGVTdWIgPSByZWYuaGlkZSgpLnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHN1YnNjcmliZTogT2JzZXJ2YWJsZTxGbG9hdGluZ0NoYW5uZWw+W1wic3Vic2NyaWJlXCJdID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLnNob3coKS5zdWJzY3JpYmUoLi4uYXJncylcblxuICAgIHByb3RlY3RlZCBwcm92aWRlcnMocHJvdmlkZXJzPzogUHJvdmlkZXJbXSk6IFByb3ZpZGVyW10ge1xuICAgICAgICBpZiAoIXByb3ZpZGVycykge1xuICAgICAgICAgICAgcHJvdmlkZXJzID0gW11cbiAgICAgICAgfVxuXG4gICAgICAgIHByb3ZpZGVycyA9IFtcbiAgICAgICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogVFJBSVRTLCB1c2VWYWx1ZTogdGhpcy50cmFpdHMgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5sYXllciB9LFxuICAgICAgICAgICAgRmxvYXRpbmdSZWYsXG4gICAgICAgICAgICAuLi50aGlzLiNwcm92aWRlcnNcbiAgICAgICAgXVxuXG4gICAgICAgIHJldHVybiBwcm92aWRlcnNcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlKCk6IEZsb2F0aW5nUmVmPEZsb2F0aW5nQ2hhbm5lbD5cblxuICAgIHBvc2l0aW9uKG9wdGlvbnM6IEZsb2F0aW5nUG9zaXRpb25PcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0KHBvc2l0aW9uKG9wdGlvbnMpKVxuICAgIH1cblxuICAgIHByb3ZpZGVzKHByb3ZpZGVyczogUHJvdmlkZXIgfCBQcm92aWRlcltdKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3ZpZGVycykpIHtcbiAgICAgICAgICAgIHRoaXMuI3Byb3ZpZGVycyA9IFsuLi50aGlzLiNwcm92aWRlcnMsIC4uLnByb3ZpZGVyc11cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI3Byb3ZpZGVycyA9IFsuLi50aGlzLiNwcm92aWRlcnMsIHByb3ZpZGVyc11cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpc1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nVGVtcGxhdGVGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgRmxvYXRpbmdGYWN0b3J5IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbGF5ZXI6IExheWVyU2VydmljZSxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHRwbDogVGVtcGxhdGVSZWY8VD4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBUZW1wbGF0ZVBvcnRhbE9wdGlvbnM8VD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIobGF5ZXIpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZSgpOiBGbG9hdGluZ1JlZjxGbG9hdGluZ0NoYW5uZWw+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+ID0geyAuLi50aGlzLm9wdGlvbnMgfVxuICAgICAgICBvcHRpb25zLnByb3ZpZGVycyA9IHRoaXMucHJvdmlkZXJzKG9wdGlvbnMucHJvdmlkZXJzKVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmxheWVyLm5ld1RlbXBsYXRlUG9ydGFsKHRoaXMudHBsLCBvcHRpb25zKVxuICAgICAgICByZXR1cm4gY29udGFpbmVyLmluamVjdG9yLmdldChGbG9hdGluZ1JlZilcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdGluZ0NvbXBvbmVudEZhY3Rvcnk8VCBleHRlbmRzIENvbXBvbmVudFR5cGU8YW55Pj4gZXh0ZW5kcyBGbG9hdGluZ0ZhY3Rvcnkge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBsYXllcjogTGF5ZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50OiBULFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogQ29tcG9uZW50UG9ydGFsT3B0aW9uczxUPlxuICAgICkge1xuICAgICAgICBzdXBlcihsYXllcilcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlKCk6IEZsb2F0aW5nUmVmPEZsb2F0aW5nQ2hhbm5lbD4ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+ID0geyAuLi50aGlzLm9wdGlvbnMgfVxuICAgICAgICBvcHRpb25zLnByb3ZpZGVycyA9IHRoaXMucHJvdmlkZXJzKG9wdGlvbnMucHJvdmlkZXJzKVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmxheWVyLm5ld0NvbXBvbmVudFBvcnRhbCh0aGlzLmNvbXBvbmVudCwgb3B0aW9ucylcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5pbmplY3Rvci5nZXQoRmxvYXRpbmdSZWYpXG4gICAgfVxufVxuXG4vKipcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBTb21lQ29tcG9uZW50IHt9XG4gKlxuICogY2xhc3MgU29tZUxpc3Qge1xuICogICAgICByZWFkb25seSBmbG9hdGluZyA9IGluamVjdChGbG9hdGluZ1NlcnZpY2UpXG4gKlxuICogICAgICBzaG93Q29tcG9uZW50KCkge1xuICogICAgICAgICAgdGhpcy5mbG9hdGluZy5mcm9tKFNvbWVDb21wb25lbnQpLnRyYWl0cyhwb3NpdGlvbigpLCBiYWNrZHJvcCgpKS5zdWJzY3JpYmUoKVxuICogICAgICB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nU2VydmljZSB7XG4gICAgcmVhZG9ubHkgI2xheWVyID0gaW5qZWN0KExheWVyU2VydmljZSlcbiAgICAvLyByZWFkb25seSBwYXJlbnQgPSBpbmplY3QoRmxvYXRpbmdSZWYsIHsgc2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pXG5cbiAgICBmcm9tPFQgZXh0ZW5kcyBDb21wb25lbnRUeXBlPGFueT4+KGNvbXBvbmVudDogVCwgb3B0cz86IENvbXBvbmVudFBvcnRhbE9wdGlvbnM8VD4pOiBGbG9hdGluZ0NvbXBvbmVudEZhY3Rvcnk8VD5cblxuICAgIGZyb208VCBleHRlbmRzIG9iamVjdD4odHBsOiBUZW1wbGF0ZVJlZjxUPiwgb3B0cz86IFRlbXBsYXRlUG9ydGFsT3B0aW9uczxUPik6IEZsb2F0aW5nVGVtcGxhdGVGYWN0b3J5PFQ+XG5cbiAgICBmcm9tPFQ+KHZhbHVlOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sIG9wdHM6IGFueSk6IEZsb2F0aW5nRmFjdG9yeSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0aW5nVGVtcGxhdGVGYWN0b3J5KHRoaXMuI2xheWVyLCB2YWx1ZSBhcyBhbnksIG9wdHMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0aW5nQ29tcG9uZW50RmFjdG9yeSh0aGlzLiNsYXllciwgdmFsdWUgYXMgYW55LCBvcHRzKVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { animate, AnimationBuilder, style } from "@angular/animations";
2
+ import { Observable } from "rxjs";
3
+ import { animationObservable } from "@ngutil/graphics";
4
+ import { Duration, Ease } from "@ngutil/style";
5
+ import { FloatingTrait } from "./_base";
6
+ // https://tympanus.net/Development/ModalWindowEffects/
7
+ const transitionDuration = Duration.FastMs;
8
+ export class AnimationTrait extends FloatingTrait {
9
+ constructor(animation) {
10
+ super();
11
+ this.animation = animation;
12
+ this.name = "animation";
13
+ }
14
+ connect(floatingRef) {
15
+ return new Observable((dst) => {
16
+ const builder = floatingRef.container.injector.get(AnimationBuilder);
17
+ const element = floatingRef.container.nativeElement;
18
+ floatingRef.state.on("showing", () => animationObservable({ builder, element, animation: this.animation.show }));
19
+ floatingRef.state.on("disposing", () => animationObservable({ builder, element, animation: this.animation.hide }));
20
+ dst.next();
21
+ });
22
+ }
23
+ }
24
+ export const FallAnimation = {
25
+ show: [
26
+ style({
27
+ // "perspective:": "1300px",
28
+ transform: "scale(1.5)",
29
+ visibility: "visible",
30
+ opacity: "0"
31
+ }),
32
+ animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({
33
+ transform: "scale(1)",
34
+ opacity: "1"
35
+ }))
36
+ ],
37
+ hide: [
38
+ animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({
39
+ transform: "scale(1.5)",
40
+ visibility: "visible",
41
+ opacity: "0"
42
+ }))
43
+ ]
44
+ };
45
+ export function fallAnimation() {
46
+ return new AnimationTrait(FallAnimation);
47
+ }
48
+ export const FadeAnimation = {
49
+ show: [style({ opacity: 0 }), animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({ opacity: 1 }))],
50
+ hide: [animate(`${transitionDuration}ms ${Ease.Deceleration}`, style({ opacity: 0 }))]
51
+ };
52
+ export function fadeAnimation() {
53
+ return new AnimationTrait(FadeAnimation);
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nL3RyYWl0cy9hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUIsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFekYsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBSXZDLHVEQUF1RDtBQUV2RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUE7QUFFMUMsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFzQjtJQUd0RCxZQUFxQixTQUF1QjtRQUN4QyxLQUFLLEVBQUUsQ0FBQTtRQURVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFGbkMsU0FBSSxHQUFHLFdBQVcsQ0FBQTtJQUkzQixDQUFDO0lBRVEsT0FBTyxDQUFDLFdBQXdCO1FBQ3JDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUF3QixFQUFFLEVBQUU7WUFDL0MsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFDcEUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUE7WUFDbkQsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUNqQyxtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDNUUsQ0FBQTtZQUNELFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FDbkMsbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzVFLENBQUE7WUFDRCxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDZCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDSjtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBaUI7SUFDdkMsSUFBSSxFQUFFO1FBQ0YsS0FBSyxDQUFDO1lBQ0YsNEJBQTRCO1lBQzVCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLE9BQU8sRUFBRSxHQUFHO1NBQ2YsQ0FBQztRQUNGLE9BQU8sQ0FDSCxHQUFHLGtCQUFrQixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFDOUMsS0FBSyxDQUFDO1lBQ0YsU0FBUyxFQUFFLFVBQVU7WUFDckIsT0FBTyxFQUFFLEdBQUc7U0FDZixDQUFDLENBQ0w7S0FDSjtJQUNELElBQUksRUFBRTtRQUNGLE9BQU8sQ0FDSCxHQUFHLGtCQUFrQixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFDOUMsS0FBSyxDQUFDO1lBQ0YsU0FBUyxFQUFFLFlBQVk7WUFDdkIsVUFBVSxFQUFFLFNBQVM7WUFDckIsT0FBTyxFQUFFLEdBQUc7U0FDZixDQUFDLENBQ0w7S0FDSjtDQUNKLENBQUE7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUN6QixPQUFPLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQzVDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWlCO0lBQ3ZDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLGtCQUFrQixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLGtCQUFrQixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0NBQ3pGLENBQUE7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUN6QixPQUFPLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25NZXRhZGF0YSwgc3R5bGUgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliZXIgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IGFuaW1hdGlvbk9ic2VydmFibGUgfSBmcm9tIFwiQG5ndXRpbC9ncmFwaGljc1wiXG5pbXBvcnQgeyBEdXJhdGlvbiwgRWFzZSB9IGZyb20gXCJAbmd1dGlsL3N0eWxlXCJcblxuaW1wb3J0IHsgRmxvYXRpbmdSZWYgfSBmcm9tIFwiLi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi9fYmFzZVwiXG5cbmV4cG9ydCB0eXBlIEFuaW1hdGlvblNldCA9IHsgc2hvdzogQW5pbWF0aW9uTWV0YWRhdGFbXTsgaGlkZTogQW5pbWF0aW9uTWV0YWRhdGFbXSB9XG5cbi8vIGh0dHBzOi8vdHltcGFudXMubmV0L0RldmVsb3BtZW50L01vZGFsV2luZG93RWZmZWN0cy9cblxuY29uc3QgdHJhbnNpdGlvbkR1cmF0aW9uID0gRHVyYXRpb24uRmFzdE1zXG5cbmV4cG9ydCBjbGFzcyBBbmltYXRpb25UcmFpdCBleHRlbmRzIEZsb2F0aW5nVHJhaXQ8dW5rbm93bj4ge1xuICAgIG92ZXJyaWRlIG5hbWUgPSBcImFuaW1hdGlvblwiXG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBhbmltYXRpb246IEFuaW1hdGlvblNldCkge1xuICAgICAgICBzdXBlcigpXG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY29ubmVjdChmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWYpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8dW5rbm93bj4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmbG9hdGluZ1JlZi5jb250YWluZXIuaW5qZWN0b3IuZ2V0KEFuaW1hdGlvbkJ1aWxkZXIpXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIGZsb2F0aW5nUmVmLnN0YXRlLm9uKFwic2hvd2luZ1wiLCAoKSA9PlxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9ic2VydmFibGUoeyBidWlsZGVyLCBlbGVtZW50LCBhbmltYXRpb246IHRoaXMuYW5pbWF0aW9uLnNob3cgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGZsb2F0aW5nUmVmLnN0YXRlLm9uKFwiZGlzcG9zaW5nXCIsICgpID0+XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uT2JzZXJ2YWJsZSh7IGJ1aWxkZXIsIGVsZW1lbnQsIGFuaW1hdGlvbjogdGhpcy5hbmltYXRpb24uaGlkZSB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgZHN0Lm5leHQoKVxuICAgICAgICB9KVxuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IEZhbGxBbmltYXRpb246IEFuaW1hdGlvblNldCA9IHtcbiAgICBzaG93OiBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIC8vIFwicGVyc3BlY3RpdmU6XCI6IFwiMTMwMHB4XCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoMS41KVwiLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJ2aXNpYmxlXCIsXG4gICAgICAgICAgICBvcGFjaXR5OiBcIjBcIlxuICAgICAgICB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgIGAke3RyYW5zaXRpb25EdXJhdGlvbn1tcyAke0Vhc2UuRGVjZWxlcmF0aW9ufWAsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEpXCIsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogXCIxXCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICBdLFxuICAgIGhpZGU6IFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgIGAke3RyYW5zaXRpb25EdXJhdGlvbn1tcyAke0Vhc2UuRGVjZWxlcmF0aW9ufWAsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEuNSlcIixcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcInZpc2libGVcIixcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiBcIjBcIlxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIF1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZhbGxBbmltYXRpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBBbmltYXRpb25UcmFpdChGYWxsQW5pbWF0aW9uKVxufVxuXG5leHBvcnQgY29uc3QgRmFkZUFuaW1hdGlvbjogQW5pbWF0aW9uU2V0ID0ge1xuICAgIHNob3c6IFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoYCR7dHJhbnNpdGlvbkR1cmF0aW9ufW1zICR7RWFzZS5EZWNlbGVyYXRpb259YCwgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKV0sXG4gICAgaGlkZTogW2FuaW1hdGUoYCR7dHJhbnNpdGlvbkR1cmF0aW9ufW1zICR7RWFzZS5EZWNlbGVyYXRpb259YCwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZhZGVBbmltYXRpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBBbmltYXRpb25UcmFpdChGYWRlQW5pbWF0aW9uKVxufVxuIl19
@@ -0,0 +1,78 @@
1
+ import { AnimationBuilder } from "@angular/animations";
2
+ import { exhaustMap, map, Observable, Subject } from "rxjs";
3
+ import { animationObservable } from "@ngutil/graphics";
4
+ import { FloatingTrait } from "./_base";
5
+ import { FadeAnimation } from "./animation";
6
+ export class BackdropState {
7
+ constructor() {
8
+ this.onClick = new Subject();
9
+ }
10
+ }
11
+ export class BackdropTrait extends FloatingTrait {
12
+ constructor(options) {
13
+ super();
14
+ this.options = options;
15
+ this.name = "backdrop";
16
+ }
17
+ connect(floatingRef) {
18
+ return new Observable((dest) => {
19
+ const animationBuilder = floatingRef.container.injector.get(AnimationBuilder);
20
+ const options = {
21
+ type: this.options.type,
22
+ under: floatingRef.container,
23
+ color: this.options.color
24
+ };
25
+ if (this.options.type === "crop") {
26
+ ;
27
+ options.crop = floatingRef
28
+ .watchTrait("position")
29
+ .pipe(map(position => position.anchor));
30
+ }
31
+ const state = new BackdropState();
32
+ const backdrop = floatingRef.layerSvc.newBackdrop(options);
33
+ const removeOnClick = this.options.closeOnClick
34
+ ? this.#installClickHandler(floatingRef, backdrop, state)
35
+ : null;
36
+ const onClickSub = this.options.closeOnClick
37
+ ? state.onClick.pipe(exhaustMap(() => floatingRef.close())).subscribe()
38
+ : null;
39
+ backdrop.state.on("showing", () => animationObservable({
40
+ builder: animationBuilder,
41
+ element: backdrop.nativeElement,
42
+ animation: FadeAnimation.show
43
+ }));
44
+ backdrop.state.on("disposing", () => animationObservable({
45
+ builder: animationBuilder,
46
+ element: backdrop.nativeElement,
47
+ animation: FadeAnimation.hide
48
+ }));
49
+ floatingRef.state.on("disposing", () => backdrop.dispose());
50
+ const backdropShowSub = backdrop.show().subscribe();
51
+ dest.next(state);
52
+ return () => {
53
+ removeOnClick && removeOnClick();
54
+ onClickSub?.unsubscribe();
55
+ backdropShowSub.unsubscribe();
56
+ };
57
+ });
58
+ }
59
+ #installClickHandler(floatingRef, backdrop, state) {
60
+ const handler = (event) => {
61
+ if (event.defaultPrevented) {
62
+ return;
63
+ }
64
+ if (event.target === backdrop.nativeElement || backdrop.nativeElement.contains(event.target)) {
65
+ ;
66
+ state.onClick.next();
67
+ }
68
+ };
69
+ document.addEventListener("click", handler);
70
+ return () => {
71
+ document.removeEventListener("click", handler);
72
+ };
73
+ }
74
+ }
75
+ export function backdrop(options) {
76
+ return new BackdropTrait(options);
77
+ }
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL2JhY2tkcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFJdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBVTNDLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0ksWUFBTyxHQUFxQixJQUFJLE9BQU8sRUFBUSxDQUFBO0lBQ25ELENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBNEI7SUFHM0QsWUFBcUIsT0FBNkI7UUFDOUMsS0FBSyxFQUFFLENBQUE7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUZ6QyxTQUFJLEdBQUcsVUFBVSxDQUFBO0lBSTFCLENBQUM7SUFFUSxPQUFPLENBQUMsV0FBNkI7UUFDMUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLElBQStCLEVBQUUsRUFBRTtZQUN0RCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQzdFLE1BQU0sT0FBTyxHQUFvQjtnQkFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDdkIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxTQUFTO2dCQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2FBQ3JC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LG1CQUFtQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNsRCxDQUFDLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLE9BQTZCO0lBQ2xELE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiXG5cbmltcG9ydCB7IGV4aGF1c3RNYXAsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaWJlciB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgYW5pbWF0aW9uT2JzZXJ2YWJsZSB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcblxuaW1wb3J0IHR5cGUgeyBCYWNrZHJvcE9wdGlvbnMsIEJhY2tkcm9wUmVmLCBDcm9wQmFja2Ryb3BPcHRpb25zIH0gZnJvbSBcIi4uLy4uL2xheWVyL2JhY2tkcm9wLXJlZlwiXG5pbXBvcnQgeyB0eXBlIEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vX2Jhc2VcIlxuaW1wb3J0IHsgRmFkZUFuaW1hdGlvbiB9IGZyb20gXCIuL2FuaW1hdGlvblwiXG5pbXBvcnQgeyBGbG9hdGluZ1Bvc2l0aW9uIH0gZnJvbSBcIi4vcG9zaXRpb25cIlxuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2tkcm9wVHJhaXRPcHRpb25zIHtcbiAgICB0eXBlOiBCYWNrZHJvcE9wdGlvbnNbXCJ0eXBlXCJdXG4gICAgY29sb3I6IEJhY2tkcm9wT3B0aW9uc1tcImNvbG9yXCJdXG4gICAgY2xvc2VPbkNsaWNrPzogYm9vbGVhblxuICAgIC8vIFRPRE86IG1heWJlIGNyb3BNYXJnaW5cbn1cblxuZXhwb3J0IGNsYXNzIEJhY2tkcm9wU3RhdGUge1xuICAgIG9uQ2xpY2s6IE9ic2VydmFibGU8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpXG59XG5cbmV4cG9ydCBjbGFzcyBCYWNrZHJvcFRyYWl0IGV4dGVuZHMgRmxvYXRpbmdUcmFpdDxCYWNrZHJvcFN0YXRlPiB7XG4gICAgb3ZlcnJpZGUgbmFtZSA9IFwiYmFja2Ryb3BcIlxuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgb3B0aW9uczogQmFja2Ryb3BUcmFpdE9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoKVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGNvbm5lY3QoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmPGFueT4pOiBPYnNlcnZhYmxlPEJhY2tkcm9wU3RhdGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkZXN0OiBTdWJzY3JpYmVyPEJhY2tkcm9wU3RhdGU+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhbmltYXRpb25CdWlsZGVyID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLmluamVjdG9yLmdldChBbmltYXRpb25CdWlsZGVyKVxuICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogQmFja2Ryb3BPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMub3B0aW9ucy50eXBlLFxuICAgICAgICAgICAgICAgIHVuZGVyOiBmbG9hdGluZ1JlZi5jb250YWluZXIsXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoaXMub3B0aW9ucy5jb2xvclxuICAgICAgICAgICAgfSBhcyBhbnlcblxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy50eXBlID09PSBcImNyb3BcIikge1xuICAgICAgICAgICAgICAgIDsob3B0aW9ucyBhcyBDcm9wQmFja2Ryb3BPcHRpb25zKS5jcm9wID0gZmxvYXRpbmdSZWZcbiAgICAgICAgICAgICAgICAgICAgLndhdGNoVHJhaXQ8RmxvYXRpbmdQb3NpdGlvbj4oXCJwb3NpdGlvblwiKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShtYXAocG9zaXRpb24gPT4gcG9zaXRpb24uYW5jaG9yKSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBuZXcgQmFja2Ryb3BTdGF0ZSgpXG4gICAgICAgICAgICBjb25zdCBiYWNrZHJvcCA9IGZsb2F0aW5nUmVmLmxheWVyU3ZjLm5ld0JhY2tkcm9wKG9wdGlvbnMpXG4gICAgICAgICAgICBjb25zdCByZW1vdmVPbkNsaWNrID0gdGhpcy5vcHRpb25zLmNsb3NlT25DbGlja1xuICAgICAgICAgICAgICAgID8gdGhpcy4jaW5zdGFsbENsaWNrSGFuZGxlcihmbG9hdGluZ1JlZiwgYmFja2Ryb3AsIHN0YXRlKVxuICAgICAgICAgICAgICAgIDogbnVsbFxuXG4gICAgICAgICAgICBjb25zdCBvbkNsaWNrU3ViID0gdGhpcy5vcHRpb25zLmNsb3NlT25DbGlja1xuICAgICAgICAgICAgICAgID8gc3RhdGUub25DbGljay5waXBlKGV4aGF1c3RNYXAoKCkgPT4gZmxvYXRpbmdSZWYuY2xvc2UoKSkpLnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgOiBudWxsXG5cbiAgICAgICAgICAgIGJhY2tkcm9wLnN0YXRlLm9uKFwic2hvd2luZ1wiLCAoKSA9PlxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9ic2VydmFibGUoe1xuICAgICAgICAgICAgICAgICAgICBidWlsZGVyOiBhbmltYXRpb25CdWlsZGVyLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBiYWNrZHJvcC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IEZhZGVBbmltYXRpb24uc2hvd1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBiYWNrZHJvcC5zdGF0ZS5vbihcImRpc3Bvc2luZ1wiLCAoKSA9PlxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9ic2VydmFibGUoe1xuICAgICAgICAgICAgICAgICAgICBidWlsZGVyOiBhbmltYXRpb25CdWlsZGVyLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBiYWNrZHJvcC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IEZhZGVBbmltYXRpb24uaGlkZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGZsb2F0aW5nUmVmLnN0YXRlLm9uKFwiZGlzcG9zaW5nXCIsICgpID0+IGJhY2tkcm9wLmRpc3Bvc2UoKSlcblxuICAgICAgICAgICAgY29uc3QgYmFja2Ryb3BTaG93U3ViID0gYmFja2Ryb3Auc2hvdygpLnN1YnNjcmliZSgpXG4gICAgICAgICAgICBkZXN0Lm5leHQoc3RhdGUpXG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlT25DbGljayAmJiByZW1vdmVPbkNsaWNrKClcbiAgICAgICAgICAgICAgICBvbkNsaWNrU3ViPy51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgYmFja2Ryb3BTaG93U3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAjaW5zdGFsbENsaWNrSGFuZGxlcihmbG9hdGluZ1JlZjogRmxvYXRpbmdSZWY8YW55PiwgYmFja2Ryb3A6IEJhY2tkcm9wUmVmLCBzdGF0ZTogQmFja2Ryb3BTdGF0ZSkge1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBiYWNrZHJvcC5uYXRpdmVFbGVtZW50IHx8IGJhY2tkcm9wLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgOyhzdGF0ZS5vbkNsaWNrIGFzIFN1YmplY3Q8dm9pZD4pLm5leHQoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZXIpXG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVyKVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja2Ryb3Aob3B0aW9uczogQmFja2Ryb3BUcmFpdE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEJhY2tkcm9wVHJhaXQob3B0aW9ucylcbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { Observable } from "rxjs";
2
+ import { FocusService } from "@ngutil/aria";
3
+ import { FloatingTrait } from "./_base";
4
+ export class FocusTrapTrait extends FloatingTrait {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = "focus-trap";
8
+ }
9
+ connect(floatingRef) {
10
+ return new Observable(() => {
11
+ const svc = floatingRef.container.injector.get(FocusService);
12
+ const trap = svc.focusTrap(floatingRef.container.nativeElement);
13
+ const originallyFocused = document.activeElement;
14
+ floatingRef.state.on("shown", () => {
15
+ trap.focusInitialElement();
16
+ });
17
+ return () => {
18
+ trap.destroy();
19
+ originallyFocused && svc.focus(originallyFocused, "program");
20
+ };
21
+ });
22
+ }
23
+ }
24
+ export function focusTrap() {
25
+ return new FocusTrapTrait();
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9mbG9hdGluZy90cmFpdHMvZm9jdXMtdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRWpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUV2QyxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQXNCO0lBQTFEOztRQUNhLFNBQUksR0FBRyxZQUFZLENBQUE7SUFpQmhDLENBQUM7SUFoQlksT0FBTyxDQUFDLFdBQXdCO1FBQ3JDLE9BQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUM1RCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDL0QsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsYUFBNEIsQ0FBQTtZQUUvRCxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUMvQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtZQUM5QixDQUFDLENBQUMsQ0FBQTtZQUVGLE9BQU8sR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtnQkFDZCxpQkFBaUIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQ2hFLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDckIsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFBO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tIFwiQG5ndXRpbC9hcmlhXCJcblxuaW1wb3J0IHsgRmxvYXRpbmdSZWYgfSBmcm9tIFwiLi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi9fYmFzZVwiXG5cbmV4cG9ydCBjbGFzcyBGb2N1c1RyYXBUcmFpdCBleHRlbmRzIEZsb2F0aW5nVHJhaXQ8dW5rbm93bj4ge1xuICAgIG92ZXJyaWRlIG5hbWUgPSBcImZvY3VzLXRyYXBcIlxuICAgIG92ZXJyaWRlIGNvbm5lY3QoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdmMgPSBmbG9hdGluZ1JlZi5jb250YWluZXIuaW5qZWN0b3IuZ2V0KEZvY3VzU2VydmljZSlcbiAgICAgICAgICAgIGNvbnN0IHRyYXAgPSBzdmMuZm9jdXNUcmFwKGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxseUZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50XG5cbiAgICAgICAgICAgIGZsb2F0aW5nUmVmLnN0YXRlLm9uKFwic2hvd25cIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyYXAuZm9jdXNJbml0aWFsRWxlbWVudCgpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyYXAuZGVzdHJveSgpXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxseUZvY3VzZWQgJiYgc3ZjLmZvY3VzKG9yaWdpbmFsbHlGb2N1c2VkLCBcInByb2dyYW1cIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb2N1c1RyYXAoKSB7XG4gICAgcmV0dXJuIG5ldyBGb2N1c1RyYXBUcmFpdCgpXG59XG4iXX0=
@@ -1,3 +1,10 @@
1
- export * from "./position";
1
+ export * from "./_base";
2
+ export * from "./animation";
3
+ export * from "./backdrop";
4
+ export * from "./focus-trap";
5
+ export * from "./keystroke";
6
+ export * from "./modal";
2
7
  export * from "./position-calc";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsaUJBQWlCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9wb3NpdGlvblwiXG5leHBvcnQgKiBmcm9tIFwiLi9wb3NpdGlvbi1jYWxjXCJcbiJdfQ==
8
+ export * from "./position";
9
+ export * from "./style";
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsaUJBQWlCLENBQUE7QUFDL0IsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9fYmFzZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9hbmltYXRpb25cIlxuZXhwb3J0ICogZnJvbSBcIi4vYmFja2Ryb3BcIlxuZXhwb3J0ICogZnJvbSBcIi4vZm9jdXMtdHJhcFwiXG5leHBvcnQgKiBmcm9tIFwiLi9rZXlzdHJva2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbW9kYWxcIlxuZXhwb3J0ICogZnJvbSBcIi4vcG9zaXRpb24tY2FsY1wiXG5leHBvcnQgKiBmcm9tIFwiLi9wb3NpdGlvblwiXG5leHBvcnQgKiBmcm9tIFwiLi9zdHlsZVwiXG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { exhaustMap } from "rxjs";
2
+ import { KeystrokeService } from "@ngutil/aria";
3
+ import { FloatingTrait } from "./_base";
4
+ export class KeystrokeTrait extends FloatingTrait {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = "keystroke";
8
+ }
9
+ connect(floatingRef) {
10
+ const ks = floatingRef.container.injector.get(KeystrokeService);
11
+ return ks
12
+ .watch(floatingRef.container.nativeElement, { key: "Escape", state: "up" })
13
+ .pipe(exhaustMap(() => floatingRef.close()));
14
+ }
15
+ }
16
+ export function keystroke() {
17
+ return new KeystrokeTrait();
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5c3Ryb2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nL3RyYWl0cy9rZXlzdHJva2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUU3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFHL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUV2QyxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQXNCO0lBQTFEOztRQUNhLFNBQUksR0FBRyxXQUFXLENBQUE7SUFPL0IsQ0FBQztJQU5ZLE9BQU8sQ0FBQyxXQUF3QjtRQUNyQyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUMvRCxPQUFPLEVBQUU7YUFDSixLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEQsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDckIsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFBO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGhhdXN0TWFwLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBLZXlzdHJva2VTZXJ2aWNlIH0gZnJvbSBcIkBuZ3V0aWwvYXJpYVwiXG5cbmltcG9ydCB7IEZsb2F0aW5nUmVmIH0gZnJvbSBcIi4uL2Zsb2F0aW5nLXJlZlwiXG5pbXBvcnQgeyBGbG9hdGluZ1RyYWl0IH0gZnJvbSBcIi4vX2Jhc2VcIlxuXG5leHBvcnQgY2xhc3MgS2V5c3Ryb2tlVHJhaXQgZXh0ZW5kcyBGbG9hdGluZ1RyYWl0PHVua25vd24+IHtcbiAgICBvdmVycmlkZSBuYW1lID0gXCJrZXlzdHJva2VcIlxuICAgIG92ZXJyaWRlIGNvbm5lY3QoZmxvYXRpbmdSZWY6IEZsb2F0aW5nUmVmKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgICAgIGNvbnN0IGtzID0gZmxvYXRpbmdSZWYuY29udGFpbmVyLmluamVjdG9yLmdldChLZXlzdHJva2VTZXJ2aWNlKVxuICAgICAgICByZXR1cm4ga3NcbiAgICAgICAgICAgIC53YXRjaChmbG9hdGluZ1JlZi5jb250YWluZXIubmF0aXZlRWxlbWVudCwgeyBrZXk6IFwiRXNjYXBlXCIsIHN0YXRlOiBcInVwXCIgfSlcbiAgICAgICAgICAgIC5waXBlKGV4aGF1c3RNYXAoKCkgPT4gZmxvYXRpbmdSZWYuY2xvc2UoKSkpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24ga2V5c3Ryb2tlKCkge1xuICAgIHJldHVybiBuZXcgS2V5c3Ryb2tlVHJhaXQoKVxufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { fallAnimation } from "./animation";
2
+ import { backdrop } from "./backdrop";
3
+ import { focusTrap } from "./focus-trap";
4
+ import { keystroke } from "./keystroke";
5
+ import { position } from "./position";
6
+ export function modal(options = {}) {
7
+ return [
8
+ position({
9
+ anchor: {
10
+ ref: "viewport",
11
+ align: "center middle"
12
+ },
13
+ placement: {
14
+ ref: "viewport",
15
+ padding: "16px"
16
+ }
17
+ }),
18
+ backdrop({ type: "solid", color: "rgba(0, 0, 0, .3)", closeOnClick: options.closeOnBackdropClick }),
19
+ focusTrap(),
20
+ keystroke(),
21
+ fallAnimation()
22
+ ];
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU1yQyxNQUFNLFVBQVUsS0FBSyxDQUFDLFVBQXdCLEVBQUU7SUFDNUMsT0FBTztRQUNILFFBQVEsQ0FBQztZQUNMLE1BQU0sRUFBRTtnQkFDSixHQUFHLEVBQUUsVUFBVTtnQkFDZixLQUFLLEVBQUUsZUFBZTthQUN6QjtZQUNELFNBQVMsRUFBRTtnQkFDUCxHQUFHLEVBQUUsVUFBVTtnQkFDZixPQUFPLEVBQUUsTUFBTTthQUNsQjtTQUNKLENBQUM7UUFDRixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDbkcsU0FBUyxFQUFFO1FBQ1gsU0FBUyxFQUFFO1FBQ1gsYUFBYSxFQUFFO0tBQ2xCLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmFsbEFuaW1hdGlvbiB9IGZyb20gXCIuL2FuaW1hdGlvblwiXG5pbXBvcnQgeyBiYWNrZHJvcCB9IGZyb20gXCIuL2JhY2tkcm9wXCJcbmltcG9ydCB7IGZvY3VzVHJhcCB9IGZyb20gXCIuL2ZvY3VzLXRyYXBcIlxuaW1wb3J0IHsga2V5c3Ryb2tlIH0gZnJvbSBcIi4va2V5c3Ryb2tlXCJcbmltcG9ydCB7IHBvc2l0aW9uIH0gZnJvbSBcIi4vcG9zaXRpb25cIlxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsT3B0aW9ucyB7XG4gICAgY2xvc2VPbkJhY2tkcm9wQ2xpY2s/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RhbChvcHRpb25zOiBNb2RhbE9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBbXG4gICAgICAgIHBvc2l0aW9uKHtcbiAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICAgIHJlZjogXCJ2aWV3cG9ydFwiLFxuICAgICAgICAgICAgICAgIGFsaWduOiBcImNlbnRlciBtaWRkbGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBsYWNlbWVudDoge1xuICAgICAgICAgICAgICAgIHJlZjogXCJ2aWV3cG9ydFwiLFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMTZweFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBiYWNrZHJvcCh7IHR5cGU6IFwic29saWRcIiwgY29sb3I6IFwicmdiYSgwLCAwLCAwLCAuMylcIiwgY2xvc2VPbkNsaWNrOiBvcHRpb25zLmNsb3NlT25CYWNrZHJvcENsaWNrIH0pLFxuICAgICAgICBmb2N1c1RyYXAoKSxcbiAgICAgICAga2V5c3Ryb2tlKCksXG4gICAgICAgIGZhbGxBbmltYXRpb24oKVxuICAgIF1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { of } from "rxjs";
2
+ import { FloatingTrait } from "./_base";
3
+ export class StyleTrait extends FloatingTrait {
4
+ constructor(styles) {
5
+ super();
6
+ this.styles = styles;
7
+ this.name = "style";
8
+ }
9
+ connect(floatingRef) {
10
+ Object.assign(floatingRef.container.nativeElement.style, this.styles);
11
+ return of(this.styles);
12
+ }
13
+ }
14
+ export function style(styles) {
15
+ return new StyleTrait(styles);
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvZmxvYXRpbmcvdHJhaXRzL3N0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFHckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUV2QyxNQUFNLE9BQU8sVUFBVyxTQUFRLGFBQTJDO0lBR3ZFLFlBQXFCLE1BQW9DO1FBQ3JELEtBQUssRUFBRSxDQUFBO1FBRFUsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFGaEQsU0FBSSxHQUFHLE9BQU8sQ0FBQTtJQUl2QixDQUFDO0lBRVEsT0FBTyxDQUFDLFdBQXdCO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUIsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxNQUFvQztJQUN0RCxPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgRmxvYXRpbmdSZWYgfSBmcm9tIFwiLi4vZmxvYXRpbmctcmVmXCJcbmltcG9ydCB7IEZsb2F0aW5nVHJhaXQgfSBmcm9tIFwiLi9fYmFzZVwiXG5cbmV4cG9ydCBjbGFzcyBTdHlsZVRyYWl0IGV4dGVuZHMgRmxvYXRpbmdUcmFpdDxQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+PiB7XG4gICAgb3ZlcnJpZGUgbmFtZSA9IFwic3R5bGVcIlxuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgc3R5bGVzOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+KSB7XG4gICAgICAgIHN1cGVyKClcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjb25uZWN0KGZsb2F0aW5nUmVmOiBGbG9hdGluZ1JlZik6IE9ic2VydmFibGU8UGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPj4ge1xuICAgICAgICBPYmplY3QuYXNzaWduKGZsb2F0aW5nUmVmLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLCB0aGlzLnN0eWxlcylcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuc3R5bGVzKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0eWxlKHN0eWxlczogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPikge1xuICAgIHJldHVybiBuZXcgU3R5bGVUcmFpdChzdHlsZXMpXG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { FloatingService } from "./floating/floating.service";
3
+ import { RootLayer } from "./layer/layer.service";
4
+ import * as i0 from "@angular/core";
5
+ export class NuFloating {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: NuFloating, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: NuFloating, imports: [RootLayer], exports: [RootLayer] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: NuFloating, providers: [FloatingService] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: NuFloating, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ providers: [FloatingService],
14
+ imports: [RootLayer],
15
+ exports: [RootLayer]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZmxvYXRpbmcvc3JjL2Zsb2F0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7O0FBT2pELE1BQU0sT0FBTyxVQUFVOzhHQUFWLFVBQVU7K0dBQVYsVUFBVSxZQUhULFNBQVMsYUFDVCxTQUFTOytHQUVWLFVBQVUsYUFKUixDQUFDLGVBQWUsQ0FBQzs7MkZBSW5CLFVBQVU7a0JBTHRCLFFBQVE7bUJBQUM7b0JBQ04sU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3BCLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuaW1wb3J0IHsgRmxvYXRpbmdTZXJ2aWNlIH0gZnJvbSBcIi4vZmxvYXRpbmcvZmxvYXRpbmcuc2VydmljZVwiXG5pbXBvcnQgeyBSb290TGF5ZXIgfSBmcm9tIFwiLi9sYXllci9sYXllci5zZXJ2aWNlXCJcblxuQE5nTW9kdWxlKHtcbiAgICBwcm92aWRlcnM6IFtGbG9hdGluZ1NlcnZpY2VdLFxuICAgIGltcG9ydHM6IFtSb290TGF5ZXJdLFxuICAgIGV4cG9ydHM6IFtSb290TGF5ZXJdXG59KVxuZXhwb3J0IGNsYXNzIE51RmxvYXRpbmcge31cbiJdfQ==
package/esm2022/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./floating";
2
2
  export * from "./layer";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9mbG9hdGluZ1wiXG5leHBvcnQgKiBmcm9tIFwiLi9sYXllclwiXG4iXX0=
3
+ export * from "./floating.module";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9mbG9hdGluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2Zsb2F0aW5nXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xheWVyXCJcbmV4cG9ydCAqIGZyb20gXCIuL2Zsb2F0aW5nLm1vZHVsZVwiXG4iXX0=
@@ -94,13 +94,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
94
94
  }] }] });
95
95
  export class RootLayer extends LayerService {
96
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RootLayer, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
97
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: RootLayer, isStandalone: true, selector: "body", providers: [{ provide: LayerService, useExisting: RootLayer }], exportAs: ["nuRootLayer"], usesInheritance: true, ngImport: i0 }); }
97
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: RootLayer, isStandalone: true, selector: "body", providers: [{ provide: LayerService, useExisting: RootLayer }], usesInheritance: true, ngImport: i0 }); }
98
98
  }
99
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RootLayer, decorators: [{
100
100
  type: Directive,
101
101
  args: [{
102
102
  selector: "body",
103
- exportAs: "nuRootLayer",
104
103
  standalone: true,
105
104
  providers: [{ provide: LayerService, useExisting: RootLayer }]
106
105
  }]
@@ -128,4 +127,4 @@ function sortByBackdrop(a, b) {
128
127
  function sortByZIndexDesc(a, b) {
129
128
  return b.zIndex - a.zIndex;
130
129
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFFdEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTdELE9BQU8sRUFBb0IsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUEwQixrQkFBa0IsRUFBeUIsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7O0FBRW5ILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDLENBQUE7QUFFbEYsNkNBQTZDO0FBQzdDLDhDQUE4QztBQUc5QyxNQUFNLE9BQWdCLFlBQVk7SUFDckIsTUFBTSxDQUF1QjtJQUM3QixTQUFTLENBQW1CO0lBR3JDLHlDQUF5QztJQUVoQyxTQUFTLENBQXNCO0lBQy9CLFlBQVksQ0FBUTtJQUM3Qiw0QkFBNEI7SUFFNUIsWUFBb0QsV0FBb0I7UUFWL0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM3QixjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTVCLFNBQUksR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFBO1FBQzNELHlDQUF5QztRQUVoQyxjQUFTLEdBQW9CLEVBQUUsQ0FBQTtRQUtwQyxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQTtRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUksU0FBMkIsRUFBRSxPQUFrQztRQUNqRixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDdEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxpQkFBaUIsQ0FBSSxHQUFtQixFQUFFLE9BQWlDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUN0RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUF5QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDdEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBd0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDOUUsQ0FBQztJQUVELE1BQU0sQ0FBcUIsR0FBTTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQ3RELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFBO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFhO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNILE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFBO1FBRXpELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDOUIsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtZQUNyQixNQUFNLElBQUksQ0FBQyxDQUFBO1FBQ2YsQ0FBQztRQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUUvQixJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUE7UUFDdkIsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLEtBQUssWUFBWSxXQUFXLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2pFLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUE7Z0JBQzVCLFdBQVcsR0FBRyxJQUFJLENBQUE7WUFDdEIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDOzhHQWhGaUIsWUFBWSxrQkFXVixrQkFBa0I7a0dBWHBCLFlBQVk7OzJGQUFaLFlBQVk7a0JBRGpDLFNBQVM7OzBCQVlPLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFROztBQThFckQsTUFBTSxPQUFPLFNBQVUsU0FBUSxZQUFZOzhHQUE5QixTQUFTO2tHQUFULFNBQVMsbURBRlAsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDOzsyRkFFckQsU0FBUztrQkFOckIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsTUFBTTtvQkFDaEIsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxXQUFXLEVBQUUsQ0FBQztpQkFDakU7O0FBT0QsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTs4R0FBcEMsZUFBZTtrR0FBZixlQUFlLGlDQUZiLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQzs7MkZBRTNELGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLGlCQUFpQixFQUFFLENBQUM7aUJBQ3ZFOztBQUdELFNBQVMsY0FBYyxDQUFDLENBQVcsRUFBRSxDQUFXO0lBQzVDLElBQUksQ0FBQyxZQUFZLFdBQVcsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDYixDQUFDO1NBQU0sSUFBSSxDQUFDLFlBQVksV0FBVyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLENBQUE7SUFDWixDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUE7QUFDWixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFXLEVBQUUsQ0FBVztJQUM5QyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5pbXBvcnQgeyB0b1NvcnRlZCB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQgeyBDb3ZlclNlcnZpY2UgfSBmcm9tIFwiQG5ndXRpbC9ncmFwaGljc1wiXG5cbmltcG9ydCB7IEJhY2tkcm9wT3B0aW9ucywgQmFja2Ryb3BSZWYgfSBmcm9tIFwiLi9iYWNrZHJvcC1yZWZcIlxuaW1wb3J0IHsgQ2hpbGRSZWYgfSBmcm9tIFwiLi9jaGlsZC1yZWZcIlxuaW1wb3J0IHsgQ29udGFpbmVyT3B0aW9ucywgQ29udGFpbmVyUmVmIH0gZnJvbSBcIi4vY29udGFpbmVyLXJlZlwiXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWxPcHRpb25zLCBDb21wb25lbnRQb3J0YWxSZWYsIFRlbXBsYXRlUG9ydGFsT3B0aW9ucywgVGVtcGxhdGVQb3J0YWxSZWYgfSBmcm9tIFwiLi9wb3J0YWwtcmVmXCJcblxuZXhwb3J0IGNvbnN0IExBWUVSX1pJTkRFWF9TVEFSVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KFwiTEFZRVJfWklOREVYX1NUQVJUXCIpXG5cbi8vIFRPRE86IEVMRVZBVElPTl9TVEVQIGNvbmZpZyB3aXRoIGluamVjdGlvblxuLy8gVE9ETzogRUxFVkFUSU9OX1NUQVJUIGNvbmZpZyB3aXRoIGluamVjdGlvblxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMYXllclNlcnZpY2Uge1xuICAgIHJlYWRvbmx5ICNjb3ZlciA9IGluamVjdChDb3ZlclNlcnZpY2UpXG4gICAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKVxuXG4gICAgcmVhZG9ubHkgcm9vdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZilcbiAgICAvLyByZWFkb25seSAjZWwgPSB0aGlzLnJvb3QubmF0aXZlRWxlbWVudFxuXG4gICAgcmVhZG9ubHkgI2NoaWxkcmVuOiBBcnJheTxDaGlsZFJlZj4gPSBbXVxuICAgIHJlYWRvbmx5ICN6SW5kZXhTdGFydDogbnVtYmVyXG4gICAgLy8gcmVhZG9ubHkgI2JhY2tkcm9wOiBNYXA8PlxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMQVlFUl9aSU5ERVhfU1RBUlQpIEBPcHRpb25hbCgpIHpJbmRleFN0YXJ0PzogbnVtYmVyKSB7XG4gICAgICAgIGlmICh6SW5kZXhTdGFydCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IHpJbmRleFN0YXJ0XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiN6SW5kZXhTdGFydCA9IDEwMDAwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdDb21wb25lbnRQb3J0YWw8VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBvcHRpb25zOiBDb21wb25lbnRQb3J0YWxPcHRpb25zPFQ+KTogQ29tcG9uZW50UG9ydGFsUmVmPFQ+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29tcG9uZW50UG9ydGFsUmVmKGNvbXBvbmVudCwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3VGVtcGxhdGVQb3J0YWw8VD4odHBsOiBUZW1wbGF0ZVJlZjxUPiwgb3B0aW9uczogVGVtcGxhdGVQb3J0YWxPcHRpb25zPFQ+KTogVGVtcGxhdGVQb3J0YWxSZWY8VD4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBUZW1wbGF0ZVBvcnRhbFJlZih0cGwsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0NvbnRhaW5lcihvcHRpb25zOiBDb250YWluZXJPcHRpb25zKTogQ29udGFpbmVyUmVmIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZChuZXcgQ29udGFpbmVyUmVmKG9wdGlvbnMpKVxuICAgIH1cblxuICAgIG5ld0JhY2tkcm9wKG9wdGlvbnM6IEJhY2tkcm9wT3B0aW9ucyk6IEJhY2tkcm9wUmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKEJhY2tkcm9wUmVmLmZyb20odGhpcy4jY292ZXIsIHRoaXMuI2luamVjdG9yLCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBhcHBlbmQ8VCBleHRlbmRzIENoaWxkUmVmPihyZWY6IFQpOiBUIHtcbiAgICAgICAgaWYgKCF0aGlzLiNjaGlsZHJlbi5pbmNsdWRlcyhyZWYpKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5wdXNoKHJlZilcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgICAgICB0aGlzLnJvb3QubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChyZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIHJlZi5zdGF0ZS5vbihcImRpc3Bvc2VkXCIsICgpID0+IHRoaXMuI3JlbW92ZShyZWYpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWZcbiAgICB9XG5cbiAgICAjcmVtb3ZlKHJlZjogQ2hpbGRSZWYpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy4jY2hpbGRyZW4uaW5kZXhPZihyZWYpXG4gICAgICAgIGlmIChpZHggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy4jY2hpbGRyZW4uc3BsaWNlKGlkeCwgMSlcbiAgICAgICAgICAgIHRoaXMuI3VwZGF0ZSgpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjdXBkYXRlKCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRvU29ydGVkKHRoaXMuI2NoaWxkcmVuLCBzb3J0QnlCYWNrZHJvcClcblxuICAgICAgICBsZXQgekluZGV4ID0gdGhpcy4jekluZGV4U3RhcnRcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgY2hpbGQuekluZGV4ID0gekluZGV4XG4gICAgICAgICAgICB6SW5kZXggKz0gMVxuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGRyZW4uc29ydChzb3J0QnlaSW5kZXhEZXNjKVxuXG4gICAgICAgIGxldCBoYXNCYWNrZHJvcCA9IGZhbHNlXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGNoaWxkLm9wdGlvbnMudHlwZSA9PT0gXCJzb2xpZFwiKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQudmlzaWJsZSA9ICFoYXNCYWNrZHJvcFxuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJib2R5XCIsXG4gICAgZXhwb3J0QXM6IFwibnVSb290TGF5ZXJcIixcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VFeGlzdGluZzogUm9vdExheWVyIH1dXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RMYXllciBleHRlbmRzIExheWVyU2VydmljZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VFeGlzdGluZzogSW5kaXZpZHVhbExheWVyIH1dXG59KVxuZXhwb3J0IGNsYXNzIEluZGl2aWR1YWxMYXllciBleHRlbmRzIExheWVyU2VydmljZSB7fVxuXG5mdW5jdGlvbiBzb3J0QnlCYWNrZHJvcChhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICBpZiAoYSBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGEudW5kZXIgPT09IGIpIHtcbiAgICAgICAgcmV0dXJuIC0xXG4gICAgfSBlbHNlIGlmIChiIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgYi51bmRlciA9PT0gYSkge1xuICAgICAgICByZXR1cm4gMVxuICAgIH1cbiAgICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBzb3J0QnlaSW5kZXhEZXNjKGE6IENoaWxkUmVmLCBiOiBDaGlsZFJlZikge1xuICAgIHJldHVybiBiLnpJbmRleCAtIGEuekluZGV4XG59XG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zsb2F0aW5nL3NyYy9sYXllci9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFFdEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUvQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTdELE9BQU8sRUFBb0IsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUEwQixrQkFBa0IsRUFBeUIsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7O0FBRW5ILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDLENBQUE7QUFFbEYsNkNBQTZDO0FBQzdDLDhDQUE4QztBQUc5QyxNQUFNLE9BQWdCLFlBQVk7SUFDckIsTUFBTSxDQUF1QjtJQUM3QixTQUFTLENBQW1CO0lBR3JDLHlDQUF5QztJQUVoQyxTQUFTLENBQXNCO0lBQy9CLFlBQVksQ0FBUTtJQUM3Qiw0QkFBNEI7SUFFNUIsWUFBb0QsV0FBb0I7UUFWL0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM3QixjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTVCLFNBQUksR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFBO1FBQzNELHlDQUF5QztRQUVoQyxjQUFTLEdBQW9CLEVBQUUsQ0FBQTtRQUtwQyxJQUFJLFdBQVcsSUFBSSxJQUFJLEVB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QWlCLEVBQUUsQ0FBQztpQkFDdkU7O0FBR0QsU0FBUyxjQUFjLENBQUMsQ0FBVyxFQUFFLENBQVc7SUFDNUMsSUFBSSxDQUFDLFlBQVksV0FBVyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNiLENBQUM7U0FBTSxJQUFJLENBQUMsWUFBWSxXQUFXLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsQ0FBQTtJQUNaLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQTtBQUNaLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLENBQVcsRUFBRSxDQUFXO0lBQzlDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IHRvU29ydGVkIH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcbmltcG9ydCB7IENvdmVyU2VydmljZSB9IGZyb20gXCJAbmd1dGlsL2dyYXBoaWNzXCJcblxuaW1wb3J0IHsgQmFja2Ryb3BPcHRpb25zLCBCYWNrZHJvcFJlZiB9IGZyb20gXCIuL2JhY2tkcm9wLXJlZlwiXG5pbXBvcnQgeyBDaGlsZFJlZiB9IGZyb20gXCIuL2NoaWxkLXJlZlwiXG5pbXBvcnQgeyBDb250YWluZXJPcHRpb25zLCBDb250YWluZXJSZWYgfSBmcm9tIFwiLi9jb250YWluZXItcmVmXCJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbE9wdGlvbnMsIENvbXBvbmVudFBvcnRhbFJlZiwgVGVtcGxhdGVQb3J0YWxPcHRpb25zLCBUZW1wbGF0ZVBvcnRhbFJlZiB9IGZyb20gXCIuL3BvcnRhbC1yZWZcIlxuXG5leHBvcnQgY29uc3QgTEFZRVJfWklOREVYX1NUQVJUID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXCJMQVlFUl9aSU5ERVhfU1RBUlRcIilcblxuLy8gVE9ETzogRUxFVkFUSU9OX1NURVAgY29uZmlnIHdpdGggaW5qZWN0aW9uXG4vLyBUT0RPOiBFTEVWQVRJT05fU1RBUlQgY29uZmlnIHdpdGggaW5qZWN0aW9uXG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExheWVyU2VydmljZSB7XG4gICAgcmVhZG9ubHkgI2NvdmVyID0gaW5qZWN0KENvdmVyU2VydmljZSlcbiAgICByZWFkb25seSAjaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG5cbiAgICByZWFkb25seSByb290ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKVxuICAgIC8vIHJlYWRvbmx5ICNlbCA9IHRoaXMucm9vdC5uYXRpdmVFbGVtZW50XG5cbiAgICByZWFkb25seSAjY2hpbGRyZW46IEFycmF5PENoaWxkUmVmPiA9IFtdXG4gICAgcmVhZG9ubHkgI3pJbmRleFN0YXJ0OiBudW1iZXJcbiAgICAvLyByZWFkb25seSAjYmFja2Ryb3A6IE1hcDw+XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KExBWUVSX1pJTkRFWF9TVEFSVCkgQE9wdGlvbmFsKCkgekluZGV4U3RhcnQ/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHpJbmRleFN0YXJ0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuI3pJbmRleFN0YXJ0ID0gekluZGV4U3RhcnRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI3pJbmRleFN0YXJ0ID0gMTAwMDBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld0NvbXBvbmVudFBvcnRhbDxUPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sIG9wdGlvbnM6IENvbXBvbmVudFBvcnRhbE9wdGlvbnM8VD4pOiBDb21wb25lbnRQb3J0YWxSZWY8VD4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBDb21wb25lbnRQb3J0YWxSZWYoY29tcG9uZW50LCBvcHRpb25zKSlcbiAgICB9XG5cbiAgICBuZXdUZW1wbGF0ZVBvcnRhbDxUPih0cGw6IFRlbXBsYXRlUmVmPFQ+LCBvcHRpb25zOiBUZW1wbGF0ZVBvcnRhbE9wdGlvbnM8VD4pOiBUZW1wbGF0ZVBvcnRhbFJlZjxUPiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5pbmplY3Rvcikge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQobmV3IFRlbXBsYXRlUG9ydGFsUmVmKHRwbCwgb3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3Q29udGFpbmVyKG9wdGlvbnM6IENvbnRhaW5lck9wdGlvbnMpOiBDb250YWluZXJSZWYge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5ldyBDb250YWluZXJSZWYob3B0aW9ucykpXG4gICAgfVxuXG4gICAgbmV3QmFja2Ryb3Aob3B0aW9uczogQmFja2Ryb3BPcHRpb25zKTogQmFja2Ryb3BSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmQoQmFja2Ryb3BSZWYuZnJvbSh0aGlzLiNjb3ZlciwgdGhpcy4jaW5qZWN0b3IsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIGFwcGVuZDxUIGV4dGVuZHMgQ2hpbGRSZWY+KHJlZjogVCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuI2NoaWxkcmVuLmluY2x1ZGVzKHJlZikpIHtcbiAgICAgICAgICAgIHRoaXMuI2NoaWxkcmVuLnB1c2gocmVmKVxuICAgICAgICAgICAgdGhpcy4jdXBkYXRlKClcbiAgICAgICAgICAgIHRoaXMucm9vdC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHJlZi5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgcmVmLnN0YXRlLm9uKFwiZGlzcG9zZWRcIiwgKCkgPT4gdGhpcy4jcmVtb3ZlKHJlZikpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZlxuICAgIH1cblxuICAgICNyZW1vdmUocmVmOiBDaGlsZFJlZikge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLiNjaGlsZHJlbi5pbmRleE9mKHJlZilcbiAgICAgICAgaWYgKGlkeCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLiNjaGlsZHJlbi5zcGxpY2UoaWR4LCAxKVxuICAgICAgICAgICAgdGhpcy4jdXBkYXRlKClcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdG9Tb3J0ZWQodGhpcy4jY2hpbGRyZW4sIHNvcnRCeUJhY2tkcm9wKVxuXG4gICAgICAgIGxldCB6SW5kZXggPSB0aGlzLiN6SW5kZXhTdGFydFxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBjaGlsZC56SW5kZXggPSB6SW5kZXhcbiAgICAgICAgICAgIHpJbmRleCArPSAxXG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZHJlbi5zb3J0KHNvcnRCeVpJbmRleERlc2MpXG5cbiAgICAgICAgbGV0IGhhc0JhY2tkcm9wID0gZmFsc2VcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgY2hpbGQub3B0aW9ucy50eXBlID09PSBcInNvbGlkXCIpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC52aXNpYmxlID0gIWhhc0JhY2tkcm9wXG4gICAgICAgICAgICAgICAgaGFzQmFja2Ryb3AgPSB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcImJvZHlcIixcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VFeGlzdGluZzogUm9vdExheWVyIH1dXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RMYXllciBleHRlbmRzIExheWVyU2VydmljZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTGF5ZXJTZXJ2aWNlLCB1c2VFeGlzdGluZzogSW5kaXZpZHVhbExheWVyIH1dXG59KVxuZXhwb3J0IGNsYXNzIEluZGl2aWR1YWxMYXllciBleHRlbmRzIExheWVyU2VydmljZSB7fVxuXG5mdW5jdGlvbiBzb3J0QnlCYWNrZHJvcChhOiBDaGlsZFJlZiwgYjogQ2hpbGRSZWYpIHtcbiAgICBpZiAoYSBpbnN0YW5jZW9mIEJhY2tkcm9wUmVmICYmIGEudW5kZXIgPT09IGIpIHtcbiAgICAgICAgcmV0dXJuIC0xXG4gICAgfSBlbHNlIGlmIChiIGluc3RhbmNlb2YgQmFja2Ryb3BSZWYgJiYgYi51bmRlciA9PT0gYSkge1xuICAgICAgICByZXR1cm4gMVxuICAgIH1cbiAgICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBzb3J0QnlaSW5kZXhEZXNjKGE6IENoaWxkUmVmLCBiOiBDaGlsZFJlZikge1xuICAgIHJldHVybiBiLnpJbmRleCAtIGEuekluZGV4XG59XG4iXX0=