{"version":3,"file":"dimanoid-ngx-dm-tour.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@dimanoid/ngx-dm-tour/lib/models/dm-tour-config.ts","ng://@dimanoid/ngx-dm-tour/lib/models/dm-tour-section.ts","ng://@dimanoid/ngx-dm-tour/lib/models/dm-tour-control.ts","ng://@dimanoid/ngx-dm-tour/lib/utils/coercions.ts","ng://@dimanoid/ngx-dm-tour/lib/utils/logs.ts","ng://@dimanoid/ngx-dm-tour/lib/utils/elems.ts","ng://@dimanoid/ngx-dm-tour/lib/dm-tour.styles.ts","ng://@dimanoid/ngx-dm-tour/lib/dm-tour.service.ts","ng://@dimanoid/ngx-dm-tour/lib/dm-tour.directive.ts","ng://@dimanoid/ngx-dm-tour/lib/dm-tour.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\n\nexport type DmTourShapeType = 'auto' | 'circle' | 'square';\n\nexport interface IDmTourConfig {\n    rootPath?: string;\n    loadIndexOnStart?: boolean;\n    loaderHtml?: string;\n    defaultShape?: DmTourShapeType;\n    customCssClass?: string;\n    debug?: number;\n}\n\nexport class DmTourConfig implements IDmTourConfig {\n    rootPath = 'assets/help';\n    loadIndexOnStart = true;\n    loaderHtml = `\n        <span style=\"color: steelblue;\n            text-shadow: 0 0 10px white, 0 0 10px white, 0 0 20px white, 0 0 20px white, 0 0 30px white, 0 0 30px white;\n            margin: 0;\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            font-weight: bold;\n            font-size: 30px;\n            transform: translate(-50%, -50%);\"\n        >\n            Loading...\n        </span>\n    `;\n    defaultShape: DmTourShapeType = 'auto';\n    customCssClass: string;\n    debug: number = 0;\n\n    constructor(json?: IDmTourConfig) {\n        this.apply(json);\n    }\n\n    apply(json?: IDmTourConfig): DmTourConfig {\n        if (json) {\n            for (const fn of Object.keys(json)) {\n                if (json[fn] !== undefined) {\n                    this[fn] = json[fn];\n                }\n            }\n        }\n        return this;\n    }\n}\n\nexport const DM_TOUR_CONF = new InjectionToken<IDmTourConfig>('ngx-dm-tour-config');\n","export interface DmTourSection {\n    id: string;\n    title: string;\n    html?: string;\n    controlsLoaded?: boolean;\n}\n","export interface DmTourControl {\n    id: string;\n    children?: DmTourControl[];\n    text?: string;\n    el?: Element | string;\n    shape?: 'circle' | 'square';\n    pos?: 'auto'\n        | 'top-left' | 'top' | 'top-right'\n        | 'bottom-left' | 'bottom' | 'bottom-right'\n        | 'left-top' | 'left' | 'left-bottom'\n        | 'right-top' | 'right' | 'right-bottom';\n}\n","function _isNumberValue(value: any): boolean {\n    return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\n}\n\nfunction coerceCssPixelValue(value: any): string {\n    if (value == null) {\n      return '';\n    }\n    return typeof value === 'string' ? value : `${value}px`;\n}\n\nexport function toBoolean(value: boolean | string): boolean {\n    return value != null && `${value}` !== 'false';\n}\n\nexport function toNumber(value: number | string): number;\nexport function toNumber<D>(value: number | string, fallback: D): number | D;\nexport function toNumber(value: number | string, fallbackValue: number = 0): number {\n    return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\nexport function toCssPixel(value: number | string): string {\n    return coerceCssPixelValue(value);\n}\n\nfunction propDecoratorFactory<T, D>(name: string, fallback: (v: T) => D): (target: any, propName: string) => void {\n    function propDecorator(target: any, propName: string): void {\n        const privatePropName = `$$__${propName}`;\n\n        if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\n            console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\n        }\n\n        Object.defineProperty(target, privatePropName, {\n            configurable: true,\n            writable: true\n        });\n\n        Object.defineProperty(target, propName, {\n            get(): string {\n                return this[privatePropName];\n            },\n            set(value: T): void {\n                this[privatePropName] = fallback(value);\n            }\n        });\n    }\n\n    return propDecorator;\n}\n\nexport function InputBoolean(): any {\n    return propDecoratorFactory('InputBoolean', toBoolean);\n}\n\nexport function InputCssPixel(): any {\n    return propDecoratorFactory('InputCssPixel', toCssPixel);\n}\n\nexport function InputNumber(): any {\n    return propDecoratorFactory('InputNumber', toNumber);\n}\n","// tslint:disable: no-console\nexport const _D = console.debug;\nexport const _L = console.log;\nexport const _I = console.info;\nexport const _W = console.warn;\nexport const _E = console.error;\nexport const _tS = console.time;\nexport const _tL =  (console as any).timeLog ? (console as any).timeLog : console.log;\nexport const _tE = console.timeEnd;\n","export function isElemVisible(elem: HTMLElement): boolean {\n    if (!(!!elem && !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length))) {\n        return false;\n    }\n    const { top, left, height, width } = elem.getBoundingClientRect();\n    let el: any = elem.parentNode;\n    do {\n        const rect = el.getBoundingClientRect();\n        if (rect.height > 0 && rect.width > 0) {\n            if (\n                (top <= rect.bottom === false)\n                || ((top + height) <= rect.top)\n                || (left <= rect.right === false)\n                || ((left + width) <= rect.left)\n            ) {\n                return false;\n            }\n        }\n        el = el.parentNode;\n    } while (el != document.body);\n    return top <= document.documentElement.clientHeight && left <= document.documentElement.clientWidth;\n}\n","export const GLOBAL_STYLES = `\n    #ngxDmTourRoot,\n    #ngxDmTourLoading,\n    #ngxDmTourBackdrop,\n    #ngxDmTourDialogContainer {\n        position: fixed;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        overflow: hidden;\n    }\n    #ngxDmTourLoading {\n        background-color: transparent;\n        transition: background-color .5s;\n    }\n    #ngxDmTourBackdrop {\n        opacity: 0;\n        transition: opacity .5s;\n    }\n    #ngxDmTourRoot.ngx-dm-tour-show #ngxDmTourBackdrop {\n        opacity: var(--ngx-dm-tour-backdrop-opacity, .3);\n    }\n    #ngxDmTourRoot.ngx-dm-tour-show #ngxDmTourDialog {\n        opacity: 1;\n    }\n    #ngxDmTourRoot.ngx-dm-tour-show .ngx-dm-tour-text {\n        opacity: 1;\n    }\n    #ngxDmTourBackdrop.ngx-dm-tour-dialog {\n        background-color: var(--ngx-dm-tour-backdrop-color, black);\n    }\n    #ngxDmTourDialogContainer  {\n        justify-content: center;\n        align-items: center;\n        display: flex;\n        overflow: auto;\n    }\n    #ngxDmTourDialog {\n        transition: opacity .5s;\n        opacity: 0;\n        min-width: 800px;\n        min-height: 600px;\n        background-color: white;\n        box-shadow: 0 0 10px rgba(0,153,228,.5);\n        display: flex;\n        flex-direction: column;\n        overflow: hidden;\n        padding: 10px 0;\n        position: relative;\n    }\n    #ngxDmTourDialogTitle {\n        color: #0099e4;\n        padding: 0 16px 8px;\n        font-weight: bold;\n        font-size: 1.5em;\n    }\n    #ngxDmTourDialogDesc {\n        position: relative;\n        display: flex;\n        flex: 1;\n        flex-basis: 1e-9px;\n    }\n    #ngxDmTourDialogDescInner {\n        position: absolute;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        overflow: auto;\n        padding: 10px;\n    }\n    #ngxDmTourDialogFooter {\n        padding: 8px 8px 0 8px;\n        text-align: right;\n        margin-top: 2px;\n    }\n    .ngx-dm-tour-button {\n        transition: all .15s;\n        height: 26px;\n        line-height: 1.5;\n        position: relative;\n        display: inline-block;\n        font-weight: 400;\n        text-align: center;\n        border: 1px solid #d9d9d9;\n        cursor: pointer;\n        padding: 0 8px;\n        font-size: 14px;\n        color: white;\n        background-color: #0099e4;\n        border-color: #1890ff;\n        box-shadow: 0 2px 0 rgba(0,0,0,.045);\n    }\n    .ngx-dm-tour-button:hover {\n        box-shadow: 0 2px 5px rgba(0,153,228,.5);\n        top: 0 !important;\n    }\n    #ngxDmTourDialogBtnIndex:before {\n        content: \"Content Index\"\n    }\n    #ngxDmTourDialogBtnControls{\n        margin-left: 8px;\n        position: absolute;\n        top: -2px;\n        right: 30px;\n        border-bottom-left-radius: 12px;\n        border-bottom-right-radius: 12px;\n        padding: 0 8px;\n        border-top: none;\n    }\n    #ngxDmTourDialogBtnControls:before {\n        content: \"Highlight Important Controls\"\n    }\n    #ngxDmTourDialogBtnClose {\n        position: absolute;\n        right: 0;\n        top: -2px;\n        padding: 0 4px;\n        border-radius: 0;\n        border-bottom-left-radius: 50%;\n        border-top: none;\n        border-right: none;\n    }\n    #ngxDmTourDialogBtnClose:before {\n        content: \"\\\\01F5D9\"\n    }\n    .ngx-dm-tour-text {\n        transition: opacity .5s;\n        opacity: 0;\n        position: absolute;\n        border: 2px solid white;\n        border-radius: 8px;\n        background: #0099e4;\n        text-align: center;\n        min-width: 70px;\n        max-width: 400px;\n        max-height: 200px;\n        box-shadow: 0 0 4px rgba(0,0,0,.25);\n    }\n    .ngx-dm-tour-text > .ngx-dm-tour-text-inner {\n        color: white;\n        padding: 8px;\n    }\n    .ngx-dm-tour-text:after {\n        border: 2px solid;\n        border-color: transparent white white transparent;\n        box-shadow: 2px 2px 2px rgba(0,0,0,.25);\n        background: #0099e4;\n        content: \" \";\n        position: absolute;\n        z-index: -1\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-top-left:after {\n        bottom: -8px;\n        left: 8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(45deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-top-center:after {\n        bottom: -8px;\n        left: calc(50% - 8px);\n        width: 16px;\n        height: 16px;\n        transform: rotate(45deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-top-right:after {\n        bottom: -8px;\n        right: 8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(45deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-bottom-left:after {\n        top: -8px;\n        left: 8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(-135deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-bottom-center:after {\n        top: -8px;\n        left: calc(50% - 8px);\n        width: 16px;\n        height: 16px;\n        transform: rotate(-135deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-bottom-right:after {\n        top: -8px;\n        right: 8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(-135deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-right-top:after {\n        top: 8px;\n        left: -8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(135deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-right-center:after {\n        top: calc(50% - 8px);\n        left: -8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(135deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-right-bottom:after {\n        bottom: 8px;\n        left: -8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(135deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-left-top:after {\n        top: 8px;\n        right: -8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(-45deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-left-center:after {\n        top: calc(50% - 8px);\n        right: -8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(-45deg);\n    }\n    .ngx-dm-tour-text.ngx-dm-tour-text-left-bottom:after {\n        bottom: 8px;\n        right: -8px;\n        width: 16px;\n        height: 16px;\n        transform: rotate(-45deg);\n    }\n`;\n","import { Injectable, ElementRef, Inject, Optional, RendererFactory2, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\n\nimport { DmTourConfig, DmTourSection, DmTourControl, DM_TOUR_CONF } from './models';\nimport { isElemVisible } from './utils';\nimport { Observable, Subject } from 'rxjs';\nimport { GLOBAL_STYLES } from './dm-tour.styles';\n\nimport { debounceTime } from 'rxjs/operators';\nimport ResizeObserver from 'resize-observer-polyfill';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class DmTourService {\n\n    private _cfg: DmTourConfig;\n    private _sections: { [id: string]: DmTourSection };\n    private _controls: { [sectionId: string]: { [id: string]: DmTourControl } } = {};\n\n    private _r2: Renderer2;\n    private _root: any;\n    private _onClickRemove: () => void;\n    private _onKeyupRemove: () => void;\n\n    private _hlVisible: { type: 'help' | 'controls', sectionId: string } = null;\n\n    constructor(\n        private _rendererFactory: RendererFactory2,\n        private _http: HttpClient,\n        @Inject(DOCUMENT) private document,\n        @Inject(DM_TOUR_CONF) @Optional() cfg: DmTourConfig\n    ) {\n        this._cfg =  new DmTourConfig(cfg);\n        this._r2 = this._rendererFactory.createRenderer(null, null);\n        if (this._cfg.loadIndexOnStart) {\n            this._addGlobalStyles();\n            this._loadSections().subscribe(\n                () => {},\n                err => this._handleLoadError(err)\n            );\n        }\n        if (ResizeObserver) {\n            const resized = new Subject<void>();\n            new ResizeObserver(() => resized.next()).observe(this.document.body);\n            resized.pipe(debounceTime(500)).subscribe(() => this._resized());\n        }\n    }\n\n    private _resized() {\n        this._L('_resized', this._hlVisible);\n        if (this._r2 && this._root && this._hlVisible && this._hlVisible.type == 'controls') {\n            const bd = this.document.querySelector('#ngxDmTourRoot');\n            this._L('_resized, bd:', bd);\n            if (bd) {\n                bd.remove();\n                this._root = null;\n            }\n            if (this._onClickRemove) {\n                this._onClickRemove();\n                this._onClickRemove = null;\n            }\n            if (this._onKeyupRemove) {\n                this._onKeyupRemove();\n                this._onKeyupRemove = null;\n            }\n            const sid = this._hlVisible.sectionId;\n            this._hlVisible = null;\n            this._showControlsHelp(sid);\n        }\n    }\n\n    registerControl(sectionId: string, id: string, el: ElementRef) {\n        if (!sectionId || !id || !el) {\n            return;\n        }\n        this._L(`registerControl, sectionId: ${sectionId}, is: ${id}, el:`, el);\n        if (!this._controls[sectionId]) {\n            this._controls[sectionId] = {};\n        }\n        if (!this._controls[sectionId][id]) {\n            this._controls[sectionId][id] = { id };\n        }\n        this._controls[sectionId][id].el = el.nativeElement;\n    }\n\n    unregisterControl(sectionId: string, id: string) {\n        if (!this._controls[sectionId] || this._controls[sectionId][id]) {\n            return;\n        }\n        this._L(`unregisterControl, sectionId: ${sectionId}, is: ${id}`);\n        delete this._controls[sectionId][id].el;\n    }\n\n    showControlsHelp(sectionId: string) {\n        if (this._hlVisible) {\n            return;\n        }\n        if (!this._sections) {\n            this._addGlobalStyles();\n            this._loadSections().subscribe(\n                () => {\n                    this._loadSectionControls(sectionId).subscribe(\n                        () => this._showControlsHelp(sectionId),\n                        err => this._handleLoadError(err)\n                    );\n                },\n                err => this._handleLoadError(err)\n            );\n        }\n        else if (!this._sections[sectionId]) {\n            this._handleLoadError(`There is no a section \"${sectionId}\" defined.`);\n        }\n        else if (this._sections[sectionId] && !this._sections[sectionId].controlsLoaded) {\n            this._loadSectionControls(sectionId).subscribe(\n                () => this._showControlsHelp(sectionId),\n                err => this._handleLoadError(err)\n            );\n        }\n        else {\n            this._showControlsHelp(sectionId);\n        }\n    }\n\n    showHelp(sectionId: string) {\n        if (this._hlVisible) {\n            return;\n        }\n        if (!this._sections) {\n            this._addGlobalStyles();\n            this._loadSections().subscribe(\n                () => {\n                    this._loadSectionHtml(sectionId).subscribe(\n                        () => this._showHelp(sectionId),\n                        err => this._handleLoadError(err)\n                    );\n                },\n                err => this._handleLoadError(err)\n            );\n        }\n        else if (!this._sections[sectionId]) {\n            this._handleLoadError(`There is no a section \"${sectionId}\" defined.`);\n        }\n        else if (this._sections[sectionId] && !this._sections[sectionId].controlsLoaded) {\n            this._loadSectionHtml(sectionId).subscribe(\n                () => this._showHelp(sectionId),\n                err => this._handleLoadError(err)\n            );\n        }\n        else {\n            this._showHelp(sectionId);\n        }\n    }\n\n    private _loadSections(): Observable<void> {\n        this._showLoading();\n        return new Observable(obs => {\n            this._http.get<{ sections: DmTourSection[] }>(this._cfg.rootPath + '/index.json').subscribe(\n                res => {\n                    this._hideLoading();\n                    if (res && res.sections) {\n                        this._sections = {};\n                        for (const section of res.sections) {\n                            this._sections[section.id] = section;\n                        }\n                        obs.next();\n                    }\n                    else {\n                        obs.error('Wrong data format in ${this._cfg.rootPath}/index.json');\n                    }\n                },\n                err => {\n                    this._hideLoading();\n                    obs.error(err);\n                }\n            );\n        });\n    }\n\n    private _loadSectionControls(sectionId: string): Observable<void> {\n        this._showLoading();\n        if (!this._controls[sectionId]) {\n            this._controls[sectionId] = {};\n        }\n        return new Observable(obs => {\n            this._http.get<{ controls: DmTourControl[] }>(`${this._cfg.rootPath}/${sectionId}/index.json`).subscribe(\n                res => {\n                    this._hideLoading();\n                    if (res && res.controls) {\n                        for (const ctrl of res.controls) {\n                            const c = this._controls[sectionId][ctrl.id];\n                            this._controls[sectionId][ctrl.id] = ctrl;\n                            this._controls[sectionId][ctrl.id].el = c ? c.el : null;\n                        }\n                        obs.next();\n                    }\n                    else {\n                        obs.error('${this._cfg.rootPath}/${sectionId}/index.json');\n                    }\n                },\n                err => {\n                    this._hideLoading();\n                    obs.error(err);\n                }\n            );\n        });\n    }\n\n    private _loadSectionHtml(sectionId: string): Observable<void> {\n        this._showLoading();\n        return new Observable(obs => {\n            this._http.get(`${this._cfg.rootPath}/${sectionId}/index.html`, { responseType: 'text' }).subscribe(\n                res => {\n                    this._L('section html:', res);\n                    this._hideLoading();\n                    this._sections[sectionId].html = res;\n                    obs.next();\n                },\n                err => {\n                    this._hideLoading();\n                    obs.error(err);\n                }\n            );\n        });\n    }\n\n    private _showControlsHelp(sectionId: string) {\n        const ids: string[] = this._controls[sectionId] ? Object.keys(this._controls[sectionId]) : [];\n        if (!ids || ids.length == 0) {\n            this._W(`There are no visible controls registered for the section \"${sectionId}\"`);\n            return;\n        }\n        const R = this._r2;\n        const bd = this.document.querySelector('#ngxDmTourRoot');\n        if (bd) {\n            R.removeChild(this.document.body, bd);\n        }\n        const svg = R.createElement('svg', 'svg');\n        const defs = R.createElement('defs', 'svg');\n\n        let stop: any;\n\n        const rgr = R.createElement('radialGradient', 'svg');\n        R.setAttribute(rgr, 'id', 'ngxDmTourGradientR');\n        stop = R.createElement('stop', 'svg');\n        R.setAttribute(stop, 'offset', '90%');\n        R.setAttribute(stop, 'stop-color', 'black');\n        R.appendChild(rgr, stop);\n        stop = R.createElement('stop', 'svg');\n        R.setAttribute(stop, 'offset', '100%');\n        R.setAttribute(stop, 'stop-color', 'transparent');\n        R.appendChild(rgr, stop);\n        R.appendChild(defs, rgr);\n\n        const mask = R.createElement('mask', 'svg');\n        R.setAttribute(mask, 'id', 'ngxDmTourControlsMask');\n        const mrect = R.createElement('rect', 'svg');\n        R.setAttribute(mrect, 'width', '10000');\n        R.setAttribute(mrect, 'height', '10000');\n        R.setAttribute(mrect, 'fill', 'white');\n        R.appendChild(mask, mrect);\n\n        const tts: any[] = [];\n        for (const id of ids) {\n            const c = this._controls[sectionId][id];\n            if (c && c.el) {\n                if (!c.children && c.text) {\n                    const tt = this._addControlHl(c, mask);\n                    if (tt) {\n                        tts.push(tt);\n                    }\n                }\n                else if (c.children) {\n                    for (const ch of c.children) {\n                        if (ch.text) {\n                            const tt = this._addControlHl(ch, mask);\n                            if (tt) {\n                                tts.push(tt);\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        if (tts.length == 0) {\n            this._W(`There are no visible controls registered for the section \"${sectionId}\"`);\n            return;\n        }\n        R.appendChild(defs, mask);\n        R.appendChild(svg, defs);\n\n        const rect = R.createElement('rect', 'svg');\n        R.setAttribute(rect, 'width', '10000');\n        R.setAttribute(rect, 'height', '10000');\n        R.setAttribute(rect, 'x', '0');\n        R.setAttribute(rect, 'y', '0');\n        R.setAttribute(rect, 'fill', 'var(--ngx-dm-tour-backdrop-color, black)');\n        R.setAttribute(rect, 'mask', 'url(#ngxDmTourControlsMask)');\n        R.appendChild(svg, rect);\n        R.setAttribute(svg, 'width', '10000px');\n        R.setAttribute(svg, 'height', '10000px');\n\n        this._root = R.createElement('div');\n        R.setAttribute(this._root, 'id', 'ngxDmTourRoot');\n        if (this._cfg.customCssClass) {\n            R.addClass(this._root, this._cfg.customCssClass);\n        }\n        const root = R.createElement('div');\n        R.appendChild(this._root, root);\n        R.setAttribute(root, 'id', 'ngxDmTourBackdrop');\n        R.appendChild(root, svg);\n\n        for (const tt of tts) {\n            R.appendChild(this._root, tt);\n        }\n\n        this.document.activeElement.blur();\n        this._hlVisible = { type: 'controls', sectionId };\n        R.appendChild(this.document.body, this._root);\n        setTimeout(() => {\n            R.addClass(this._root, 'ngx-dm-tour-show');\n            this._onClickRemove = R.listen(this.document, 'click', e => this.hideControlsHelp(e));\n            this._onKeyupRemove = R.listen(this.document, 'keyup', e => this.hideControlsHelp(e));\n        }, 300);\n    }\n\n    private _addControlHl(c: DmTourControl, mask: any): any {\n        const dr = this.document.body.getBoundingClientRect();\n        const MR = Math.round;\n        const R = this._r2;\n        const el = typeof c.el === 'string' ? this.document.querySelector(c.el) : c.el;\n        const b = this._getBoundaries(el);\n        const vis = isElemVisible(el);\n        this._L('control:', c, '\\nelem:', el, '\\nboundaries:', b, '\\nisVisible:', vis);\n        if (!vis || !b || b.width == 0 || b.height == 0) {\n            return null;\n        }\n        const shape = c.shape\n            ? c.shape\n            : this._cfg.defaultShape == 'auto'\n                ? (b.width > 200 || b.height > 200 ? 'square' : 'circle')\n                : this._cfg.defaultShape;\n        if (shape == 'square') {\n            const hl = R.createElement('rect', 'svg');\n            R.setAttribute(hl, 'x', '' + MR(b.left - 10));\n            R.setAttribute(hl, 'y', '' + MR(b.top - 10));\n            R.setAttribute(hl, 'width', '' + MR(b.width + 20));\n            R.setAttribute(hl, 'height', '' + MR(b.height + 20));\n            R.setAttribute(hl, 'rx', '8');\n            R.setAttribute(hl, 'fill', 'black');\n            R.setAttribute(hl, 'stroke', 'black');\n            R.setAttribute(hl, 'stroke-width', 'var(--ngx-dm-tour-hl-stroke-width, 15)');\n            R.setAttribute(hl, 'stroke-opacity', 'var(--ngx-dm-tour-hl-stroke-opacity, .3)');\n            R.appendChild(mask, hl);\n        }\n        else {\n            const hl = R.createElement('circle', 'svg');\n            const r = b.width > b.height ? b.width / 2 : b.height / 2;\n            R.setAttribute(hl, 'cx', '' + MR(b.left + b.width / 2));\n            R.setAttribute(hl, 'cy', '' + MR(b.top + b.height / 2));\n            R.setAttribute(hl, 'r', '' + MR(r + 10));\n            R.setAttribute(hl, 'fill', 'black');\n            R.setAttribute(hl, 'stroke', 'black');\n            R.setAttribute(hl, 'stroke-width', 'var(--ngx-dm-tour-hl-stroke-width, 15)');\n            R.setAttribute(hl, 'stroke-opacity', 'var(--ngx-dm-tour-hl-stroke-opacity, .3)');\n            R.appendChild(mask, hl);\n        }\n\n        const tt = R.createElement('div');\n        R.addClass(tt, 'ngx-dm-tour-text');\n        const tti = R.createElement('div');\n        R.addClass(tti, 'ngx-dm-tour-text-inner');\n        R.appendChild(tti, R.createText(c.text));\n        R.appendChild(tt, tti);\n        let pos = c.pos && c.pos != 'auto' ? c.pos.split('-') : null;\n        if (!pos) {\n            if (b.top > 250) {\n                pos = ['top', 'center'];\n            }\n            else if (dr.width - b.right > 250) {\n                pos = ['right', 'center'];\n            }\n            else if (dr.height - b.bottom > 250) {\n                pos = ['bottom', 'center'];\n            }\n            else if (b.left > 250) {\n                pos = ['left', 'center'];\n            }\n            else {\n                pos = ['center', 'center'];\n            }\n        }\n        else if (pos.length == 1) {\n            pos.push('center');\n        }\n        let x = MR(b.left + b.width / 2);\n        let y = MR(b.top + b.height / 2);\n        let tx = -50;\n        let ty = -50;\n        if (pos[0] == 'top') {\n            ty = -100;\n            y = b.top - 20;\n            if (pos[1] == 'left') {\n                tx = 0;\n                x = b.left;\n            }\n            else if (pos[1] == 'right') {\n                tx = -100;\n                x = b.right;\n            }\n        }\n        else if (pos[0] == 'bottom') {\n            ty = 0;\n            y = b.bottom + 20;\n            if (pos[1] == 'left') {\n                tx = 0;\n                x = b.left;\n            }\n            else if (pos[1] == 'right') {\n                tx = -100;\n                x = b.right;\n            }\n        }\n        else if (pos[0] == 'left') {\n            tx = -100;\n            x = b.left - 20;\n            if (pos[1] == 'top') {\n                ty = 0;\n                y = b.top;\n            }\n            else if (pos[1] == 'bottom') {\n                ty = -100;\n                y = b.bottom;\n            }\n        }\n        else if (pos[0] == 'right') {\n            tx = 0;\n            x = b.right + 20;\n            if (pos[1] == 'top') {\n                ty = 0;\n                y = b.top;\n            }\n            else if (pos[1] == 'bottom') {\n                ty = -100;\n                y = b.bottom;\n            }\n        }\n        // console.log(`[${c.id}] pos:`, pos, '\\n\\tb:', b, `-> ${x}x${y}`, '\\n\\tc:', c);\n        R.setStyle(tt, 'top', `${y}px`);\n        R.setStyle(tt, 'left', `${x}px`);\n        R.setStyle(tt, 'transform', `translate(${tx}%, ${ty}%) scale(1)`);\n        R.addClass(tt, `ngx-dm-tour-text-${pos[0]}-${pos[1]}`);\n\n        return tt;\n    }\n\n    private _showHelp(sectionId: string) {\n        const sec = this._sections[sectionId];\n        const R = this._r2;\n        const obd = this.document.querySelector('ngxDmTourRoot');\n        if (obd) {\n            obd.remove();\n        }\n\n        this._root = R.createElement('div');\n        R.setAttribute(this._root, 'id', 'ngxDmTourRoot');\n        if (this._cfg.customCssClass) {\n            R.addClass(this._root, this._cfg.customCssClass);\n        }\n        const root = R.createElement('div');\n        R.appendChild(this._root, root);\n        R.setAttribute(root, 'id', 'ngxDmTourBackdrop');\n        R.addClass(root, 'ngx-dm-tour-dialog');\n\n        const dc = R.createElement('div');\n        R.appendChild(this._root, dc);\n        R.setAttribute(dc, 'id', 'ngxDmTourDialogContainer');\n        const d = R.createElement('div');\n        R.appendChild(dc, d);\n        R.setAttribute(d, 'id', 'ngxDmTourDialog');\n        R.addClass(d, `ngx-dm-tour-section-${sec.id}`);\n\n        const btnClose = R.createElement('button');\n        R.appendChild(d, btnClose);\n        R.setAttribute(btnClose, 'id', 'ngxDmTourDialogBtnClose');\n        R.addClass(btnClose, 'ngx-dm-tour-button');\n        const btnControls = R.createElement('button');\n        R.appendChild(d, btnControls);\n        R.setAttribute(btnControls, 'id', 'ngxDmTourDialogBtnControls');\n        R.addClass(btnControls, 'ngx-dm-tour-button');\n        R.listen(btnControls, 'click', e => this.hideHelp(e, () => this.showControlsHelp(sectionId)));\n\n        const dt = R.createElement('div');\n        R.appendChild(d, dt);\n        R.setAttribute(dt, 'id', 'ngxDmTourDialogTitle');\n        R.appendChild(dt, R.createText(`Section \"${sec.title}\"`));\n\n        const dd = R.createElement('div');\n        R.appendChild(d, dd);\n        R.setAttribute(dd, 'id', 'ngxDmTourDialogDesc');\n        const ddi = R.createElement('div');\n        R.appendChild(dd, ddi);\n        R.setAttribute(ddi, 'id', 'ngxDmTourDialogDescInner');\n        ddi.innerHTML = sec.html;\n\n        this.document.activeElement.blur();\n        this._hlVisible = { type: 'help', sectionId };\n        R.appendChild(this.document.body, this._root);\n        this._L('_showHelp, root:', this._root);\n        setTimeout(() => {\n            R.addClass(this._root, 'ngx-dm-tour-show');\n            this._onClickRemove = R.listen(this.document, 'click', e => this.hideControlsHelp(e));\n            this._onKeyupRemove = R.listen(this.document, 'keyup', e => this.hideControlsHelp(e));\n        });\n    }\n\n    hideControlsHelp(e?: Event) {\n        this.hideHelp(e);\n    }\n\n    hideHelp(e?: Event, cb?: () => void) {\n        this._L('hideHelp');\n        if (e) {\n            e.stopImmediatePropagation();\n            e.preventDefault();\n        }\n        if (this._onClickRemove) {\n            this._onClickRemove();\n            this._onClickRemove = null;\n        }\n        if (this._onKeyupRemove) {\n            this._onKeyupRemove();\n            this._onKeyupRemove = null;\n        }\n        if (this._root && this._r2) {\n            this._r2.removeClass(this._root, 'ngx-dm-tour-show');\n            setTimeout(() => {\n                if (this._root) {\n                    this._root.remove();\n                }\n                this._hlVisible = null;\n                if (cb) {\n                    cb();\n                }\n            }, 500);\n        }\n        else {\n            this._hlVisible = null;\n            if (cb) {\n                cb();\n            }\n        }\n    }\n\n    private _getBoundaries(el: any): DOMRect {\n        if (!el || !el.getBoundingClientRect) {\n            return null;\n        }\n        return el.getBoundingClientRect();\n    }\n\n    private _showLoading() {\n        const R = this._r2;\n        const obd = this.document.querySelector('#ngxDmTourLoading');\n        if (obd) {\n            obd.remove();\n        }\n\n        const root = R.createElement('div');\n        R.setAttribute(root, 'id', 'ngxDmTourLoading');\n        if (this._cfg.customCssClass) {\n            R.addClass(root, this._cfg.customCssClass);\n        }\n        root.innerHTML = this._cfg.loaderHtml;\n\n        this.document.activeElement.blur();\n        R.appendChild(this.document.body, root);\n        setTimeout(() => R.setStyle(root, 'background-color', 'var(--ngx-dm-tour-loading-bg-color, rgba(0,0,0,.3))'));\n    }\n\n    private _hideLoading() {\n        const R = this._r2;\n        const obd = this.document.querySelector('#ngxDmTourLoading');\n        if (obd) {\n            obd.remove();\n        }\n    }\n\n    private _handleLoadError(err: any) {\n        this._W('[ngx-dm-tour] load error:', err);\n    }\n\n    private _addGlobalStyles() {\n        const obd = this.document.head.querySelector('#ngxDmTourStyles');\n        if (!obd) {\n            const R = this._r2;\n            const root = R.createElement('style');\n            R.setAttribute(root, 'id', 'ngxDmTourStyles');\n            root.innerHTML = GLOBAL_STYLES;\n            R.appendChild(this.document.head, root);\n        }\n    }\n\n    private _L(...args) {\n        if (this._cfg.debug > 0) {\n            console.log('[ngx-dm-tour]', ...args);\n        }\n    }\n\n    private _W(...args) {\n        if (this._cfg.debug > 1) {\n            console.warn('[ngx-dm-tour]', ...args);\n        }\n    }\n\n}\n","import { Directive, Input, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\nimport { DmTourService } from './dm-tour.service';\n\n@Directive({\n    selector: '[dm-tour]'\n})\nexport class DmTourDirective implements AfterViewInit, OnDestroy {\n    @Input('dm-tour') item: string;\n\n    constructor(private _el: ElementRef, private _ts: DmTourService) {\n    }\n\n    ngAfterViewInit() {\n        if (!this.item) {\n            return;\n        }\n        const path = this.item.split('.');\n        if (!path || path.length != 2) {\n            console.warn('[dm-tour] tour element ID must be in form \"sectionID.ItemID\": ', this.item);\n            return;\n        }\n        this._ts.registerControl(\n            path[0],\n            path[1],\n            this._el\n        );\n    }\n\n    ngOnDestroy() {\n        if (!this.item) {\n            return;\n        }\n        const path = this.item.split('.');\n        if (!path || path.length != 2) {\n            return;\n        }\n        this._ts.unregisterControl(path[0], path[path.length - 1]);\n    }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { DmTourDirective } from './dm-tour.directive'\n\n@NgModule({\n    declarations: [\n        DmTourDirective\n    ],\n    imports: [\n        CommonModule, HttpClientModule\n    ],\n    exports: [\n        DmTourDirective\n    ]\n})\nexport class DmTourModule { }\n"],"names":["InjectionToken","Subject","debounceTime","Observable","Injectable","RendererFactory2","HttpClient","Inject","DOCUMENT","Optional","Directive","ElementRef","Input","NgModule","CommonModule","HttpClientModule"],"mappings":"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"}