@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
26 lines • 2.85 kB
JavaScript
import { Observable } from 'rxjs';
export function tuiCloseWatcher() {
return new Observable((subscriber) => {
let watcher;
const setup = () => {
watcher = getWatcher();
watcher.onclose = () => setup();
watcher.oncancel = (event) => {
event.preventDefault();
subscriber.next();
};
};
setup();
return () => watcher.destroy();
});
}
function getWatcher() {
try {
// @ts-ignore
return new CloseWatcher();
}
catch {
return { destroy: () => { } };
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2Utd2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9vYnNlcnZhYmxlcy9jbG9zZS13YXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFRaEMsTUFBTSxVQUFVLGVBQWU7SUFDM0IsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ2pDLElBQUksT0FBc0IsQ0FBQztRQUUzQixNQUFNLEtBQUssR0FBRyxHQUFTLEVBQUU7WUFDckIsT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFaEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUM7UUFDTixDQUFDLENBQUM7UUFFRixLQUFLLEVBQUUsQ0FBQztRQUVSLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQVMsVUFBVTtJQUNmLElBQUk7UUFDQSxhQUFhO1FBQ2IsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBQzdCO0lBQUMsTUFBTTtRQUNKLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFDLENBQUM7S0FDOUI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW50ZXJmYWNlIENsb3NlV2F0Y2hlciB7XG4gICAgZGVzdHJveTogKCkgPT4gdm9pZDtcbiAgICBvbmNsb3NlPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbmNhbmNlbD86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlDbG9zZVdhdGNoZXIoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgIGxldCB3YXRjaGVyITogQ2xvc2VXYXRjaGVyO1xuXG4gICAgICAgIGNvbnN0IHNldHVwID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgd2F0Y2hlciA9IGdldFdhdGNoZXIoKTtcbiAgICAgICAgICAgIHdhdGNoZXIub25jbG9zZSA9ICgpID0+IHNldHVwKCk7XG5cbiAgICAgICAgICAgIHdhdGNoZXIub25jYW5jZWwgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBzZXR1cCgpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB3YXRjaGVyLmRlc3Ryb3koKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0V2F0Y2hlcigpOiBDbG9zZVdhdGNoZXIge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIG5ldyBDbG9zZVdhdGNoZXIoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHtkZXN0cm95OiAoKSA9PiB7fX07XG4gICAgfVxufVxuIl19