UNPKG

@angular-mdl/core

Version:

Angular components, directives and styles based on material design lite https://getmdl.io.

50 lines 6.41 kB
import { Injectable } from "@angular/core"; import * as i0 from "@angular/core"; export class MdlTooltipPositionService { calcStyle(offsetWidth, offsetHeight, props, position) { const result = {}; const left = props.left + props.width / 2; const top = props.top + props.height / 2; const marginLeft = -1 * (offsetWidth / 2); const marginTop = -1 * (offsetHeight / 2); if (position === "left" || position === "right") { if (top + marginTop < 0) { result["top"] = "0"; result["marginTop"] = "0"; } else { result["top"] = top + "px"; result["marginTop"] = marginTop + "px"; } } else { if (left + marginLeft < 0) { result["left"] = "0"; result["marginLeft"] = "0"; } else { result["left"] = left + "px"; result["marginLeft"] = marginLeft + "px"; } } if (position === "top") { result["top"] = props.top - offsetHeight - 10 + "px"; } else if (position === "right") { result["left"] = props.left + props.width + 10 + "px"; } else if (position === "left") { result["left"] = props.left - offsetWidth - 10 + "px"; } else { result["top"] = props.top + props.height + 10 + "px"; } return result; } } MdlTooltipPositionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlTooltipPositionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); MdlTooltipPositionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlTooltipPositionService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlTooltipPositionService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRsLXRvb2x0aXAtcG9zaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90b29sdGlwL21kbC10b29sdGlwLXBvc2l0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixTQUFTLENBQ2QsV0FBbUIsRUFDbkIsWUFBb0IsRUFDcEIsS0FBaUIsRUFDakIsUUFBZ0I7UUFFaEIsTUFBTSxNQUFNLEdBQW9DLEVBQUUsQ0FBQztRQUNuRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFMUMsSUFBSSxRQUFRLEtBQUssTUFBTSxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDL0MsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDcEIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUMzQjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztnQkFDM0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDeEM7U0FDRjthQUFNO1lBQ0wsSUFBSSxJQUFJLEdBQUcsVUFBVSxHQUFHLENBQUMsRUFBRTtnQkFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDckIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDN0IsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDMUM7U0FDRjtRQUVELElBQUksUUFBUSxLQUFLLEtBQUssRUFBRTtZQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztTQUN0RDthQUFNLElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7U0FDdkQ7YUFBTSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsV0FBVyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7U0FDdkQ7YUFBTTtZQUNMLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztTQUN0RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O3NIQTFDVSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZGxUb29sdGlwUG9zaXRpb25TZXJ2aWNlIHtcbiAgcHVibGljIGNhbGNTdHlsZShcbiAgICBvZmZzZXRXaWR0aDogbnVtYmVyLFxuICAgIG9mZnNldEhlaWdodDogbnVtYmVyLFxuICAgIHByb3BzOiBDbGllbnRSZWN0LFxuICAgIHBvc2l0aW9uOiBzdHJpbmdcbiAgKTogeyBbcHJvcE5hbWU6IHN0cmluZ106IHVua25vd24gfSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtwcm9wTmFtZTogc3RyaW5nXTogdW5rbm93biB9ID0ge307XG4gICAgY29uc3QgbGVmdCA9IHByb3BzLmxlZnQgKyBwcm9wcy53aWR0aCAvIDI7XG4gICAgY29uc3QgdG9wID0gcHJvcHMudG9wICsgcHJvcHMuaGVpZ2h0IC8gMjtcbiAgICBjb25zdCBtYXJnaW5MZWZ0ID0gLTEgKiAob2Zmc2V0V2lkdGggLyAyKTtcbiAgICBjb25zdCBtYXJnaW5Ub3AgPSAtMSAqIChvZmZzZXRIZWlnaHQgLyAyKTtcblxuICAgIGlmIChwb3NpdGlvbiA9PT0gXCJsZWZ0XCIgfHwgcG9zaXRpb24gPT09IFwicmlnaHRcIikge1xuICAgICAgaWYgKHRvcCArIG1hcmdpblRvcCA8IDApIHtcbiAgICAgICAgcmVzdWx0W1widG9wXCJdID0gXCIwXCI7XG4gICAgICAgIHJlc3VsdFtcIm1hcmdpblRvcFwiXSA9IFwiMFwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W1widG9wXCJdID0gdG9wICsgXCJweFwiO1xuICAgICAgICByZXN1bHRbXCJtYXJnaW5Ub3BcIl0gPSBtYXJnaW5Ub3AgKyBcInB4XCI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsZWZ0ICsgbWFyZ2luTGVmdCA8IDApIHtcbiAgICAgICAgcmVzdWx0W1wibGVmdFwiXSA9IFwiMFwiO1xuICAgICAgICByZXN1bHRbXCJtYXJnaW5MZWZ0XCJdID0gXCIwXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRbXCJsZWZ0XCJdID0gbGVmdCArIFwicHhcIjtcbiAgICAgICAgcmVzdWx0W1wibWFyZ2luTGVmdFwiXSA9IG1hcmdpbkxlZnQgKyBcInB4XCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uID09PSBcInRvcFwiKSB7XG4gICAgICByZXN1bHRbXCJ0b3BcIl0gPSBwcm9wcy50b3AgLSBvZmZzZXRIZWlnaHQgLSAxMCArIFwicHhcIjtcbiAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSBcInJpZ2h0XCIpIHtcbiAgICAgIHJlc3VsdFtcImxlZnRcIl0gPSBwcm9wcy5sZWZ0ICsgcHJvcHMud2lkdGggKyAxMCArIFwicHhcIjtcbiAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSBcImxlZnRcIikge1xuICAgICAgcmVzdWx0W1wibGVmdFwiXSA9IHByb3BzLmxlZnQgLSBvZmZzZXRXaWR0aCAtIDEwICsgXCJweFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbXCJ0b3BcIl0gPSBwcm9wcy50b3AgKyBwcm9wcy5oZWlnaHQgKyAxMCArIFwicHhcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=