@osovitny/anatoly 2.14.20 → 2.14.22
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.
- package/esm2020/lib/core/convert.mjs +1 -1
- package/esm2020/lib/core/dom.mjs +154 -0
- package/esm2020/lib/core/index.mjs +2 -1
- package/esm2020/lib/ui/forms/components/urlslug/urlslug.component.mjs +17 -9
- package/fesm2015/osovitny-anatoly.mjs +170 -8
- package/fesm2015/osovitny-anatoly.mjs.map +1 -1
- package/fesm2020/osovitny-anatoly.mjs +170 -8
- package/fesm2020/osovitny-anatoly.mjs.map +1 -1
- package/lib/core/dom.d.ts +17 -0
- package/lib/core/index.d.ts +1 -0
- package/lib/ui/forms/components/urlslug/urlslug.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -102,4 +102,4 @@ export class Convert {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNLE9BQU8sT0FBTztJQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTTtRQUN2QixJQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDZixPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUM7U0FDckI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQVc7UUFDM0MsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLElBQUksSUFBSSxDQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQzdELEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUNyRixDQUFDO1NBQ0g7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLO1FBQzNDLEtBQUssSUFBSSxDQUFDLElBQUksV0FBVztZQUFFLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLENBQUM7UUFFakUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsV0FBWTtRQUNqRCxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLElBQUksS0FBSyxDQUFDLE1B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UUFDdkIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLO1FBQ2pDLFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLEdBQUc7Z0JBQ04sT0FBTyxJQUFJLENBQUM7WUFFZCxLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxHQUFHLENBQUM7WUFDVCxLQUFLLElBQUk7Z0JBQ1AsT0FBTyxLQUFLLENBQUM7WUFFZjtnQkFDRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5IEp1bmUgMjAyMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcclxuICBwcml2YXRlIHN0YXRpYyBwYWQobnVtYmVyKSB7XHJcbiAgICBpZiAobnVtYmVyIDwgMTApIHtcclxuICAgICAgcmV0dXJuICcwJyArIG51bWJlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBudW1iZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHRvTG9jYWxpemVkRGF0ZVRpbWUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKFxyXG4gICAgICAgIERhdGUuVVRDKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSxcclxuICAgICAgICAgIHZhbHVlLmdldEhvdXJzKCksIHZhbHVlLmdldE1pbnV0ZXMoKSwgdmFsdWUuZ2V0U2Vjb25kcygpLCB2YWx1ZS5nZXRNaWxsaXNlY29uZHMoKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW51bVRvU3RyaW5nKGVudW1lcmF0aW9uLCB2YWx1ZSkge1xyXG4gICAgZm9yIChsZXQgayBpbiBlbnVtZXJhdGlvbikgaWYgKGVudW1lcmF0aW9uW2tdID09IHZhbHVlKSByZXR1cm4gaztcclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW51bVRvQXJyYXkoZW51bWVyYXRpb24sIG5vdEluY2x1ZGVzPykge1xyXG4gICAgY29uc3Qgbm90SW5jbHVkZUZpbGVyID0gKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmIChpc05hTihOdW1iZXIodmFsdWUpKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG5vdEluY2x1ZGVzKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSBpbiBub3RJbmNsdWRlcykge1xyXG4gICAgICAgICAgaWYgKG5vdEluY2x1ZGVzW2ldID09IHZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bWVyYXRpb24pXHJcbiAgICAgICAgICAgICAgICAgLmZpbHRlcihub3RJbmNsdWRlRmlsZXIpXHJcbiAgICAgICAgICAgICAgICAgLm1hcChrZXkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgIHZhbHVlOiBrZXksXHJcbiAgICAgICAgICAgICAgICAgICB0ZXh0OiBlbnVtZXJhdGlvbltrZXldXHJcbiAgICAgICAgICAgICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0FycmF5KHN0cjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICByZXR1cm4gc3RyLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0ludEFycmF5KHN0cjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICByZXR1cm4gc3RyLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCkubWFwKHZhbHVlID0+IHBhcnNlSW50KHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb21wYW55MlN0cmluZyhjb21wOmFueSk6c3RyaW5nIHtcclxuICAgIGxldCBjb21wYW55ID0gSlNPTi5wYXJzZShjb21wKTtcclxuICAgIGlmKGNvbXBhbnkpXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBgJHtjb21wYW55Lm5hbWV9ICR7Y29tcGFueS5waG9uZX0gJHtjb21wYW55LmVtYWlsfSAke2NvbXBhbnkud2Vic2l0ZVVybH1gO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBwdWJsaWMgc3RhdGljIGFkZHJlc3MyU3RyaW5nKGFkcjphbnkpOnN0cmluZyB7XHJcbiAgICBsZXQgYWRkcmVzcyA9IEpTT04ucGFyc2UoYWRyKTtcclxuICAgIHJldHVybiBgJHthZGRyZXNzLnN0cmVldH0gJHthZGRyZXNzLnN0cmVldDJ9ICR7YWRkcmVzcy5jaXR5fSAke2FkZHJlc3Muc3RhdGVPclJlZ2lvbn0gJHthZGRyZXNzLnppcGNvZGV9ICR7YWRkcmVzcy5jb3VudHJ5fWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGRhdGVUb1N0cmluZyhkYXRlKSB7XHJcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICtcclxuICAgICAgJy0nICsgdGhpcy5wYWQoZGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAnLScgKyB0aGlzLnBhZChkYXRlLmdldERhdGUoKSkgK1xyXG4gICAgICAnICcgKyB0aGlzLnBhZChkYXRlLmdldEhvdXJzKCkpICtcclxuICAgICAgJzonICsgdGhpcy5wYWQoZGF0ZS5nZXRNaW51dGVzKCkpICtcclxuICAgICAgJzonICsgdGhpcy5wYWQoZGF0ZS5nZXRTZWNvbmRzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB1dGNEYXRlVG9Mb2NhbERhdGUoZCkge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZShkKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksIGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHN0cmluZ1RvQm9vbGVhbih2YWx1ZSkge1xyXG4gICAgc3dpdGNoICh2YWx1ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKSkge1xyXG4gICAgICBjYXNlIFwidHJ1ZVwiOlxyXG4gICAgICBjYXNlIFwieWVzXCI6XHJcbiAgICAgIGNhc2UgXCIxXCI6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICBjYXNlIFwiZmFsc2VcIjpcclxuICAgICAgY2FzZSBcIm5vXCI6XHJcbiAgICAgIGNhc2UgXCIwXCI6XHJcbiAgICAgIGNhc2UgbnVsbDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
8 Aug 2022
|
|
12
|
+
|
|
13
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
+
</file>
|
|
15
|
+
*/
|
|
16
|
+
import * as $ from 'jquery';
|
|
17
|
+
export class DOM {
|
|
18
|
+
//Private
|
|
19
|
+
static dir(elem, dir, until = null, selector = null) {
|
|
20
|
+
let matched = [];
|
|
21
|
+
let truncate = until !== undefined && until != null;
|
|
22
|
+
while ((elem = elem[dir]) && elem.nodeType !== 9) {
|
|
23
|
+
if (elem.nodeType === 1) {
|
|
24
|
+
/*
|
|
25
|
+
if (truncate && jQuery(elem).is(until)) {
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
*/
|
|
29
|
+
if (selector) {
|
|
30
|
+
let className = selector.replace('.', '');
|
|
31
|
+
if (elem.classList.contains(className)) {
|
|
32
|
+
matched.push(elem);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
matched.push(elem);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return matched;
|
|
41
|
+
}
|
|
42
|
+
//Public
|
|
43
|
+
static first(elements) {
|
|
44
|
+
if (!elements || elements.length == 0) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
return elements[0];
|
|
48
|
+
}
|
|
49
|
+
static any(elements) {
|
|
50
|
+
if (!elements || elements.length == 0) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
static parent(elem) {
|
|
56
|
+
let parentElement = elem.parentElement;
|
|
57
|
+
let parentNode = elem.parentNode;
|
|
58
|
+
return parentNode && parentNode.nodeType !== 11 ? parentElement : null;
|
|
59
|
+
}
|
|
60
|
+
static parents(elem, selector = null) {
|
|
61
|
+
return this.dir(elem, "parentNode", null, selector);
|
|
62
|
+
}
|
|
63
|
+
static findInDocument(selector) {
|
|
64
|
+
let parent = $(document);
|
|
65
|
+
return $(parent).find(selector).get();
|
|
66
|
+
}
|
|
67
|
+
static find(elem, selector) {
|
|
68
|
+
return $(elem).find(selector).get();
|
|
69
|
+
}
|
|
70
|
+
static remove(nodes) {
|
|
71
|
+
if (nodes == null) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (!Array.isArray(nodes)) {
|
|
75
|
+
if (nodes.parentNode) {
|
|
76
|
+
nodes.parentNode.removeChild(nodes);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (nodes.length == 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
let node;
|
|
84
|
+
let i = 0;
|
|
85
|
+
for (; (node = nodes[i]) != null; i++) {
|
|
86
|
+
if (node.parentNode) {
|
|
87
|
+
node.parentNode.removeChild(node);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
static findAndRemove(element, selector) {
|
|
92
|
+
this.remove(this.find(element, selector));
|
|
93
|
+
}
|
|
94
|
+
static show(elem) {
|
|
95
|
+
$(elem).show();
|
|
96
|
+
}
|
|
97
|
+
static hide(elem) {
|
|
98
|
+
$(elem).hide();
|
|
99
|
+
}
|
|
100
|
+
static each(selector, action) {
|
|
101
|
+
let parent = $(document);
|
|
102
|
+
let elems = DOM.find(parent, selector);
|
|
103
|
+
for (let i = 0; i < elems.length; i++) {
|
|
104
|
+
let elem = elems[i];
|
|
105
|
+
action(elem);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//Css
|
|
109
|
+
/*
|
|
110
|
+
public static addClass(e: Element, className: string): Element {
|
|
111
|
+
const class = e.getAttribute('class');
|
|
112
|
+
if (class === null || class === '') {
|
|
113
|
+
e.setAttribute('class', className);
|
|
114
|
+
} else if (!DOM.hasClass(e, className)) {
|
|
115
|
+
e.setAttribute('class', `${class} ${className}`);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return e;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
public static removeClass(e: Element, className: string): Element {
|
|
122
|
+
const class = e.getAttribute('class')
|
|
123
|
+
if (class !== null && class !== '') {
|
|
124
|
+
if (class === className) {
|
|
125
|
+
e.setAttribute('class', '');
|
|
126
|
+
} else {
|
|
127
|
+
const result = class
|
|
128
|
+
.split(' ')
|
|
129
|
+
.filter((s: any) => s !== className)
|
|
130
|
+
.join(' ');
|
|
131
|
+
e.setAttribute('class', result);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return e;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
public static hasClass(e: Element, className: string): boolean {
|
|
139
|
+
const class = e.getAttribute('class') || '';
|
|
140
|
+
const r = new RegExp(`\\b${className}\\b`, '');
|
|
141
|
+
return r.test(class);
|
|
142
|
+
}
|
|
143
|
+
*/
|
|
144
|
+
static addClass(elem, classNames) {
|
|
145
|
+
$(elem).addClass(classNames);
|
|
146
|
+
}
|
|
147
|
+
static removeClass(elem, classNames) {
|
|
148
|
+
$(elem).removeClass(classNames);
|
|
149
|
+
}
|
|
150
|
+
static hasClass(elem, className) {
|
|
151
|
+
$(elem).hasClass(className);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7QUFFM0IsTUFBTSxPQUFPLEdBQUc7SUFDZCxTQUFTO0lBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLFdBQW1CLElBQUk7UUFDOUUsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksUUFBUSxHQUFHLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQztRQUVwRCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQ2hELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCOzs7O2tCQUlFO2dCQUVGLElBQUksUUFBUSxFQUFFO29CQUNaLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMxQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNwQjtpQkFDRjtxQkFDSTtvQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwQjthQUNGO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUTtJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBdUI7UUFDekMsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFR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SUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELEtBQUs7SUFDTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQWtDRTtJQUVLLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBb0IsRUFBRSxVQUFVO1FBQ3JELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBb0IsRUFBRSxVQUFVO1FBQ3hELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBb0IsRUFBRSxTQUFTO1FBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgOCBBdWcgMjAyMlxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5J1xyXG5cclxuZXhwb3J0IGNsYXNzIERPTSB7XHJcbiAgLy9Qcml2YXRlXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZGlyKGVsZW06IEhUTUxFbGVtZW50LCBkaXIsIHVudGlsID0gbnVsbCwgc2VsZWN0b3I6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIGxldCBtYXRjaGVkID0gW107XHJcbiAgICBsZXQgdHJ1bmNhdGUgPSB1bnRpbCAhPT0gdW5kZWZpbmVkICYmIHVudGlsICE9IG51bGw7XHJcblxyXG4gICAgd2hpbGUgKChlbGVtID0gZWxlbVtkaXJdKSAmJiBlbGVtLm5vZGVUeXBlICE9PSA5KSB7XHJcbiAgICAgIGlmIChlbGVtLm5vZGVUeXBlID09PSAxKSB7XHJcbiAgICAgICAgLypcclxuICAgICAgICBpZiAodHJ1bmNhdGUgJiYgalF1ZXJ5KGVsZW0pLmlzKHVudGlsKSkge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICovXHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rvcikge1xyXG4gICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IHNlbGVjdG9yLnJlcGxhY2UoJy4nLCAnJyk7XHJcbiAgICAgICAgICBpZiAoZWxlbS5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKSkge1xyXG4gICAgICAgICAgICBtYXRjaGVkLnB1c2goZWxlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbWF0Y2hlZC5wdXNoKGVsZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXRjaGVkO1xyXG4gIH1cclxuXHJcbiAgLy9QdWJsaWNcclxuICBwdWJsaWMgc3RhdGljIGZpcnN0KGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdKTogSFRNTEVsZW1lbnQge1xyXG4gICAgaWYgKCFlbGVtZW50cyB8fCBlbGVtZW50cy5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZWxlbWVudHNbMF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFueShlbGVtZW50czogSFRNTEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFlbGVtZW50cyB8fCBlbGVtZW50cy5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHBhcmVudChlbGVtOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcclxuICAgIGxldCBwYXJlbnRFbGVtZW50ID0gZWxlbS5wYXJlbnRFbGVtZW50O1xyXG4gICAgbGV0IHBhcmVudE5vZGUgPSBlbGVtLnBhcmVudE5vZGU7XHJcblxyXG4gICAgcmV0dXJuIHBhcmVudE5vZGUgJiYgcGFyZW50Tm9kZS5ub2RlVHlwZSAhPT0gMTEgPyBwYXJlbnRFbGVtZW50IDogbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcGFyZW50cyhlbGVtOiBIVE1MRWxlbWVudCwgc2VsZWN0b3IgPSBudWxsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXIoZWxlbSwgXCJwYXJlbnROb2RlXCIsIG51bGwsIHNlbGVjdG9yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmluZEluRG9jdW1lbnQoc2VsZWN0b3I6IHN0cmluZyk6IEhUTUxFbGVtZW50W10ge1xyXG4gICAgbGV0IHBhcmVudCA9ICQoZG9jdW1lbnQpO1xyXG4gICAgcmV0dXJuICQocGFyZW50KS5maW5kKHNlbGVjdG9yKS5nZXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmluZChlbGVtLCBzZWxlY3Rvcjogc3RyaW5nKTogSFRNTEVsZW1lbnRbXSB7XHJcbiAgICByZXR1cm4gJChlbGVtKS5maW5kKHNlbGVjdG9yKS5nZXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcmVtb3ZlKG5vZGVzKSB7XHJcbiAgICBpZiAobm9kZXMgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG5vZGVzKSkge1xyXG4gICAgICBpZiAobm9kZXMucGFyZW50Tm9kZSkge1xyXG4gICAgICAgIG5vZGVzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5vZGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbm9kZTtcclxuICAgIGxldCBpID0gMDtcclxuXHJcbiAgICBmb3IgKDsgKG5vZGUgPSBub2Rlc1tpXSkgIT0gbnVsbDsgaSsrKSB7XHJcbiAgICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcclxuICAgICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFuZFJlbW92ZShlbGVtZW50LCBzZWxlY3Rvcikge1xyXG4gICAgdGhpcy5yZW1vdmUodGhpcy5maW5kKGVsZW1lbnQsIHNlbGVjdG9yKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHNob3coZWxlbSkge1xyXG4gICAgJChlbGVtKS5zaG93KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGhpZGUoZWxlbSkge1xyXG4gICAgJChlbGVtKS5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVhY2goc2VsZWN0b3IsIGFjdGlvbikge1xyXG4gICAgbGV0IHBhcmVudCA9ICQoZG9jdW1lbnQpO1xyXG4gICAgbGV0IGVsZW1zID0gRE9NLmZpbmQocGFyZW50LCBzZWxlY3Rvcik7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWxlbSA9IGVsZW1zW2ldO1xyXG4gICAgICBhY3Rpb24oZWxlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0Nzc1xyXG4gIC8qXHJcbiAgcHVibGljIHN0YXRpYyBhZGRDbGFzcyhlOiBFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IEVsZW1lbnQge1xyXG4gICAgY29uc3QgY2xhc3MgPSBlLmdldEF0dHJpYnV0ZSgnY2xhc3MnKTtcclxuICAgIGlmIChjbGFzcyA9PT0gbnVsbCB8fCBjbGFzcyA9PT0gJycpIHtcclxuICAgICAgZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgY2xhc3NOYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoIURPTS5oYXNDbGFzcyhlLCBjbGFzc05hbWUpKSB7XHJcbiAgICAgIGUuc2V0QXR0cmlidXRlKCdjbGFzcycsIGAke2NsYXNzfSAke2NsYXNzTmFtZX1gKTtcclxuICAgIH1cclxuIFxyXG4gICAgcmV0dXJuIGU7XHJcbiAgfVxyXG4gXHJcbiAgcHVibGljIHN0YXRpYyByZW1vdmVDbGFzcyhlOiBFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IEVsZW1lbnQge1xyXG4gICAgY29uc3QgY2xhc3MgPSBlLmdldEF0dHJpYnV0ZSgnY2xhc3MnKVxyXG4gICAgaWYgKGNsYXNzICE9PSBudWxsICYmIGNsYXNzICE9PSAnJykge1xyXG4gICAgICBpZiAoY2xhc3MgPT09IGNsYXNzTmFtZSkge1xyXG4gICAgICAgIGUuc2V0QXR0cmlidXRlKCdjbGFzcycsICcnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBjbGFzc1xyXG4gICAgICAgICAgLnNwbGl0KCcgJylcclxuICAgICAgICAgIC5maWx0ZXIoKHM6IGFueSkgPT4gcyAhPT0gY2xhc3NOYW1lKVxyXG4gICAgICAgICAgLmpvaW4oJyAnKTtcclxuICAgICAgICBlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCByZXN1bHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiBcclxuICAgIHJldHVybiBlO1xyXG4gIH1cclxuIFxyXG4gIHB1YmxpYyBzdGF0aWMgaGFzQ2xhc3MoZTogRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNsYXNzID0gZS5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJyc7XHJcbiAgICBjb25zdCByID0gbmV3IFJlZ0V4cChgXFxcXGIke2NsYXNzTmFtZX1cXFxcYmAsICcnKTtcclxuICAgIHJldHVybiByLnRlc3QoY2xhc3MpO1xyXG4gIH1cclxuICAqL1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGFkZENsYXNzKGVsZW06IE5vZGUgfCBFbGVtZW50LCBjbGFzc05hbWVzKSB7XHJcbiAgICAkKGVsZW0pLmFkZENsYXNzKGNsYXNzTmFtZXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyByZW1vdmVDbGFzcyhlbGVtOiBOb2RlIHwgRWxlbWVudCwgY2xhc3NOYW1lcykge1xyXG4gICAgJChlbGVtKS5yZW1vdmVDbGFzcyhjbGFzc05hbWVzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFzQ2xhc3MoZWxlbTogTm9kZSB8IEVsZW1lbnQsIGNsYXNzTmFtZSkge1xyXG4gICAgJChlbGVtKS5oYXNDbGFzcyhjbGFzc05hbWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -34,7 +34,8 @@ export * from './services/web-storage.service';
|
|
|
34
34
|
export * from './services/dm.service';
|
|
35
35
|
export * from './services/google-analytics.service';
|
|
36
36
|
export * from './convert';
|
|
37
|
+
export * from './dom';
|
|
37
38
|
export * from './guid';
|
|
38
39
|
export * from './subs';
|
|
39
40
|
export * from './utils';
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyIEF1ZyAyMDIyXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cy91cmxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9nby9iYXNlLWdvLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9vbmNlLWltcG9ydC5ndWFyZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uL2xvY2FsaXplLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvblNldHRpbmdzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZ2dpbmcvZ2xvYmFsRXJyb3JIYW5kbGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9ucy9hbGVydHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMvaW50ZXJmYWNlcy9ub3RpZmljYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMvc2VydmljZXMvbm90aWZpY2F0aW9uLXNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaWRsZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3dlYi1zdG9yYWdlLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZG0uc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vY29udmVydCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZG9tJztcclxuZXhwb3J0ICogZnJvbSAnLi9ndWlkJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdWJzJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XHJcbiJdfQ==
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
</file>
|
|
15
15
|
*/
|
|
16
16
|
//Node
|
|
17
|
-
import { Component, Input } from '@angular/core';
|
|
17
|
+
import { Component, Input, EventEmitter, Output } from '@angular/core';
|
|
18
18
|
//App
|
|
19
19
|
import { BaseEditComponent } from '../../../components/base-edit.component';
|
|
20
20
|
import { Utils } from '../../../../core/utils';
|
|
@@ -27,28 +27,34 @@ export class UrlSlugComponent extends BaseEditComponent {
|
|
|
27
27
|
constructor() {
|
|
28
28
|
super();
|
|
29
29
|
//Inputs
|
|
30
|
-
this.title = 'Permalink';
|
|
30
|
+
this.title = 'Permalink:';
|
|
31
31
|
this.isTitleVisible = true;
|
|
32
|
+
//Outputs
|
|
33
|
+
this.generating = new EventEmitter();
|
|
32
34
|
}
|
|
33
35
|
ngOnInit() {
|
|
34
36
|
this.setWatchers();
|
|
35
37
|
}
|
|
36
38
|
setWatchers() {
|
|
37
|
-
|
|
38
|
-
this.
|
|
39
|
-
|
|
39
|
+
if (this.watchedControlName) {
|
|
40
|
+
this.formGroup.get(this.watchedControlName).valueChanges.subscribe(val => {
|
|
41
|
+
this.generateUrlSlug();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
40
44
|
}
|
|
41
45
|
generateUrlSlug() {
|
|
42
46
|
let name = this.getFormValue(this.watchedControlName);
|
|
43
47
|
let slugedText = Utils.slugify(name);
|
|
44
|
-
|
|
48
|
+
let event = { urlSlug: slugedText };
|
|
49
|
+
this.generating.emit(event);
|
|
50
|
+
this.setFormValue(this.controlName, event.urlSlug);
|
|
45
51
|
}
|
|
46
52
|
}
|
|
47
53
|
UrlSlugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
UrlSlugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UrlSlugComponent, selector: "anatoly-forms-urlslug", inputs: { title: "title", isTitleVisible: "isTitleVisible", controlName: "controlName", controlTitle: "controlTitle", class: "class", watchedControlName: "watchedControlName", urlPrefix: "urlPrefix" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]='formGroup' class=\"{'has-error': isControlInvalid(controlName)}
|
|
54
|
+
UrlSlugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UrlSlugComponent, selector: "anatoly-forms-urlslug", inputs: { title: "title", isTitleVisible: "isTitleVisible", controlName: "controlName", controlTitle: "controlTitle", class: "class", watchedControlName: "watchedControlName", urlPrefix: "urlPrefix" }, outputs: { generating: "generating" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]='formGroup' class=\"d-flex permalink form-group {'has-error': isControlInvalid(controlName)} {{class}}\">\r\n <label *ngIf='isTitleVisible' class='col-form-label'> {{ title }} <span> {{ urlPrefix }} </span></label>\r\n <input [formControlName]='controlName' type='text' placeholder='Type url slug here' class='form-control' (generating)='generateUrlSlug()'/>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle'>\r\n </anatoly-item-validation-summary>\r\n</div>\r\n\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NativeElementDirective, selector: "[formControl], [formControlName]" }, { kind: "component", type: i4.ItemValidationSummaryComponent, selector: "anatoly-item-validation-summary", inputs: ["controlName", "controlTitle"] }] });
|
|
49
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, decorators: [{
|
|
50
56
|
type: Component,
|
|
51
|
-
args: [{ selector: 'anatoly-forms-urlslug', template: "<div [formGroup]='formGroup' class=\"{'has-error': isControlInvalid(controlName)}
|
|
57
|
+
args: [{ selector: 'anatoly-forms-urlslug', template: "<div [formGroup]='formGroup' class=\"d-flex permalink form-group {'has-error': isControlInvalid(controlName)} {{class}}\">\r\n <label *ngIf='isTitleVisible' class='col-form-label'> {{ title }} <span> {{ urlPrefix }} </span></label>\r\n <input [formControlName]='controlName' type='text' placeholder='Type url slug here' class='form-control' (generating)='generateUrlSlug()'/>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle'>\r\n </anatoly-item-validation-summary>\r\n</div>\r\n\r\n" }]
|
|
52
58
|
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
53
59
|
type: Input
|
|
54
60
|
}], isTitleVisible: [{
|
|
@@ -63,5 +69,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
63
69
|
type: Input
|
|
64
70
|
}], urlPrefix: [{
|
|
65
71
|
type: Input
|
|
72
|
+
}], generating: [{
|
|
73
|
+
type: Output
|
|
66
74
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsc2x1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvZm9ybXMvY29tcG9uZW50cy91cmxzbHVnL3VybHNsdWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2Zvcm1zL2NvbXBvbmVudHMvdXJsc2x1Zy91cmxzbHVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsS0FBSztBQUNMLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBTS9DLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBaUI7SUFhckQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWJWLFFBQVE7UUFDQyxVQUFLLEdBQVcsWUFBWSxDQUFDO1FBQzdCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBTy9CLFNBQVM7UUFDQyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFJN0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0RCxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksS0FBSyxHQUFHLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBRXBDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7NkdBckNVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHFVQzNCN0Isa3NCQVVBOzJGRGlCYSxnQkFBZ0I7a0JBSjVCLFNBQVM7K0JBQ0UsdUJBQXVCOzBFQUt4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAwMiBBdWcgMjAyMlxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTctMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvYmFzZS1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FuYXRvbHktZm9ybXMtdXJsc2x1ZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VybHNsdWcuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcmxTbHVnQ29tcG9uZW50IGV4dGVuZHMgQmFzZUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vSW5wdXRzXHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdQZXJtYWxpbms6JztcclxuICBASW5wdXQoKSBpc1RpdGxlVmlzaWJsZSA9IHRydWU7XHJcbiAgQElucHV0KCkgY29udHJvbE5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBjb250cm9sVGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdhdGNoZWRDb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVybFByZWZpeDogc3RyaW5nO1xyXG5cclxuICAvL091dHB1dHNcclxuICBAT3V0cHV0KCkgZ2VuZXJhdGluZzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRXYXRjaGVycygpO1xyXG4gIH1cclxuXHJcbiAgc2V0V2F0Y2hlcnMoKSB7XHJcbiAgICBpZiAodGhpcy53YXRjaGVkQ29udHJvbE5hbWUpIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMud2F0Y2hlZENvbnRyb2xOYW1lKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVVybFNsdWcoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVVybFNsdWcoKSB7XHJcbiAgICBsZXQgbmFtZSA9IHRoaXMuZ2V0Rm9ybVZhbHVlKHRoaXMud2F0Y2hlZENvbnRyb2xOYW1lKTtcclxuICAgIGxldCBzbHVnZWRUZXh0ID0gVXRpbHMuc2x1Z2lmeShuYW1lKTtcclxuICAgIGxldCBldmVudCA9IHsgdXJsU2x1Zzogc2x1Z2VkVGV4dCB9O1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGluZy5lbWl0KGV2ZW50KTtcclxuXHJcbiAgICB0aGlzLnNldEZvcm1WYWx1ZSh0aGlzLmNvbnRyb2xOYW1lLCBldmVudC51cmxTbHVnKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJyAgY2xhc3M9XCJkLWZsZXggcGVybWFsaW5rIGZvcm0tZ3JvdXAgeydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKGNvbnRyb2xOYW1lKX0gIHt7Y2xhc3N9fVwiPlxyXG4gIDxsYWJlbCAqbmdJZj0naXNUaXRsZVZpc2libGUnIGNsYXNzPSdjb2wtZm9ybS1sYWJlbCc+IHt7IHRpdGxlIH19IDxzcGFuPiB7eyB1cmxQcmVmaXggfX0gPC9zcGFuPjwvbGFiZWw+XHJcbiAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPSdjb250cm9sTmFtZScgdHlwZT0ndGV4dCcgcGxhY2Vob2xkZXI9J1R5cGUgdXJsIHNsdWcgaGVyZScgY2xhc3M9J2Zvcm0tY29udHJvbCcgKGdlbmVyYXRpbmcpPSdnZW5lcmF0ZVVybFNsdWcoKScvPlxyXG4gIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250cm9sTmFtZV09J2NvbnRyb2xOYW1lJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250cm9sVGl0bGVdPSdjb250cm9sVGl0bGUnPlxyXG4gIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|
|
@@ -18,6 +18,7 @@ import Swal from 'sweetalert2';
|
|
|
18
18
|
import { v4 } from 'uuid';
|
|
19
19
|
import * as i1$2 from 'ngx-toastr';
|
|
20
20
|
import * as i1$4 from '@angular/platform-browser';
|
|
21
|
+
import * as $$1 from 'jquery';
|
|
21
22
|
import * as i1$5 from '@angular/forms';
|
|
22
23
|
import { FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
23
24
|
import * as i1$6 from 'angular-froala-wysiwyg';
|
|
@@ -1636,6 +1637,159 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
1636
1637
|
type: Injectable
|
|
1637
1638
|
}], ctorParameters: function () { return [{ type: i1.Router }]; } });
|
|
1638
1639
|
|
|
1640
|
+
/*
|
|
1641
|
+
<file>
|
|
1642
|
+
Project:
|
|
1643
|
+
@osovitny/anatoly
|
|
1644
|
+
|
|
1645
|
+
Authors:
|
|
1646
|
+
Vadim Osovitny
|
|
1647
|
+
Anatoly Osovitny
|
|
1648
|
+
|
|
1649
|
+
Created:
|
|
1650
|
+
8 Aug 2022
|
|
1651
|
+
|
|
1652
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
1653
|
+
</file>
|
|
1654
|
+
*/
|
|
1655
|
+
class DOM {
|
|
1656
|
+
//Private
|
|
1657
|
+
static dir(elem, dir, until = null, selector = null) {
|
|
1658
|
+
let matched = [];
|
|
1659
|
+
let truncate = until !== undefined && until != null;
|
|
1660
|
+
while ((elem = elem[dir]) && elem.nodeType !== 9) {
|
|
1661
|
+
if (elem.nodeType === 1) {
|
|
1662
|
+
/*
|
|
1663
|
+
if (truncate && jQuery(elem).is(until)) {
|
|
1664
|
+
break;
|
|
1665
|
+
}
|
|
1666
|
+
*/
|
|
1667
|
+
if (selector) {
|
|
1668
|
+
let className = selector.replace('.', '');
|
|
1669
|
+
if (elem.classList.contains(className)) {
|
|
1670
|
+
matched.push(elem);
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
else {
|
|
1674
|
+
matched.push(elem);
|
|
1675
|
+
}
|
|
1676
|
+
}
|
|
1677
|
+
}
|
|
1678
|
+
return matched;
|
|
1679
|
+
}
|
|
1680
|
+
//Public
|
|
1681
|
+
static first(elements) {
|
|
1682
|
+
if (!elements || elements.length == 0) {
|
|
1683
|
+
return null;
|
|
1684
|
+
}
|
|
1685
|
+
return elements[0];
|
|
1686
|
+
}
|
|
1687
|
+
static any(elements) {
|
|
1688
|
+
if (!elements || elements.length == 0) {
|
|
1689
|
+
return false;
|
|
1690
|
+
}
|
|
1691
|
+
return true;
|
|
1692
|
+
}
|
|
1693
|
+
static parent(elem) {
|
|
1694
|
+
let parentElement = elem.parentElement;
|
|
1695
|
+
let parentNode = elem.parentNode;
|
|
1696
|
+
return parentNode && parentNode.nodeType !== 11 ? parentElement : null;
|
|
1697
|
+
}
|
|
1698
|
+
static parents(elem, selector = null) {
|
|
1699
|
+
return this.dir(elem, "parentNode", null, selector);
|
|
1700
|
+
}
|
|
1701
|
+
static findInDocument(selector) {
|
|
1702
|
+
let parent = $$1(document);
|
|
1703
|
+
return $$1(parent).find(selector).get();
|
|
1704
|
+
}
|
|
1705
|
+
static find(elem, selector) {
|
|
1706
|
+
return $$1(elem).find(selector).get();
|
|
1707
|
+
}
|
|
1708
|
+
static remove(nodes) {
|
|
1709
|
+
if (nodes == null) {
|
|
1710
|
+
return;
|
|
1711
|
+
}
|
|
1712
|
+
if (!Array.isArray(nodes)) {
|
|
1713
|
+
if (nodes.parentNode) {
|
|
1714
|
+
nodes.parentNode.removeChild(nodes);
|
|
1715
|
+
}
|
|
1716
|
+
return;
|
|
1717
|
+
}
|
|
1718
|
+
if (nodes.length == 0) {
|
|
1719
|
+
return;
|
|
1720
|
+
}
|
|
1721
|
+
let node;
|
|
1722
|
+
let i = 0;
|
|
1723
|
+
for (; (node = nodes[i]) != null; i++) {
|
|
1724
|
+
if (node.parentNode) {
|
|
1725
|
+
node.parentNode.removeChild(node);
|
|
1726
|
+
}
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
static findAndRemove(element, selector) {
|
|
1730
|
+
this.remove(this.find(element, selector));
|
|
1731
|
+
}
|
|
1732
|
+
static show(elem) {
|
|
1733
|
+
$$1(elem).show();
|
|
1734
|
+
}
|
|
1735
|
+
static hide(elem) {
|
|
1736
|
+
$$1(elem).hide();
|
|
1737
|
+
}
|
|
1738
|
+
static each(selector, action) {
|
|
1739
|
+
let parent = $$1(document);
|
|
1740
|
+
let elems = DOM.find(parent, selector);
|
|
1741
|
+
for (let i = 0; i < elems.length; i++) {
|
|
1742
|
+
let elem = elems[i];
|
|
1743
|
+
action(elem);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
//Css
|
|
1747
|
+
/*
|
|
1748
|
+
public static addClass(e: Element, className: string): Element {
|
|
1749
|
+
const class = e.getAttribute('class');
|
|
1750
|
+
if (class === null || class === '') {
|
|
1751
|
+
e.setAttribute('class', className);
|
|
1752
|
+
} else if (!DOM.hasClass(e, className)) {
|
|
1753
|
+
e.setAttribute('class', `${class} ${className}`);
|
|
1754
|
+
}
|
|
1755
|
+
|
|
1756
|
+
return e;
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1759
|
+
public static removeClass(e: Element, className: string): Element {
|
|
1760
|
+
const class = e.getAttribute('class')
|
|
1761
|
+
if (class !== null && class !== '') {
|
|
1762
|
+
if (class === className) {
|
|
1763
|
+
e.setAttribute('class', '');
|
|
1764
|
+
} else {
|
|
1765
|
+
const result = class
|
|
1766
|
+
.split(' ')
|
|
1767
|
+
.filter((s: any) => s !== className)
|
|
1768
|
+
.join(' ');
|
|
1769
|
+
e.setAttribute('class', result);
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1773
|
+
return e;
|
|
1774
|
+
}
|
|
1775
|
+
|
|
1776
|
+
public static hasClass(e: Element, className: string): boolean {
|
|
1777
|
+
const class = e.getAttribute('class') || '';
|
|
1778
|
+
const r = new RegExp(`\\b${className}\\b`, '');
|
|
1779
|
+
return r.test(class);
|
|
1780
|
+
}
|
|
1781
|
+
*/
|
|
1782
|
+
static addClass(elem, classNames) {
|
|
1783
|
+
$$1(elem).addClass(classNames);
|
|
1784
|
+
}
|
|
1785
|
+
static removeClass(elem, classNames) {
|
|
1786
|
+
$$1(elem).removeClass(classNames);
|
|
1787
|
+
}
|
|
1788
|
+
static hasClass(elem, className) {
|
|
1789
|
+
$$1(elem).hasClass(className);
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1639
1793
|
/*
|
|
1640
1794
|
<file>
|
|
1641
1795
|
Project:
|
|
@@ -3728,28 +3882,34 @@ class UrlSlugComponent extends BaseEditComponent {
|
|
|
3728
3882
|
constructor() {
|
|
3729
3883
|
super();
|
|
3730
3884
|
//Inputs
|
|
3731
|
-
this.title = 'Permalink';
|
|
3885
|
+
this.title = 'Permalink:';
|
|
3732
3886
|
this.isTitleVisible = true;
|
|
3887
|
+
//Outputs
|
|
3888
|
+
this.generating = new EventEmitter();
|
|
3733
3889
|
}
|
|
3734
3890
|
ngOnInit() {
|
|
3735
3891
|
this.setWatchers();
|
|
3736
3892
|
}
|
|
3737
3893
|
setWatchers() {
|
|
3738
|
-
|
|
3739
|
-
this.
|
|
3740
|
-
|
|
3894
|
+
if (this.watchedControlName) {
|
|
3895
|
+
this.formGroup.get(this.watchedControlName).valueChanges.subscribe(val => {
|
|
3896
|
+
this.generateUrlSlug();
|
|
3897
|
+
});
|
|
3898
|
+
}
|
|
3741
3899
|
}
|
|
3742
3900
|
generateUrlSlug() {
|
|
3743
3901
|
let name = this.getFormValue(this.watchedControlName);
|
|
3744
3902
|
let slugedText = Utils.slugify(name);
|
|
3745
|
-
|
|
3903
|
+
let event = { urlSlug: slugedText };
|
|
3904
|
+
this.generating.emit(event);
|
|
3905
|
+
this.setFormValue(this.controlName, event.urlSlug);
|
|
3746
3906
|
}
|
|
3747
3907
|
}
|
|
3748
3908
|
UrlSlugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3749
|
-
UrlSlugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UrlSlugComponent, selector: "anatoly-forms-urlslug", inputs: { title: "title", isTitleVisible: "isTitleVisible", controlName: "controlName", controlTitle: "controlTitle", class: "class", watchedControlName: "watchedControlName", urlPrefix: "urlPrefix" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]='formGroup' class=\"{'has-error': isControlInvalid(controlName)}
|
|
3909
|
+
UrlSlugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UrlSlugComponent, selector: "anatoly-forms-urlslug", inputs: { title: "title", isTitleVisible: "isTitleVisible", controlName: "controlName", controlTitle: "controlTitle", class: "class", watchedControlName: "watchedControlName", urlPrefix: "urlPrefix" }, outputs: { generating: "generating" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]='formGroup' class=\"d-flex permalink form-group {'has-error': isControlInvalid(controlName)} {{class}}\">\r\n <label *ngIf='isTitleVisible' class='col-form-label'> {{ title }} <span> {{ urlPrefix }} </span></label>\r\n <input [formControlName]='controlName' type='text' placeholder='Type url slug here' class='form-control' (generating)='generateUrlSlug()'/>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle'>\r\n </anatoly-item-validation-summary>\r\n</div>\r\n\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NativeElementDirective, selector: "[formControl], [formControlName]" }, { kind: "component", type: ItemValidationSummaryComponent, selector: "anatoly-item-validation-summary", inputs: ["controlName", "controlTitle"] }] });
|
|
3750
3910
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, decorators: [{
|
|
3751
3911
|
type: Component,
|
|
3752
|
-
args: [{ selector: 'anatoly-forms-urlslug', template: "<div [formGroup]='formGroup' class=\"{'has-error': isControlInvalid(controlName)}
|
|
3912
|
+
args: [{ selector: 'anatoly-forms-urlslug', template: "<div [formGroup]='formGroup' class=\"d-flex permalink form-group {'has-error': isControlInvalid(controlName)} {{class}}\">\r\n <label *ngIf='isTitleVisible' class='col-form-label'> {{ title }} <span> {{ urlPrefix }} </span></label>\r\n <input [formControlName]='controlName' type='text' placeholder='Type url slug here' class='form-control' (generating)='generateUrlSlug()'/>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle'>\r\n </anatoly-item-validation-summary>\r\n</div>\r\n\r\n" }]
|
|
3753
3913
|
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
3754
3914
|
type: Input
|
|
3755
3915
|
}], isTitleVisible: [{
|
|
@@ -3764,6 +3924,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
3764
3924
|
type: Input
|
|
3765
3925
|
}], urlPrefix: [{
|
|
3766
3926
|
type: Input
|
|
3927
|
+
}], generating: [{
|
|
3928
|
+
type: Output
|
|
3767
3929
|
}] } });
|
|
3768
3930
|
|
|
3769
3931
|
/*
|
|
@@ -4284,5 +4446,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
4284
4446
|
* Generated bundle index. Do not edit.
|
|
4285
4447
|
*/
|
|
4286
4448
|
|
|
4287
|
-
export { AddressComponent, Alerts, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyUIModule, AppContextService, AppCoreSettings, BaseApiService, BaseComponent, BaseDialog, BaseEditComponent, BaseGoService, BaseGridEditService, BaseGridReadService, BaseHtmlEditorComponent, BillingApiService, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CompanyComponent, ContactUsDialog, ContactUsForm, ContextInitState, Convert, CoreApiService, DefaultEditorOptions, DigitalMarketingService, EmailsApiService, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, FroalaEditorModuleWithProviders, FroalaViewModuleWithProviders, GlobalErrorHandler, GoogleAnalyticsService, Guid, HtmlEditorComponent, IdleService, InjectorInstance, ItemValidationSummaryComponent, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, NativeElementDirective, NodataComponent, NotificationService, NotificationsApiService, PageSpinnerComponent, ReplaceTextPipe, SafeHtmlPipe, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, Subs, SubscribePlanButtonComponent, TimezoneDropdownlist, TranslateModuleAtRoot, UpgradePlanButtonComponent, UrlSlugComponent, Urls, Utils, ValidationSummaryComponent, customTranslateLoaderFactory, localizationInitializerFactory, throwIfAlreadyLoaded };
|
|
4449
|
+
export { AddressComponent, Alerts, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyUIModule, AppContextService, AppCoreSettings, BaseApiService, BaseComponent, BaseDialog, BaseEditComponent, BaseGoService, BaseGridEditService, BaseGridReadService, BaseHtmlEditorComponent, BillingApiService, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CompanyComponent, ContactUsDialog, ContactUsForm, ContextInitState, Convert, CoreApiService, DOM, DefaultEditorOptions, DigitalMarketingService, EmailsApiService, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, FroalaEditorModuleWithProviders, FroalaViewModuleWithProviders, GlobalErrorHandler, GoogleAnalyticsService, Guid, HtmlEditorComponent, IdleService, InjectorInstance, ItemValidationSummaryComponent, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, NativeElementDirective, NodataComponent, NotificationService, NotificationsApiService, PageSpinnerComponent, ReplaceTextPipe, SafeHtmlPipe, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, Subs, SubscribePlanButtonComponent, TimezoneDropdownlist, TranslateModuleAtRoot, UpgradePlanButtonComponent, UrlSlugComponent, Urls, Utils, ValidationSummaryComponent, customTranslateLoaderFactory, localizationInitializerFactory, throwIfAlreadyLoaded };
|
|
4288
4450
|
//# sourceMappingURL=osovitny-anatoly.mjs.map
|