lanimate 1.0.1 → 1.0.2
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/README.md +1 -1
- package/lanimate.min.js +1 -201
- package/package.json +1 -1
package/README.md
CHANGED
package/lanimate.min.js
CHANGED
|
@@ -1,201 +1 @@
|
|
|
1
|
-
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(exports, "__esModule", {
|
|
7
|
-
value: true
|
|
8
|
-
});
|
|
9
|
-
exports.default = void 0;
|
|
10
|
-
|
|
11
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
-
|
|
13
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
-
|
|
15
|
-
var lanimate = /*#__PURE__*/function () {
|
|
16
|
-
function lanimate() {
|
|
17
|
-
var _this = this;
|
|
18
|
-
|
|
19
|
-
(0, _classCallCheck2.default)(this, lanimate);
|
|
20
|
-
document.addEventListener('DOMContentLoaded', function () {
|
|
21
|
-
_this.ready();
|
|
22
|
-
});
|
|
23
|
-
window.addEventListener('load', function () {
|
|
24
|
-
_this.load();
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
(0, _createClass2.default)(lanimate, [{
|
|
29
|
-
key: "ready",
|
|
30
|
-
value: function ready() {
|
|
31
|
-
document.head.insertAdjacentHTML('beforeend', "\n <style>\n [data-lanimate] {\n opacity: 0;\n }\n /* disable on mobile */\n @media screen and (max-width: 1100px) {\n [data-lanimate] {\n transition: all 0s ease 0s;\n opacity: 1;\n }\n [data-lanimate='scrollX'] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(0deg);\n }\n }\n </style>\n ");
|
|
32
|
-
}
|
|
33
|
-
}, {
|
|
34
|
-
key: "traverseAllTextNodes",
|
|
35
|
-
value: function traverseAllTextNodes($el, $fn) {
|
|
36
|
-
var _this2 = this;
|
|
37
|
-
|
|
38
|
-
if ($el.childNodes.length > 0) {
|
|
39
|
-
$el.childNodes.forEach(function ($el2) {
|
|
40
|
-
if ($el2.nodeType === 3) {
|
|
41
|
-
$el2.textContent = $fn($el2.textContent);
|
|
42
|
-
} else {
|
|
43
|
-
_this2.traverseAllTextNodes($el2, $fn);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}, {
|
|
49
|
-
key: "load",
|
|
50
|
-
value: function load() {
|
|
51
|
-
var _this3 = this;
|
|
52
|
-
|
|
53
|
-
if (document.querySelectorAll('[data-lanimate-split]').length > 0) {
|
|
54
|
-
document.querySelectorAll('[data-lanimate-split]').forEach(function ($el) {
|
|
55
|
-
$el.setAttribute('data-aria-label', $el.innerText.replace(/(?:\r\n|\r|\n)/g, ' '));
|
|
56
|
-
$el.innerHTML = $el.innerHTML.split(' ').join(' ');
|
|
57
|
-
var shift = 0;
|
|
58
|
-
|
|
59
|
-
if ($el.getAttribute('data-lanimate-split') === 'char') {
|
|
60
|
-
_this3.traverseAllTextNodes($el, function ($text) {
|
|
61
|
-
return '%span%' + $text.split('').join('%/span%%span%') + '%/span%';
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
$el.innerHTML = $el.innerHTML.split('%span%').join('<span>').split('%/span%').join('</span>');
|
|
65
|
-
shift = 100;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if ($el.getAttribute('data-lanimate-split') === 'word') {
|
|
69
|
-
_this3.traverseAllTextNodes($el, function ($text) {
|
|
70
|
-
return '%span%' + $text.split(' ').join('%/span% %span%') + '%/span%';
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
$el.innerHTML = $el.innerHTML.split('%span%').join('<span>').split('%/span%').join('</span>');
|
|
74
|
-
shift = 250;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if ($el.getAttribute('data-lanimate-split') === 'line') {
|
|
78
|
-
$el.innerHTML = '<span>' + $el.innerHTML.split('<br>').join('</span><br/><span>') + '</span>';
|
|
79
|
-
shift = 500;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
var index = 0;
|
|
83
|
-
$el.querySelectorAll('span').forEach(function ($el2, i) {
|
|
84
|
-
if ($el2.innerText.trim() == '') {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
$el2.setAttribute('data-lanimate', $el.getAttribute('data-lanimate'));
|
|
89
|
-
var delay = 0;
|
|
90
|
-
|
|
91
|
-
if ($el.hasAttribute('data-lanimate-delay')) {
|
|
92
|
-
delay = parseInt($el.getAttribute('data-lanimate-delay'));
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if ($el.hasAttribute('data-lanimate-speed')) {
|
|
96
|
-
$el2.setAttribute('data-lanimate-speed', $el.getAttribute('data-lanimate-speed'));
|
|
97
|
-
delay *= 1 / parseInt($el.getAttribute('data-lanimate-speed'));
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
$el2.setAttribute('data-lanimate-delay', delay + shift * index);
|
|
101
|
-
index++;
|
|
102
|
-
});
|
|
103
|
-
$el.removeAttribute('data-lanimate');
|
|
104
|
-
$el.removeAttribute('data-lanimate-delay');
|
|
105
|
-
$el.removeAttribute('data-lanimate-speed');
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (document.querySelectorAll('[data-lanimate-speed]').length > 0) {
|
|
110
|
-
document.querySelectorAll('[data-lanimate-speed]').forEach(function ($el) {
|
|
111
|
-
var speed = parseInt($el.getAttribute('data-lanimate-speed')) / 1000;
|
|
112
|
-
setTimeout(function () {
|
|
113
|
-
$el.style.transitionDuration = speed + 's, ' + speed + 's';
|
|
114
|
-
}, 10);
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (document.querySelectorAll('[data-lanimate]').length > 0) {
|
|
119
|
-
document.querySelectorAll('[data-lanimate]').forEach(function ($el) {
|
|
120
|
-
_this3.start($el);
|
|
121
|
-
|
|
122
|
-
window.addEventListener('scroll', function () {
|
|
123
|
-
_this3.start($el);
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
document.head.insertAdjacentHTML('beforeend', "\n <style>\n [data-lanimate='fade'] {\n }\n [data-lanimate='scrollX'] {\n transform: translateX(30px);\n }\n [data-lanimate='scrollY'] {\n transform: translateY(30px);\n }\n [data-lanimate='scale'] {\n transform: scale(1.1) translateY(30px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(15deg);\n transform-origin: 0 0;\n }\n [data-lanimate-started] {\n transition: opacity 1s ease-in-out, transform 1s ease-in-out;\n opacity: 1;\n }\n [data-lanimate-split] span {\n display:inline-block;\n }\n [data-lanimate='fade'][data-lanimate-started] {\n }\n [data-lanimate='scrollX'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'][data-lanimate-started] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'][data-lanimate-started] {\n transform: rotate(0deg);\n }\n </style>\n ");
|
|
129
|
-
}
|
|
130
|
-
}, {
|
|
131
|
-
key: "start",
|
|
132
|
-
value: function start($el) {
|
|
133
|
-
if (!$el.hasAttribute('data-lanimate-started') && this.scrollTop() + window.innerHeight >= this.offsetTop($el)) {
|
|
134
|
-
var delay = 0;
|
|
135
|
-
|
|
136
|
-
if ($el.hasAttribute('data-lanimate-delay')) {
|
|
137
|
-
delay = parseInt($el.getAttribute('data-lanimate-delay'));
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
setTimeout(function () {
|
|
141
|
-
$el.setAttribute('data-lanimate-started', 'true');
|
|
142
|
-
}, delay);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}, {
|
|
146
|
-
key: "scrollTop",
|
|
147
|
-
value: function scrollTop() {
|
|
148
|
-
var doc = document.documentElement;
|
|
149
|
-
return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
|
|
150
|
-
}
|
|
151
|
-
}, {
|
|
152
|
-
key: "offsetTop",
|
|
153
|
-
value: function offsetTop($el) {
|
|
154
|
-
return $el.getBoundingClientRect().top + window.pageYOffset - document.documentElement.clientTop;
|
|
155
|
-
}
|
|
156
|
-
}]);
|
|
157
|
-
return lanimate;
|
|
158
|
-
}();
|
|
159
|
-
|
|
160
|
-
exports.default = lanimate;
|
|
161
|
-
window.lanimate = lanimate;
|
|
162
|
-
|
|
163
|
-
},{"@babel/runtime/helpers/classCallCheck":2,"@babel/runtime/helpers/createClass":3,"@babel/runtime/helpers/interopRequireDefault":4}],2:[function(require,module,exports){
|
|
164
|
-
function _classCallCheck(instance, Constructor) {
|
|
165
|
-
if (!(instance instanceof Constructor)) {
|
|
166
|
-
throw new TypeError("Cannot call a class as a function");
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
171
|
-
},{}],3:[function(require,module,exports){
|
|
172
|
-
function _defineProperties(target, props) {
|
|
173
|
-
for (var i = 0; i < props.length; i++) {
|
|
174
|
-
var descriptor = props[i];
|
|
175
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
176
|
-
descriptor.configurable = true;
|
|
177
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
178
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
183
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
184
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
185
|
-
Object.defineProperty(Constructor, "prototype", {
|
|
186
|
-
writable: false
|
|
187
|
-
});
|
|
188
|
-
return Constructor;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
192
|
-
},{}],4:[function(require,module,exports){
|
|
193
|
-
function _interopRequireDefault(obj) {
|
|
194
|
-
return obj && obj.__esModule ? obj : {
|
|
195
|
-
"default": obj
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
200
|
-
},{}]},{},[1])
|
|
201
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJfanMvc2NyaXB0LmpzIiwibm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMiLCJub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIm5vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7SUNBcUIsUTtBQUNqQixzQkFBYztBQUFBOztBQUFBO0FBQ1YsSUFBQSxRQUFRLENBQUMsZ0JBQVQsQ0FBMEIsa0JBQTFCLEVBQThDLFlBQU07QUFDaEQsTUFBQSxLQUFJLENBQUMsS0FBTDtBQUNILEtBRkQ7QUFHQSxJQUFBLE1BQU0sQ0FBQyxnQkFBUCxDQUF3QixNQUF4QixFQUFnQyxZQUFNO0FBQ2xDLE1BQUEsS0FBSSxDQUFDLElBQUw7QUFDSCxLQUZEO0FBR0g7Ozs7V0FDRCxpQkFBUTtBQUNKLE1BQUEsUUFBUSxDQUFDLElBQVQsQ0FBYyxrQkFBZCxDQUNJLFdBREo7QUE2Qkg7OztXQUNELDhCQUFxQixHQUFyQixFQUEwQixHQUExQixFQUErQjtBQUFBOztBQUMzQixVQUFJLEdBQUcsQ0FBQyxVQUFKLENBQWUsTUFBZixHQUF3QixDQUE1QixFQUErQjtBQUMzQixRQUFBLEdBQUcsQ0FBQyxVQUFKLENBQWUsT0FBZixDQUF1QixVQUFBLElBQUksRUFBSTtBQUMzQixjQUFJLElBQUksQ0FBQyxRQUFMLEtBQWtCLENBQXRCLEVBQXlCO0FBQ3JCLFlBQUEsSUFBSSxDQUFDLFdBQUwsR0FBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFOLENBQXRCO0FBQ0gsV0FGRCxNQUVPO0FBQ0gsWUFBQSxNQUFJLENBQUMsb0JBQUwsQ0FBMEIsSUFBMUIsRUFBZ0MsR0FBaEM7QUFDSDtBQUNKLFNBTkQ7QUFPSDtBQUNKOzs7V0FDRCxnQkFBTztBQUFBOztBQUNILFVBQUksUUFBUSxDQUFDLGdCQUFULENBQTBCLHVCQUExQixFQUFtRCxNQUFuRCxHQUE0RCxDQUFoRSxFQUFtRTtBQUMvRCxRQUFBLFFBQVEsQ0FBQyxnQkFBVCxDQUEwQix1QkFBMUIsRUFBbUQsT0FBbkQsQ0FBMkQsVUFBQSxHQUFHLEVBQUk7QUFDOUQsVUFBQSxHQUFHLENBQUMsWUFBSixDQUFpQixpQkFBakIsRUFBb0MsR0FBRyxDQUFDLFNBQUosQ0FBYyxPQUFkLENBQXNCLGlCQUF0QixFQUF5QyxHQUF6QyxDQUFwQztBQUNBLFVBQUEsR0FBRyxDQUFDLFNBQUosR0FBZ0IsR0FBRyxDQUFDLFNBQUosQ0FBYyxLQUFkLENBQW9CLEdBQXBCLEVBQXlCLElBQXpCLENBQThCLFFBQTlCLENBQWhCO0FBQ0EsY0FBSSxLQUFLLEdBQUcsQ0FBWjs7QUFDQSxjQUFJLEdBQUcsQ0FBQyxZQUFKLENBQWlCLHFCQUFqQixNQUE0QyxNQUFoRCxFQUF3RDtBQUNwRCxZQUFBLE1BQUksQ0FBQyxvQkFBTCxDQUEwQixHQUExQixFQUErQixVQUFBLEtBQUssRUFBSTtBQUNwQyxxQkFBTyxXQUFXLEtBQUssQ0FBQyxLQUFOLENBQVksRUFBWixFQUFnQixJQUFoQixDQUFxQixlQUFyQixDQUFYLEdBQW1ELFNBQTFEO0FBQ0gsYUFGRDs7QUFHQSxZQUFBLEdBQUcsQ0FBQyxTQUFKLEdBQWdCLEdBQUcsQ0FBQyxTQUFKLENBQWMsS0FBZCxDQUFvQixRQUFwQixFQUE4QixJQUE5QixDQUFtQyxRQUFuQyxFQUE2QyxLQUE3QyxDQUFtRCxTQUFuRCxFQUE4RCxJQUE5RCxDQUFtRSxTQUFuRSxDQUFoQjtBQUNBLFlBQUEsS0FBSyxHQUFHLEdBQVI7QUFDSDs7QUFDRCxjQUFJLEdBQUcsQ0FBQyxZQUFKLENBQWlCLHFCQUFqQixNQUE0QyxNQUFoRCxFQUF3RDtBQUNwRCxZQUFBLE1BQUksQ0FBQyxvQkFBTCxDQUEwQixHQUExQixFQUErQixVQUFBLEtBQUssRUFBSTtBQUNwQyxxQkFBTyxXQUFXLEtBQUssQ0FBQyxLQUFOLENBQVksR0FBWixFQUFpQixJQUFqQixDQUFzQixnQkFBdEIsQ0FBWCxHQUFxRCxTQUE1RDtBQUNILGFBRkQ7O0FBR0EsWUFBQSxHQUFHLENBQUMsU0FBSixHQUFnQixHQUFHLENBQUMsU0FBSixDQUFjLEtBQWQsQ0FBb0IsUUFBcEIsRUFBOEIsSUFBOUIsQ0FBbUMsUUFBbkMsRUFBNkMsS0FBN0MsQ0FBbUQsU0FBbkQsRUFBOEQsSUFBOUQsQ0FBbUUsU0FBbkUsQ0FBaEI7QUFDQSxZQUFBLEtBQUssR0FBRyxHQUFSO0FBQ0g7O0FBQ0QsY0FBSSxHQUFHLENBQUMsWUFBSixDQUFpQixxQkFBakIsTUFBNEMsTUFBaEQsRUFBd0Q7QUFDcEQsWUFBQSxHQUFHLENBQUMsU0FBSixHQUFnQixXQUFXLEdBQUcsQ0FBQyxTQUFKLENBQWMsS0FBZCxDQUFvQixNQUFwQixFQUE0QixJQUE1QixDQUFpQyxvQkFBakMsQ0FBWCxHQUFvRSxTQUFwRjtBQUNBLFlBQUEsS0FBSyxHQUFHLEdBQVI7QUFDSDs7QUFDRCxjQUFJLEtBQUssR0FBRyxDQUFaO0FBQ0EsVUFBQSxHQUFHLENBQUMsZ0JBQUosQ0FBcUIsTUFBckIsRUFBNkIsT0FBN0IsQ0FBcUMsVUFBQyxJQUFELEVBQU8sQ0FBUCxFQUFhO0FBQzlDLGdCQUFJLElBQUksQ0FBQyxTQUFMLENBQWUsSUFBZixNQUF5QixFQUE3QixFQUFpQztBQUM3QjtBQUNIOztBQUNELFlBQUEsSUFBSSxDQUFDLFlBQUwsQ0FBa0IsZUFBbEIsRUFBbUMsR0FBRyxDQUFDLFlBQUosQ0FBaUIsZUFBakIsQ0FBbkM7QUFDQSxnQkFBSSxLQUFLLEdBQUcsQ0FBWjs7QUFDQSxnQkFBSSxHQUFHLENBQUMsWUFBSixDQUFpQixxQkFBakIsQ0FBSixFQUE2QztBQUN6QyxjQUFBLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQUosQ0FBaUIscUJBQWpCLENBQUQsQ0FBaEI7QUFDSDs7QUFDRCxnQkFBSSxHQUFHLENBQUMsWUFBSixDQUFpQixxQkFBakIsQ0FBSixFQUE2QztBQUN6QyxjQUFBLElBQUksQ0FBQyxZQUFMLENBQWtCLHFCQUFsQixFQUF5QyxHQUFHLENBQUMsWUFBSixDQUFpQixxQkFBakIsQ0FBekM7QUFDQSxjQUFBLEtBQUssSUFBSSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBSixDQUFpQixxQkFBakIsQ0FBRCxDQUFyQjtBQUNIOztBQUNELFlBQUEsSUFBSSxDQUFDLFlBQUwsQ0FBa0IscUJBQWxCLEVBQXlDLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBekQ7QUFDQSxZQUFBLEtBQUs7QUFDUixXQWZEO0FBZ0JBLFVBQUEsR0FBRyxDQUFDLGVBQUosQ0FBb0IsZUFBcEI7QUFDQSxVQUFBLEdBQUcsQ0FBQyxlQUFKLENBQW9CLHFCQUFwQjtBQUNBLFVBQUEsR0FBRyxDQUFDLGVBQUosQ0FBb0IscUJBQXBCO0FBQ0gsU0ExQ0Q7QUEyQ0g7O0FBQ0QsVUFBSSxRQUFRLENBQUMsZ0JBQVQsQ0FBMEIsdUJBQTFCLEVBQW1ELE1BQW5ELEdBQTRELENBQWhFLEVBQW1FO0FBQy9ELFFBQUEsUUFBUSxDQUFDLGdCQUFULENBQTBCLHVCQUExQixFQUFtRCxPQUFuRCxDQUEyRCxVQUFBLEdBQUcsRUFBSTtBQUM5RCxjQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQUosQ0FBaUIscUJBQWpCLENBQUQsQ0FBUixHQUFvRCxJQUFoRTtBQUNBLFVBQUEsVUFBVSxDQUFDLFlBQU07QUFDYixZQUFBLEdBQUcsQ0FBQyxLQUFKLENBQVUsa0JBQVYsR0FBK0IsS0FBSyxHQUFHLEtBQVIsR0FBZ0IsS0FBaEIsR0FBd0IsR0FBdkQ7QUFDSCxXQUZTLEVBRVAsRUFGTyxDQUFWO0FBR0gsU0FMRDtBQU1IOztBQUNELFVBQUksUUFBUSxDQUFDLGdCQUFULENBQTBCLGlCQUExQixFQUE2QyxNQUE3QyxHQUFzRCxDQUExRCxFQUE2RDtBQUN6RCxRQUFBLFFBQVEsQ0FBQyxnQkFBVCxDQUEwQixpQkFBMUIsRUFBNkMsT0FBN0MsQ0FBcUQsVUFBQSxHQUFHLEVBQUk7QUFDeEQsVUFBQSxNQUFJLENBQUMsS0FBTCxDQUFXLEdBQVg7O0FBQ0EsVUFBQSxNQUFNLENBQUMsZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUNwQyxZQUFBLE1BQUksQ0FBQyxLQUFMLENBQVcsR0FBWDtBQUNILFdBRkQ7QUFHSCxTQUxEO0FBTUg7O0FBQ0QsTUFBQSxRQUFRLENBQUMsSUFBVCxDQUFjLGtCQUFkLENBQ0ksV0FESjtBQTJDSDs7O1dBQ0QsZUFBTSxHQUFOLEVBQVc7QUFDUCxVQUNJLENBQUMsR0FBRyxDQUFDLFlBQUosQ0FBaUIsdUJBQWpCLENBQUQsSUFDQSxLQUFLLFNBQUwsS0FBbUIsTUFBTSxDQUFDLFdBQTFCLElBQXlDLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FGN0MsRUFHRTtBQUNFLFlBQUksS0FBSyxHQUFHLENBQVo7O0FBQ0EsWUFBSSxHQUFHLENBQUMsWUFBSixDQUFpQixxQkFBakIsQ0FBSixFQUE2QztBQUN6QyxVQUFBLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQUosQ0FBaUIscUJBQWpCLENBQUQsQ0FBaEI7QUFDSDs7QUFDRCxRQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2IsVUFBQSxHQUFHLENBQUMsWUFBSixDQUFpQix1QkFBakIsRUFBMEMsTUFBMUM7QUFDSCxTQUZTLEVBRVAsS0FGTyxDQUFWO0FBR0g7QUFDSjs7O1dBQ0QscUJBQVk7QUFDUixVQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsZUFBbkI7QUFDQSxhQUFPLENBQUMsTUFBTSxDQUFDLFdBQVAsSUFBc0IsR0FBRyxDQUFDLFNBQTNCLEtBQXlDLEdBQUcsQ0FBQyxTQUFKLElBQWlCLENBQTFELENBQVA7QUFDSDs7O1dBQ0QsbUJBQVUsR0FBVixFQUFlO0FBQ1gsYUFBTyxHQUFHLENBQUMscUJBQUosR0FBNEIsR0FBNUIsR0FBa0MsTUFBTSxDQUFDLFdBQXpDLEdBQXVELFFBQVEsQ0FBQyxlQUFULENBQXlCLFNBQXZGO0FBQ0g7Ozs7OztBQUdMLE1BQU0sQ0FBQyxRQUFQLEdBQWtCLFFBQWxCOzs7QUNwTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBsYW5pbWF0ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVhZHkoKSB7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuaW5zZXJ0QWRqYWNlbnRIVE1MKFxuICAgICAgICAgICAgJ2JlZm9yZWVuZCcsXG4gICAgICAgICAgICBgXG4gICAgICAgICAgICA8c3R5bGU+XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGVdIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLyogZGlzYWJsZSBvbiBtb2JpbGUgKi9cbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGVdIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwcyBlYXNlIDBzO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nc2Nyb2xsWCddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFtkYXRhLWxhbmltYXRlPSdzY3JvbGxZJ10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3NjYWxlJ10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3JvdGF0ZSddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgICAgIGBcbiAgICAgICAgKTtcbiAgICB9XG4gICAgdHJhdmVyc2VBbGxUZXh0Tm9kZXMoJGVsLCAkZm4pIHtcbiAgICAgICAgaWYgKCRlbC5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICRlbC5jaGlsZE5vZGVzLmZvckVhY2goJGVsMiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCRlbDIubm9kZVR5cGUgPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgJGVsMi50ZXh0Q29udGVudCA9ICRmbigkZWwyLnRleHRDb250ZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYXZlcnNlQWxsVGV4dE5vZGVzKCRlbDIsICRmbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZCgpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlLXNwbGl0XScpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlLXNwbGl0XScpLmZvckVhY2goJGVsID0+IHtcbiAgICAgICAgICAgICAgICAkZWwuc2V0QXR0cmlidXRlKCdkYXRhLWFyaWEtbGFiZWwnLCAkZWwuaW5uZXJUZXh0LnJlcGxhY2UoLyg/OlxcclxcbnxcXHJ8XFxuKS9nLCAnICcpKTtcbiAgICAgICAgICAgICAgICAkZWwuaW5uZXJIVE1MID0gJGVsLmlubmVySFRNTC5zcGxpdCgnICcpLmpvaW4oJyZuYnNwOycpO1xuICAgICAgICAgICAgICAgIGxldCBzaGlmdCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKCRlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3BsaXQnKSA9PT0gJ2NoYXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhdmVyc2VBbGxUZXh0Tm9kZXMoJGVsLCAkdGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyVzcGFuJScgKyAkdGV4dC5zcGxpdCgnJykuam9pbignJS9zcGFuJSVzcGFuJScpICsgJyUvc3BhbiUnO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgJGVsLmlubmVySFRNTCA9ICRlbC5pbm5lckhUTUwuc3BsaXQoJyVzcGFuJScpLmpvaW4oJzxzcGFuPicpLnNwbGl0KCclL3NwYW4lJykuam9pbignPC9zcGFuPicpO1xuICAgICAgICAgICAgICAgICAgICBzaGlmdCA9IDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCRlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3BsaXQnKSA9PT0gJ3dvcmQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhdmVyc2VBbGxUZXh0Tm9kZXMoJGVsLCAkdGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyVzcGFuJScgKyAkdGV4dC5zcGxpdCgnICcpLmpvaW4oJyUvc3BhbiUgJXNwYW4lJykgKyAnJS9zcGFuJSc7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAkZWwuaW5uZXJIVE1MID0gJGVsLmlubmVySFRNTC5zcGxpdCgnJXNwYW4lJykuam9pbignPHNwYW4+Jykuc3BsaXQoJyUvc3BhbiUnKS5qb2luKCc8L3NwYW4+Jyk7XG4gICAgICAgICAgICAgICAgICAgIHNoaWZ0ID0gMjUwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1zcGxpdCcpID09PSAnbGluZScpIHtcbiAgICAgICAgICAgICAgICAgICAgJGVsLmlubmVySFRNTCA9ICc8c3Bhbj4nICsgJGVsLmlubmVySFRNTC5zcGxpdCgnPGJyPicpLmpvaW4oJzwvc3Bhbj48YnIvPjxzcGFuPicpICsgJzwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgICAgICBzaGlmdCA9IDUwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAkZWwucXVlcnlTZWxlY3RvckFsbCgnc3BhbicpLmZvckVhY2goKCRlbDIsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRlbDIuaW5uZXJUZXh0LnRyaW0oKSA9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICRlbDIuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlJywgJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZScpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRlbGF5ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtZGVsYXknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXkgPSBwYXJzZUludCgkZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLWRlbGF5JykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgkZWwuaGFzQXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLXNwZWVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbDIuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLXNwZWVkJywgJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1zcGVlZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5ICo9IDEgLyBwYXJzZUludCgkZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLXNwZWVkJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICRlbDIuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLWRlbGF5JywgZGVsYXkgKyBzaGlmdCAqIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkZWwucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWxhbmltYXRlJyk7XG4gICAgICAgICAgICAgICAgJGVsLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1kZWxheScpO1xuICAgICAgICAgICAgICAgICRlbC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3BlZWQnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1sYW5pbWF0ZS1zcGVlZF0nKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1sYW5pbWF0ZS1zcGVlZF0nKS5mb3JFYWNoKCRlbCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNwZWVkID0gcGFyc2VJbnQoJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1zcGVlZCcpKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICRlbC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBzcGVlZCArICdzLCAnICsgc3BlZWQgKyAncyc7XG4gICAgICAgICAgICAgICAgfSwgMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlXScpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlXScpLmZvckVhY2goJGVsID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0KCRlbCk7XG4gICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydCgkZWwpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZG9jdW1lbnQuaGVhZC5pbnNlcnRBZGphY2VudEhUTUwoXG4gICAgICAgICAgICAnYmVmb3JlZW5kJyxcbiAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nZmFkZSddIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3Njcm9sbFgnXSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3Njcm9sbFknXSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3NjYWxlJ10ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgdHJhbnNsYXRlWSgzMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3JvdGF0ZSddIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFtkYXRhLWxhbmltYXRlLXN0YXJ0ZWRdIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDFzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZS1zcGxpdF0gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nZmFkZSddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nc2Nyb2xsWCddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3Njcm9sbFknXVtkYXRhLWxhbmltYXRlLXN0YXJ0ZWRdIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFtkYXRhLWxhbmltYXRlPSdzY2FsZSddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3JvdGF0ZSddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N0eWxlPlxuICAgICAgICAgICAgYFxuICAgICAgICApO1xuICAgIH1cbiAgICBzdGFydCgkZWwpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgISRlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3RhcnRlZCcpICYmXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvcCgpICsgd2luZG93LmlubmVySGVpZ2h0ID49IHRoaXMub2Zmc2V0VG9wKCRlbClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBsZXQgZGVsYXkgPSAwO1xuICAgICAgICAgICAgaWYgKCRlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtZGVsYXknKSkge1xuICAgICAgICAgICAgICAgIGRlbGF5ID0gcGFyc2VJbnQoJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1kZWxheScpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRlbC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3RhcnRlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICB9LCBkZWxheSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2Nyb2xsVG9wKCkge1xuICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICByZXR1cm4gKHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2Muc2Nyb2xsVG9wKSAtIChkb2MuY2xpZW50VG9wIHx8IDApO1xuICAgIH1cbiAgICBvZmZzZXRUb3AoJGVsKSB7XG4gICAgICAgIHJldHVybiAkZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0IC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFRvcDtcbiAgICB9XG59XG5cbndpbmRvdy5sYW5pbWF0ZSA9IGxhbmltYXRlO1xuIiwiZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY2xhc3NDYWxsQ2hlY2ssIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY3JlYXRlQ2xhc3MsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCJmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgIFwiZGVmYXVsdFwiOiBvYmpcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il19
|
|
1
|
+
!function t(e,a,n){function r(l,s){if(!a[l]){if(!e[l]){var o="function"==typeof require&&require;if(!s&&o)return o(l,!0);if(i)return i(l,!0);var d=new Error("Cannot find module '"+l+"'");throw d.code="MODULE_NOT_FOUND",d}var u=a[l]={exports:{}};e[l][0].call(u.exports,(function(t){return r(e[l][1][t]||t)}),u,u.exports,t,e,a,n)}return a[l].exports}for(var i="function"==typeof require&&require,l=0;l<n.length;l++)r(n[l]);return r}({1:[function(t,e,a){"use strict";var n=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var r=n(t("@babel/runtime/helpers/classCallCheck")),i=n(t("@babel/runtime/helpers/createClass")),l=function(){function t(){var e=this;(0,r.default)(this,t),document.addEventListener("DOMContentLoaded",(function(){e.ready()})),window.addEventListener("load",(function(){e.load()}))}return(0,i.default)(t,[{key:"ready",value:function(){document.head.insertAdjacentHTML("beforeend","\n <style>\n [data-lanimate] {\n opacity: 0;\n }\n /* disable on mobile */\n @media screen and (max-width: 1100px) {\n [data-lanimate] {\n transition: all 0s ease 0s;\n opacity: 1;\n }\n [data-lanimate='scrollX'] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(0deg);\n }\n }\n </style>\n ")}},{key:"traverseAllTextNodes",value:function(t,e){var a=this;t.childNodes.length>0&&t.childNodes.forEach((function(t){3===t.nodeType?t.textContent=e(t.textContent):a.traverseAllTextNodes(t,e)}))}},{key:"load",value:function(){var t=this;document.querySelectorAll("[data-lanimate-split]").length>0&&document.querySelectorAll("[data-lanimate-split]").forEach((function(e){e.setAttribute("data-aria-label",e.innerText.replace(/(?:\r\n|\r|\n)/g," ")),e.innerHTML=e.innerHTML.split(" ").join(" ");var a=0;"char"===e.getAttribute("data-lanimate-split")&&(t.traverseAllTextNodes(e,(function(t){return"%span%"+t.split("").join("%/span%%span%")+"%/span%"})),e.innerHTML=e.innerHTML.split("%span%").join("<span>").split("%/span%").join("</span>"),a=100),"word"===e.getAttribute("data-lanimate-split")&&(t.traverseAllTextNodes(e,(function(t){return"%span%"+t.split(" ").join("%/span% %span%")+"%/span%"})),e.innerHTML=e.innerHTML.split("%span%").join("<span>").split("%/span%").join("</span>"),a=250),"line"===e.getAttribute("data-lanimate-split")&&(e.innerHTML="<span>"+e.innerHTML.split("<br>").join("</span><br/><span>")+"</span>",a=500);var n=0;e.querySelectorAll("span").forEach((function(t,r){if(""!=t.innerText.trim()){t.setAttribute("data-lanimate",e.getAttribute("data-lanimate"));var i=0;e.hasAttribute("data-lanimate-delay")&&(i=parseInt(e.getAttribute("data-lanimate-delay"))),e.hasAttribute("data-lanimate-speed")&&(t.setAttribute("data-lanimate-speed",e.getAttribute("data-lanimate-speed")),i*=1/parseInt(e.getAttribute("data-lanimate-speed"))),t.setAttribute("data-lanimate-delay",i+a*n),n++}})),e.removeAttribute("data-lanimate"),e.removeAttribute("data-lanimate-delay"),e.removeAttribute("data-lanimate-speed")})),document.querySelectorAll("[data-lanimate-speed]").length>0&&document.querySelectorAll("[data-lanimate-speed]").forEach((function(t){var e=parseInt(t.getAttribute("data-lanimate-speed"))/1e3;setTimeout((function(){t.style.transitionDuration=e+"s, "+e+"s"}),10)})),document.querySelectorAll("[data-lanimate]").length>0&&document.querySelectorAll("[data-lanimate]").forEach((function(e){t.start(e),window.addEventListener("scroll",(function(){t.start(e)}))})),document.head.insertAdjacentHTML("beforeend","\n <style>\n [data-lanimate='fade'] {\n }\n [data-lanimate='scrollX'] {\n transform: translateX(30px);\n }\n [data-lanimate='scrollY'] {\n transform: translateY(30px);\n }\n [data-lanimate='scale'] {\n transform: scale(1.1) translateY(30px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(15deg);\n transform-origin: 0 0;\n }\n [data-lanimate-started] {\n transition: opacity 1s ease-in-out, transform 1s ease-in-out;\n opacity: 1;\n }\n [data-lanimate-split] span {\n display:inline-block;\n }\n [data-lanimate='fade'][data-lanimate-started] {\n }\n [data-lanimate='scrollX'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'][data-lanimate-started] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'][data-lanimate-started] {\n transform: rotate(0deg);\n }\n </style>\n ")}},{key:"start",value:function(t){if(!t.hasAttribute("data-lanimate-started")&&this.scrollTop()+window.innerHeight>=this.offsetTop(t)){var e=0;t.hasAttribute("data-lanimate-delay")&&(e=parseInt(t.getAttribute("data-lanimate-delay"))),setTimeout((function(){t.setAttribute("data-lanimate-started","true")}),e)}}},{key:"scrollTop",value:function(){var t=document.documentElement;return(window.pageYOffset||t.scrollTop)-(t.clientTop||0)}},{key:"offsetTop",value:function(t){return t.getBoundingClientRect().top+window.pageYOffset-document.documentElement.clientTop}}]),t}();a.default=l,window.lanimate=l},{"@babel/runtime/helpers/classCallCheck":2,"@babel/runtime/helpers/createClass":3,"@babel/runtime/helpers/interopRequireDefault":4}],2:[function(t,e,a){e.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},{}],3:[function(t,e,a){function n(t,e){for(var a=0;a<e.length;a++){var n=e[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}e.exports=function(t,e,a){return e&&n(t.prototype,e),a&&n(t,a),Object.defineProperty(t,"prototype",{writable:!1}),t},e.exports.__esModule=!0,e.exports.default=e.exports},{}],4:[function(t,e,a){e.exports=function(t){return t&&t.__esModule?t:{default:t}},e.exports.__esModule=!0,e.exports.default=e.exports},{}]},{},[1]);
|