@dimanoid/ngx-dm-tour
Version:
1,052 lines • 96 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/dm-tour.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { __read, __spread, __values } from "tslib";
import { Injectable, Inject, Optional, RendererFactory2 } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { HttpClient } from '@angular/common/http';
import { DmTourConfig, DM_TOUR_CONF } from './models';
import { isElemVisible } from './utils';
import { Observable, Subject } from 'rxjs';
import { GLOBAL_STYLES } from './dm-tour.styles';
import { debounceTime } from 'rxjs/operators';
import ResizeObserver from 'resize-observer-polyfill';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
import * as i2 from "@angular/common";
import * as i3 from "./models/dm-tour-config";
var DmTourService = /** @class */ (function () {
function DmTourService(_rendererFactory, _http, document, cfg) {
var _this = this;
this._rendererFactory = _rendererFactory;
this._http = _http;
this.document = document;
this._controls = {};
this._hlVisible = null;
this._cfg = new DmTourConfig(cfg);
this._r2 = this._rendererFactory.createRenderer(null, null);
if (this._cfg.loadIndexOnStart) {
this._addGlobalStyles();
this._loadSections().subscribe((/**
* @return {?}
*/
function () { }), (/**
* @param {?} err
* @return {?}
*/
function (err) { return _this._handleLoadError(err); }));
}
if (ResizeObserver) {
/** @type {?} */
var resized_1 = new Subject();
new ResizeObserver((/**
* @return {?}
*/
function () { return resized_1.next(); })).observe(this.document.body);
resized_1.pipe(debounceTime(500)).subscribe((/**
* @return {?}
*/
function () { return _this._resized(); }));
}
}
/**
* @private
* @return {?}
*/
DmTourService.prototype._resized = /**
* @private
* @return {?}
*/
function () {
this._L('_resized', this._hlVisible);
if (this._r2 && this._root && this._hlVisible && this._hlVisible.type == 'controls') {
/** @type {?} */
var bd = this.document.querySelector('#ngxDmTourRoot');
this._L('_resized, bd:', bd);
if (bd) {
bd.remove();
this._root = null;
}
if (this._onClickRemove) {
this._onClickRemove();
this._onClickRemove = null;
}
if (this._onKeyupRemove) {
this._onKeyupRemove();
this._onKeyupRemove = null;
}
/** @type {?} */
var sid = this._hlVisible.sectionId;
this._hlVisible = null;
this._showControlsHelp(sid);
}
};
/**
* @param {?} sectionId
* @param {?} id
* @param {?} el
* @return {?}
*/
DmTourService.prototype.registerControl = /**
* @param {?} sectionId
* @param {?} id
* @param {?} el
* @return {?}
*/
function (sectionId, id, el) {
if (!sectionId || !id || !el) {
return;
}
this._L("registerControl, sectionId: " + sectionId + ", is: " + id + ", el:", el);
if (!this._controls[sectionId]) {
this._controls[sectionId] = {};
}
if (!this._controls[sectionId][id]) {
this._controls[sectionId][id] = { id: id };
}
this._controls[sectionId][id].el = el.nativeElement;
};
/**
* @param {?} sectionId
* @param {?} id
* @return {?}
*/
DmTourService.prototype.unregisterControl = /**
* @param {?} sectionId
* @param {?} id
* @return {?}
*/
function (sectionId, id) {
if (!this._controls[sectionId] || this._controls[sectionId][id]) {
return;
}
this._L("unregisterControl, sectionId: " + sectionId + ", is: " + id);
delete this._controls[sectionId][id].el;
};
/**
* @param {?} sectionId
* @return {?}
*/
DmTourService.prototype.showControlsHelp = /**
* @param {?} sectionId
* @return {?}
*/
function (sectionId) {
var _this = this;
if (this._hlVisible) {
return;
}
if (!this._sections) {
this._addGlobalStyles();
this._loadSections().subscribe((/**
* @return {?}
*/
function () {
_this._loadSectionControls(sectionId).subscribe((/**
* @return {?}
*/
function () { return _this._showControlsHelp(sectionId); }), (/**
* @param {?} err
* @return {?}
*/
function (err) { return _this._handleLoadError(err); }));
}), (/**
* @param {?} err
* @return {?}
*/
function (err) { return _this._handleLoadError(err); }));
}
else if (!this._sections[sectionId]) {
this._handleLoadError("There is no a section \"" + sectionId + "\" defined.");
}
else if (this._sections[sectionId] && !this._sections[sectionId].controlsLoaded) {
this._loadSectionControls(sectionId).subscribe((/**
* @return {?}
*/
function () { return _this._showControlsHelp(sectionId); }), (/**
* @param {?} err
* @return {?}
*/
function (err) { return _this._handleLoadError(err); }));
}
else {
this._showControlsHelp(sectionId);
}
};
/**
* @param {?} sectionId
* @return {?}
*/
DmTourService.prototype.showHelp = /**
* @param {?} sectionId
* @return {?}
*/
function (sectionId) {
var _this = this;
if (this._hlVisible) {
return;
}
if (!this._sections) {
this._addGlobalStyles();
this._loadSections().subscribe((/**
* @return {?}
*/
function () {
_this._loadSectionHtml(sectionId).subscribe((/**
* @return {?}
*/
function () { return _this._showHelp(sectionId); }), (/**
* @param {?} err
* @return {?}
*/
function (err) { return _this._handleLoadError(err); }));
}), (/**
* @param {?} err
* @return {?}
*/
function (err) { return _this._handleLoadError(err); }));
}
else if (!this._sections[sectionId]) {
this._handleLoadError("There is no a section \"" + sectionId + "\" defined.");
}
else if (this._sections[sectionId] && !this._sections[sectionId].controlsLoaded) {
this._loadSectionHtml(sectionId).subscribe((/**
* @return {?}
*/
function () { return _this._showHelp(sectionId); }), (/**
* @param {?} err
* @return {?}
*/
function (err) { return _this._handleLoadError(err); }));
}
else {
this._showHelp(sectionId);
}
};
/**
* @private
* @return {?}
*/
DmTourService.prototype._loadSections = /**
* @private
* @return {?}
*/
function () {
var _this = this;
this._showLoading();
return new Observable((/**
* @param {?} obs
* @return {?}
*/
function (obs) {
_this._http.get(_this._cfg.rootPath + '/index.json').subscribe((/**
* @param {?} res
* @return {?}
*/
function (res) {
var e_1, _a;
_this._hideLoading();
if (res && res.sections) {
_this._sections = {};
try {
for (var _b = __values(res.sections), _c = _b.next(); !_c.done; _c = _b.next()) {
var section = _c.value;
_this._sections[section.id] = section;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
obs.next();
}
else {
obs.error('Wrong data format in ${this._cfg.rootPath}/index.json');
}
}), (/**
* @param {?} err
* @return {?}
*/
function (err) {
_this._hideLoading();
obs.error(err);
}));
}));
};
/**
* @private
* @param {?} sectionId
* @return {?}
*/
DmTourService.prototype._loadSectionControls = /**
* @private
* @param {?} sectionId
* @return {?}
*/
function (sectionId) {
var _this = this;
this._showLoading();
if (!this._controls[sectionId]) {
this._controls[sectionId] = {};
}
return new Observable((/**
* @param {?} obs
* @return {?}
*/
function (obs) {
_this._http.get(_this._cfg.rootPath + "/" + sectionId + "/index.json").subscribe((/**
* @param {?} res
* @return {?}
*/
function (res) {
var e_2, _a;
_this._hideLoading();
if (res && res.controls) {
try {
for (var _b = __values(res.controls), _c = _b.next(); !_c.done; _c = _b.next()) {
var ctrl = _c.value;
/** @type {?} */
var c = _this._controls[sectionId][ctrl.id];
_this._controls[sectionId][ctrl.id] = ctrl;
_this._controls[sectionId][ctrl.id].el = c ? c.el : null;
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_2) throw e_2.error; }
}
obs.next();
}
else {
obs.error('${this._cfg.rootPath}/${sectionId}/index.json');
}
}), (/**
* @param {?} err
* @return {?}
*/
function (err) {
_this._hideLoading();
obs.error(err);
}));
}));
};
/**
* @private
* @param {?} sectionId
* @return {?}
*/
DmTourService.prototype._loadSectionHtml = /**
* @private
* @param {?} sectionId
* @return {?}
*/
function (sectionId) {
var _this = this;
this._showLoading();
return new Observable((/**
* @param {?} obs
* @return {?}
*/
function (obs) {
_this._http.get(_this._cfg.rootPath + "/" + sectionId + "/index.html", { responseType: 'text' }).subscribe((/**
* @param {?} res
* @return {?}
*/
function (res) {
_this._L('section html:', res);
_this._hideLoading();
_this._sections[sectionId].html = res;
obs.next();
}), (/**
* @param {?} err
* @return {?}
*/
function (err) {
_this._hideLoading();
obs.error(err);
}));
}));
};
/**
* @private
* @param {?} sectionId
* @return {?}
*/
DmTourService.prototype._showControlsHelp = /**
* @private
* @param {?} sectionId
* @return {?}
*/
function (sectionId) {
var e_3, _a, e_4, _b, e_5, _c;
var _this = this;
/** @type {?} */
var ids = this._controls[sectionId] ? Object.keys(this._controls[sectionId]) : [];
if (!ids || ids.length == 0) {
this._W("There are no visible controls registered for the section \"" + sectionId + "\"");
return;
}
/** @type {?} */
var R = this._r2;
/** @type {?} */
var bd = this.document.querySelector('#ngxDmTourRoot');
if (bd) {
R.removeChild(this.document.body, bd);
}
/** @type {?} */
var svg = R.createElement('svg', 'svg');
/** @type {?} */
var defs = R.createElement('defs', 'svg');
/** @type {?} */
var stop;
/** @type {?} */
var rgr = R.createElement('radialGradient', 'svg');
R.setAttribute(rgr, 'id', 'ngxDmTourGradientR');
stop = R.createElement('stop', 'svg');
R.setAttribute(stop, 'offset', '90%');
R.setAttribute(stop, 'stop-color', 'black');
R.appendChild(rgr, stop);
stop = R.createElement('stop', 'svg');
R.setAttribute(stop, 'offset', '100%');
R.setAttribute(stop, 'stop-color', 'transparent');
R.appendChild(rgr, stop);
R.appendChild(defs, rgr);
/** @type {?} */
var mask = R.createElement('mask', 'svg');
R.setAttribute(mask, 'id', 'ngxDmTourControlsMask');
/** @type {?} */
var mrect = R.createElement('rect', 'svg');
R.setAttribute(mrect, 'width', '10000');
R.setAttribute(mrect, 'height', '10000');
R.setAttribute(mrect, 'fill', 'white');
R.appendChild(mask, mrect);
/** @type {?} */
var tts = [];
try {
for (var ids_1 = __values(ids), ids_1_1 = ids_1.next(); !ids_1_1.done; ids_1_1 = ids_1.next()) {
var id = ids_1_1.value;
/** @type {?} */
var c = this._controls[sectionId][id];
if (c && c.el) {
if (!c.children && c.text) {
/** @type {?} */
var tt = this._addControlHl(c, mask);
if (tt) {
tts.push(tt);
}
}
else if (c.children) {
try {
for (var _d = (e_4 = void 0, __values(c.children)), _e = _d.next(); !_e.done; _e = _d.next()) {
var ch = _e.value;
if (ch.text) {
/** @type {?} */
var tt = this._addControlHl(ch, mask);
if (tt) {
tts.push(tt);
}
}
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
}
finally { if (e_4) throw e_4.error; }
}
}
}
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (ids_1_1 && !ids_1_1.done && (_a = ids_1.return)) _a.call(ids_1);
}
finally { if (e_3) throw e_3.error; }
}
if (tts.length == 0) {
this._W("There are no visible controls registered for the section \"" + sectionId + "\"");
return;
}
R.appendChild(defs, mask);
R.appendChild(svg, defs);
/** @type {?} */
var rect = R.createElement('rect', 'svg');
R.setAttribute(rect, 'width', '10000');
R.setAttribute(rect, 'height', '10000');
R.setAttribute(rect, 'x', '0');
R.setAttribute(rect, 'y', '0');
R.setAttribute(rect, 'fill', 'var(--ngx-dm-tour-backdrop-color, black)');
R.setAttribute(rect, 'mask', 'url(#ngxDmTourControlsMask)');
R.appendChild(svg, rect);
R.setAttribute(svg, 'width', '10000px');
R.setAttribute(svg, 'height', '10000px');
this._root = R.createElement('div');
R.setAttribute(this._root, 'id', 'ngxDmTourRoot');
if (this._cfg.customCssClass) {
R.addClass(this._root, this._cfg.customCssClass);
}
/** @type {?} */
var root = R.createElement('div');
R.appendChild(this._root, root);
R.setAttribute(root, 'id', 'ngxDmTourBackdrop');
R.appendChild(root, svg);
try {
for (var tts_1 = __values(tts), tts_1_1 = tts_1.next(); !tts_1_1.done; tts_1_1 = tts_1.next()) {
var tt = tts_1_1.value;
R.appendChild(this._root, tt);
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (tts_1_1 && !tts_1_1.done && (_c = tts_1.return)) _c.call(tts_1);
}
finally { if (e_5) throw e_5.error; }
}
this.document.activeElement.blur();
this._hlVisible = { type: 'controls', sectionId: sectionId };
R.appendChild(this.document.body, this._root);
setTimeout((/**
* @return {?}
*/
function () {
R.addClass(_this._root, 'ngx-dm-tour-show');
_this._onClickRemove = R.listen(_this.document, 'click', (/**
* @param {?} e
* @return {?}
*/
function (e) { return _this.hideControlsHelp(e); }));
_this._onKeyupRemove = R.listen(_this.document, 'keyup', (/**
* @param {?} e
* @return {?}
*/
function (e) { return _this.hideControlsHelp(e); }));
}), 300);
};
/**
* @private
* @param {?} c
* @param {?} mask
* @return {?}
*/
DmTourService.prototype._addControlHl = /**
* @private
* @param {?} c
* @param {?} mask
* @return {?}
*/
function (c, mask) {
/** @type {?} */
var dr = this.document.body.getBoundingClientRect();
/** @type {?} */
var MR = Math.round;
/** @type {?} */
var R = this._r2;
/** @type {?} */
var el = typeof c.el === 'string' ? this.document.querySelector(c.el) : c.el;
/** @type {?} */
var b = this._getBoundaries(el);
/** @type {?} */
var vis = isElemVisible(el);
this._L('control:', c, '\nelem:', el, '\nboundaries:', b, '\nisVisible:', vis);
if (!vis || !b || b.width == 0 || b.height == 0) {
return null;
}
/** @type {?} */
var shape = c.shape
? c.shape
: this._cfg.defaultShape == 'auto'
? (b.width > 200 || b.height > 200 ? 'square' : 'circle')
: this._cfg.defaultShape;
if (shape == 'square') {
/** @type {?} */
var hl = R.createElement('rect', 'svg');
R.setAttribute(hl, 'x', '' + MR(b.left - 10));
R.setAttribute(hl, 'y', '' + MR(b.top - 10));
R.setAttribute(hl, 'width', '' + MR(b.width + 20));
R.setAttribute(hl, 'height', '' + MR(b.height + 20));
R.setAttribute(hl, 'rx', '8');
R.setAttribute(hl, 'fill', 'black');
R.setAttribute(hl, 'stroke', 'black');
R.setAttribute(hl, 'stroke-width', 'var(--ngx-dm-tour-hl-stroke-width, 15)');
R.setAttribute(hl, 'stroke-opacity', 'var(--ngx-dm-tour-hl-stroke-opacity, .3)');
R.appendChild(mask, hl);
}
else {
/** @type {?} */
var hl = R.createElement('circle', 'svg');
/** @type {?} */
var r = b.width > b.height ? b.width / 2 : b.height / 2;
R.setAttribute(hl, 'cx', '' + MR(b.left + b.width / 2));
R.setAttribute(hl, 'cy', '' + MR(b.top + b.height / 2));
R.setAttribute(hl, 'r', '' + MR(r + 10));
R.setAttribute(hl, 'fill', 'black');
R.setAttribute(hl, 'stroke', 'black');
R.setAttribute(hl, 'stroke-width', 'var(--ngx-dm-tour-hl-stroke-width, 15)');
R.setAttribute(hl, 'stroke-opacity', 'var(--ngx-dm-tour-hl-stroke-opacity, .3)');
R.appendChild(mask, hl);
}
/** @type {?} */
var tt = R.createElement('div');
R.addClass(tt, 'ngx-dm-tour-text');
/** @type {?} */
var tti = R.createElement('div');
R.addClass(tti, 'ngx-dm-tour-text-inner');
R.appendChild(tti, R.createText(c.text));
R.appendChild(tt, tti);
/** @type {?} */
var pos = c.pos && c.pos != 'auto' ? c.pos.split('-') : null;
if (!pos) {
if (b.top > 250) {
pos = ['top', 'center'];
}
else if (dr.width - b.right > 250) {
pos = ['right', 'center'];
}
else if (dr.height - b.bottom > 250) {
pos = ['bottom', 'center'];
}
else if (b.left > 250) {
pos = ['left', 'center'];
}
else {
pos = ['center', 'center'];
}
}
else if (pos.length == 1) {
pos.push('center');
}
/** @type {?} */
var x = MR(b.left + b.width / 2);
/** @type {?} */
var y = MR(b.top + b.height / 2);
/** @type {?} */
var tx = -50;
/** @type {?} */
var ty = -50;
if (pos[0] == 'top') {
ty = -100;
y = b.top - 20;
if (pos[1] == 'left') {
tx = 0;
x = b.left;
}
else if (pos[1] == 'right') {
tx = -100;
x = b.right;
}
}
else if (pos[0] == 'bottom') {
ty = 0;
y = b.bottom + 20;
if (pos[1] == 'left') {
tx = 0;
x = b.left;
}
else if (pos[1] == 'right') {
tx = -100;
x = b.right;
}
}
else if (pos[0] == 'left') {
tx = -100;
x = b.left - 20;
if (pos[1] == 'top') {
ty = 0;
y = b.top;
}
else if (pos[1] == 'bottom') {
ty = -100;
y = b.bottom;
}
}
else if (pos[0] == 'right') {
tx = 0;
x = b.right + 20;
if (pos[1] == 'top') {
ty = 0;
y = b.top;
}
else if (pos[1] == 'bottom') {
ty = -100;
y = b.bottom;
}
}
// console.log(`[${c.id}] pos:`, pos, '\n\tb:', b, `-> ${x}x${y}`, '\n\tc:', c);
R.setStyle(tt, 'top', y + "px");
R.setStyle(tt, 'left', x + "px");
R.setStyle(tt, 'transform', "translate(" + tx + "%, " + ty + "%) scale(1)");
R.addClass(tt, "ngx-dm-tour-text-" + pos[0] + "-" + pos[1]);
return tt;
};
/**
* @private
* @param {?} sectionId
* @return {?}
*/
DmTourService.prototype._showHelp = /**
* @private
* @param {?} sectionId
* @return {?}
*/
function (sectionId) {
var _this = this;
/** @type {?} */
var sec = this._sections[sectionId];
/** @type {?} */
var R = this._r2;
/** @type {?} */
var obd = this.document.querySelector('ngxDmTourRoot');
if (obd) {
obd.remove();
}
this._root = R.createElement('div');
R.setAttribute(this._root, 'id', 'ngxDmTourRoot');
if (this._cfg.customCssClass) {
R.addClass(this._root, this._cfg.customCssClass);
}
/** @type {?} */
var root = R.createElement('div');
R.appendChild(this._root, root);
R.setAttribute(root, 'id', 'ngxDmTourBackdrop');
R.addClass(root, 'ngx-dm-tour-dialog');
/** @type {?} */
var dc = R.createElement('div');
R.appendChild(this._root, dc);
R.setAttribute(dc, 'id', 'ngxDmTourDialogContainer');
/** @type {?} */
var d = R.createElement('div');
R.appendChild(dc, d);
R.setAttribute(d, 'id', 'ngxDmTourDialog');
R.addClass(d, "ngx-dm-tour-section-" + sec.id);
/** @type {?} */
var btnClose = R.createElement('button');
R.appendChild(d, btnClose);
R.setAttribute(btnClose, 'id', 'ngxDmTourDialogBtnClose');
R.addClass(btnClose, 'ngx-dm-tour-button');
/** @type {?} */
var btnControls = R.createElement('button');
R.appendChild(d, btnControls);
R.setAttribute(btnControls, 'id', 'ngxDmTourDialogBtnControls');
R.addClass(btnControls, 'ngx-dm-tour-button');
R.listen(btnControls, 'click', (/**
* @param {?} e
* @return {?}
*/
function (e) { return _this.hideHelp(e, (/**
* @return {?}
*/
function () { return _this.showControlsHelp(sectionId); })); }));
/** @type {?} */
var dt = R.createElement('div');
R.appendChild(d, dt);
R.setAttribute(dt, 'id', 'ngxDmTourDialogTitle');
R.appendChild(dt, R.createText("Section \"" + sec.title + "\""));
/** @type {?} */
var dd = R.createElement('div');
R.appendChild(d, dd);
R.setAttribute(dd, 'id', 'ngxDmTourDialogDesc');
/** @type {?} */
var ddi = R.createElement('div');
R.appendChild(dd, ddi);
R.setAttribute(ddi, 'id', 'ngxDmTourDialogDescInner');
ddi.innerHTML = sec.html;
this.document.activeElement.blur();
this._hlVisible = { type: 'help', sectionId: sectionId };
R.appendChild(this.document.body, this._root);
this._L('_showHelp, root:', this._root);
setTimeout((/**
* @return {?}
*/
function () {
R.addClass(_this._root, 'ngx-dm-tour-show');
_this._onClickRemove = R.listen(_this.document, 'click', (/**
* @param {?} e
* @return {?}
*/
function (e) { return _this.hideControlsHelp(e); }));
_this._onKeyupRemove = R.listen(_this.document, 'keyup', (/**
* @param {?} e
* @return {?}
*/
function (e) { return _this.hideControlsHelp(e); }));
}));
};
/**
* @param {?=} e
* @return {?}
*/
DmTourService.prototype.hideControlsHelp = /**
* @param {?=} e
* @return {?}
*/
function (e) {
this.hideHelp(e);
};
/**
* @param {?=} e
* @param {?=} cb
* @return {?}
*/
DmTourService.prototype.hideHelp = /**
* @param {?=} e
* @param {?=} cb
* @return {?}
*/
function (e, cb) {
var _this = this;
this._L('hideHelp');
if (e) {
e.stopImmediatePropagation();
e.preventDefault();
}
if (this._onClickRemove) {
this._onClickRemove();
this._onClickRemove = null;
}
if (this._onKeyupRemove) {
this._onKeyupRemove();
this._onKeyupRemove = null;
}
if (this._root && this._r2) {
this._r2.removeClass(this._root, 'ngx-dm-tour-show');
setTimeout((/**
* @return {?}
*/
function () {
if (_this._root) {
_this._root.remove();
}
_this._hlVisible = null;
if (cb) {
cb();
}
}), 500);
}
else {
this._hlVisible = null;
if (cb) {
cb();
}
}
};
/**
* @private
* @param {?} el
* @return {?}
*/
DmTourService.prototype._getBoundaries = /**
* @private
* @param {?} el
* @return {?}
*/
function (el) {
if (!el || !el.getBoundingClientRect) {
return null;
}
return el.getBoundingClientRect();
};
/**
* @private
* @return {?}
*/
DmTourService.prototype._showLoading = /**
* @private
* @return {?}
*/
function () {
/** @type {?} */
var R = this._r2;
/** @type {?} */
var obd = this.document.querySelector('#ngxDmTourLoading');
if (obd) {
obd.remove();
}
/** @type {?} */
var root = R.createElement('div');
R.setAttribute(root, 'id', 'ngxDmTourLoading');
if (this._cfg.customCssClass) {
R.addClass(root, this._cfg.customCssClass);
}
root.innerHTML = this._cfg.loaderHtml;
this.document.activeElement.blur();
R.appendChild(this.document.body, root);
setTimeout((/**
* @return {?}
*/
function () { return R.setStyle(root, 'background-color', 'var(--ngx-dm-tour-loading-bg-color, rgba(0,0,0,.3))'); }));
};
/**
* @private
* @return {?}
*/
DmTourService.prototype._hideLoading = /**
* @private
* @return {?}
*/
function () {
/** @type {?} */
var R = this._r2;
/** @type {?} */
var obd = this.document.querySelector('#ngxDmTourLoading');
if (obd) {
obd.remove();
}
};
/**
* @private
* @param {?} err
* @return {?}
*/
DmTourService.prototype._handleLoadError = /**
* @private
* @param {?} err
* @return {?}
*/
function (err) {
this._W('[ngx-dm-tour] load error:', err);
};
/**
* @private
* @return {?}
*/
DmTourService.prototype._addGlobalStyles = /**
* @private
* @return {?}
*/
function () {
/** @type {?} */
var obd = this.document.head.querySelector('#ngxDmTourStyles');
if (!obd) {
/** @type {?} */
var R = this._r2;
/** @type {?} */
var root = R.createElement('style');
R.setAttribute(root, 'id', 'ngxDmTourStyles');
root.innerHTML = GLOBAL_STYLES;
R.appendChild(this.document.head, root);
}
};
/**
* @private
* @param {...?} args
* @return {?}
*/
DmTourService.prototype._L = /**
* @private
* @param {...?} args
* @return {?}
*/
function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (this._cfg.debug > 0) {
console.log.apply(console, __spread(['[ngx-dm-tour]'], args));
}
};
/**
* @private
* @param {...?} args
* @return {?}
*/
DmTourService.prototype._W = /**
* @private
* @param {...?} args
* @return {?}
*/
function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (this._cfg.debug > 1) {
console.warn.apply(console, __spread(['[ngx-dm-tour]'], args));
}
};
DmTourService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
DmTourService.ctorParameters = function () { return [
{ type: RendererFactory2 },
{ type: HttpClient },
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: DmTourConfig, decorators: [{ type: Inject, args: [DM_TOUR_CONF,] }, { type: Optional }] }
]; };
/** @nocollapse */ DmTourService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DmTourService_Factory() { return new DmTourService(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.DOCUMENT), i0.ɵɵinject(i3.DM_TOUR_CONF, 8)); }, token: DmTourService, providedIn: "root" });
return DmTourService;
}());
export { DmTourService };
if (false) {
/**
* @type {?}
* @private
*/
DmTourService.prototype._cfg;
/**
* @type {?}
* @private
*/
DmTourService.prototype._sections;
/**
* @type {?}
* @private
*/
DmTourService.prototype._controls;
/**
* @type {?}
* @private
*/
DmTourService.prototype._r2;
/**
* @type {?}
* @private
*/
DmTourService.prototype._root;
/**
* @type {?}
* @private
*/
DmTourService.prototype._onClickRemove;
/**
* @type {?}
* @private
*/
DmTourService.prototype._onKeyupRemove;
/**
* @type {?}
* @private
*/
DmTourService.prototype._hlVisible;
/**
* @type {?}
* @private
*/
DmTourService.prototype._rendererFactory;
/**
* @type {?}
* @private
*/
DmTourService.prototype._http;
/**
* @type {?}
* @private
*/
DmTourService.prototype.document;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG0tdG91ci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRpbWFub2lkL25neC1kbS10b3VyLyIsInNvdXJjZXMiOlsibGliL2RtLXRvdXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFnQyxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sY0FBYyxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUV0RDtJQWdCSSx1QkFDWSxnQkFBa0MsRUFDbEMsS0FBaUIsRUFDQyxRQUFRLEVBQ0EsR0FBaUI7UUFKdkQsaUJBb0JDO1FBbkJXLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNDLGFBQVEsR0FBUixRQUFRLENBQUE7UUFaOUIsY0FBUyxHQUE2RCxFQUFFLENBQUM7UUFPekUsZUFBVSxHQUFxRCxJQUFJLENBQUM7UUFReEUsSUFBSSxDQUFDLElBQUksR0FBSSxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFB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