pervert-monkey 1.0.11 → 1.0.13
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 +22 -11
- package/dist/core/pervertmonkey.core.es.d.ts +25 -16
- package/dist/core/pervertmonkey.core.es.js +712 -61
- package/dist/core/pervertmonkey.core.es.js.map +1 -1
- package/dist/core/pervertmonkey.core.umd.js +712 -61
- package/dist/core/pervertmonkey.core.umd.js.map +1 -1
- package/dist/userscripts/3hentai.user.js +19 -26
- package/dist/userscripts/camgirlfinder.user.js +2 -2
- package/dist/userscripts/camwhores.user.js +12 -16
- package/dist/userscripts/e-hentai.user.js +3 -4
- package/dist/userscripts/ebalka.user.js +6 -11
- package/dist/userscripts/eporner.user.js +11 -16
- package/dist/userscripts/erome.user.js +2 -2
- package/dist/userscripts/eroprofile.user.js +2 -2
- package/dist/userscripts/javhdporn.user.js +2 -2
- package/dist/userscripts/missav.user.js +2 -2
- package/dist/userscripts/motherless.user.js +22 -42
- package/dist/userscripts/namethatporn.user.js +5 -4
- package/dist/userscripts/nhentai.user.js +3 -3
- package/dist/userscripts/obmenvsem.user.js +18 -4
- package/dist/userscripts/pornhub.user.js +9 -12
- package/dist/userscripts/spankbang.user.js +6 -38
- package/dist/userscripts/thisvid.user.js +20 -22
- package/dist/userscripts/xhamster.user.js +13 -16
- package/dist/userscripts/xvideos.user.js +7 -12
- package/package.json +1 -1
- package/src/core/data-handler/data-manager.ts +4 -4
- package/src/core/jabroni-config/index.ts +3 -2
- package/src/core/jabroni-config/jabroni-gui-controller.ts +61 -0
- package/src/core/parsers/thumb-data-parser.ts +10 -1
- package/src/core/rules/index.ts +12 -39
- package/src/userscripts/index.ts +1 -1
- package/src/userscripts/scripts/3hentai.ts +20 -24
- package/src/userscripts/scripts/camgirlfinder.ts +1 -1
- package/src/userscripts/scripts/camwhores.ts +10 -17
- package/src/userscripts/scripts/e-hentai.ts +1 -1
- package/src/userscripts/scripts/ebalka.ts +7 -12
- package/src/userscripts/scripts/eporner.ts +8 -14
- package/src/userscripts/scripts/erome.ts +1 -1
- package/src/userscripts/scripts/eroprofile.ts +3 -3
- package/src/userscripts/scripts/javhdporn.ts +1 -1
- package/src/userscripts/scripts/missav.ts +1 -1
- package/src/userscripts/scripts/motherless.ts +19 -48
- package/src/userscripts/scripts/namethatporn.ts +1 -1
- package/src/userscripts/scripts/nhentai.ts +1 -1
- package/src/userscripts/scripts/obmenvsem.ts +1 -1
- package/src/userscripts/scripts/pornhub.ts +1 -1
- package/src/userscripts/scripts/spankbang.ts +1 -1
- package/src/userscripts/scripts/thisvid.ts +18 -19
- package/src/userscripts/scripts/xhamster.ts +10 -11
- package/src/userscripts/scripts/xvideos.ts +6 -11
- package/src/utils/dom/index.ts +10 -0
- package/src/utils/events/on-hover.ts +17 -25
- package/src/utils/events/tick.ts +1 -3
- package/src/utils/parsers/index.ts +16 -0
|
@@ -242,36 +242,28 @@ function downloader(options = { append: "", after: "", button: "", cbBefore: ()
|
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
class OnHover {
|
|
245
|
-
constructor(container,
|
|
245
|
+
constructor(container, targetSelector, onOver) {
|
|
246
246
|
__publicField(this, "target");
|
|
247
|
-
__publicField(this, "
|
|
248
|
-
__publicField(this, "onOverFinally");
|
|
247
|
+
__publicField(this, "onOverCallback");
|
|
249
248
|
this.container = container;
|
|
250
|
-
this.
|
|
249
|
+
this.targetSelector = targetSelector;
|
|
251
250
|
this.onOver = onOver;
|
|
252
|
-
this.
|
|
253
|
-
this.container.addEventListener("pointerover", (e) => this.handleEvent(e));
|
|
251
|
+
this.container.addEventListener("pointerover", (e) => this.handleHover(e));
|
|
254
252
|
}
|
|
255
|
-
|
|
256
|
-
var _a3
|
|
257
|
-
(_a3 = this.
|
|
258
|
-
|
|
253
|
+
handleLeave() {
|
|
254
|
+
var _a3;
|
|
255
|
+
(_a3 = this.onOverCallback) == null ? void 0 : _a3.call(this);
|
|
256
|
+
this.onOverCallback = void 0;
|
|
259
257
|
this.target = void 0;
|
|
260
|
-
this.onOverFinally = void 0;
|
|
261
|
-
this.leaveSubject = void 0;
|
|
262
258
|
}
|
|
263
|
-
|
|
259
|
+
handleHover(e) {
|
|
264
260
|
var _a3;
|
|
265
|
-
const
|
|
266
|
-
if (!
|
|
267
|
-
(_a3 = this.
|
|
268
|
-
this.target =
|
|
269
|
-
|
|
270
|
-
this.
|
|
271
|
-
this.leaveSubject = (result == null ? void 0 : result.leaveTarget) || this.target;
|
|
272
|
-
this.leaveSubject.addEventListener("pointerleave", (_2) => this.handleLeaveEvent(), {
|
|
273
|
-
once: true
|
|
274
|
-
});
|
|
261
|
+
const newTarget = e.target.closest(this.targetSelector);
|
|
262
|
+
if (!newTarget || this.target === newTarget) return;
|
|
263
|
+
(_a3 = this.target) == null ? void 0 : _a3.dispatchEvent(new PointerEvent("pointerleave"));
|
|
264
|
+
this.target = newTarget;
|
|
265
|
+
this.onOverCallback = this.onOver(this.target);
|
|
266
|
+
this.target.addEventListener("pointerleave", () => this.handleLeave(), { once: true });
|
|
275
267
|
}
|
|
276
268
|
static create(...args) {
|
|
277
269
|
return new OnHover(...args);
|
|
@@ -291,12 +283,11 @@ class Tick {
|
|
|
291
283
|
this.tick = window.setInterval(callback, this.delay);
|
|
292
284
|
}
|
|
293
285
|
stop() {
|
|
286
|
+
var _a3;
|
|
294
287
|
if (this.tick !== void 0) {
|
|
295
288
|
clearInterval(this.tick);
|
|
296
289
|
this.tick = void 0;
|
|
297
|
-
|
|
298
|
-
if (this.callbackFinal) {
|
|
299
|
-
this.callbackFinal();
|
|
290
|
+
(_a3 = this.callbackFinal) == null ? void 0 : _a3.call(this);
|
|
300
291
|
this.callbackFinal = void 0;
|
|
301
292
|
}
|
|
302
293
|
}
|
|
@@ -403,6 +394,18 @@ function parseIntegerOr(n, or2) {
|
|
|
403
394
|
const num = Number(n);
|
|
404
395
|
return Number.isSafeInteger(num) ? num : or2;
|
|
405
396
|
}
|
|
397
|
+
function parseNumberWithLetter(str) {
|
|
398
|
+
var _a3;
|
|
399
|
+
const multipliers = { k: 1e3, m: 1e6 };
|
|
400
|
+
const match = str.trim().match(/^([\d.]+)(\w)?$/);
|
|
401
|
+
if (!match) return 0;
|
|
402
|
+
const num = parseFloat(match[1]);
|
|
403
|
+
const suffix = (_a3 = match[2]) == null ? void 0 : _a3.toLowerCase();
|
|
404
|
+
if (suffix && suffix in multipliers) {
|
|
405
|
+
return num * multipliers[suffix];
|
|
406
|
+
}
|
|
407
|
+
return num;
|
|
408
|
+
}
|
|
406
409
|
function parseDataParams(str) {
|
|
407
410
|
const paramsStr = decodeURI(str.trim()).split(";");
|
|
408
411
|
return paramsStr.reduce(
|
|
@@ -524,7 +527,7 @@ __publicField(_DataFilter, "customDataSelectorFnsDefault", {
|
|
|
524
527
|
});
|
|
525
528
|
let DataFilter = _DataFilter;
|
|
526
529
|
class DataManager {
|
|
527
|
-
constructor(rules,
|
|
530
|
+
constructor(rules, parentHomogenity) {
|
|
528
531
|
__publicField(this, "data", /* @__PURE__ */ new Map());
|
|
529
532
|
__publicField(this, "lazyImgLoader", new LazyImgLoader(
|
|
530
533
|
(target) => !DataFilter.isFiltered(target)
|
|
@@ -533,13 +536,13 @@ class DataManager {
|
|
|
533
536
|
__publicField(this, "applyFilters", async (filters = {}, offset = 0) => {
|
|
534
537
|
const filtersToApply = this.dataFilter.selectFilters(filters);
|
|
535
538
|
if (filtersToApply.length === 0) return;
|
|
536
|
-
const
|
|
539
|
+
const iterator2 = this.data.values().drop(offset);
|
|
537
540
|
let finished = false;
|
|
538
541
|
await new Promise((resolve) => {
|
|
539
542
|
function runBatch(deadline) {
|
|
540
543
|
const updates = [];
|
|
541
544
|
while (deadline.timeRemaining() > 0) {
|
|
542
|
-
const { value, done } =
|
|
545
|
+
const { value, done } = iterator2.next();
|
|
543
546
|
finished = !!done;
|
|
544
547
|
if (done) break;
|
|
545
548
|
for (const f of filtersToApply) {
|
|
@@ -575,13 +578,13 @@ class DataManager {
|
|
|
575
578
|
const dataOffset = this.data.size;
|
|
576
579
|
const fragment = document.createDocumentFragment();
|
|
577
580
|
const parent = container || this.rules.container;
|
|
578
|
-
const homogenity = !!this.
|
|
581
|
+
const homogenity = !!this.parentHomogenity;
|
|
579
582
|
for (const thumbElement of thumbs) {
|
|
580
|
-
const url = this.rules.
|
|
583
|
+
const url = this.rules.thumbDataParser.getUrl(thumbElement);
|
|
581
584
|
if (!url || this.data.has(url) || parent !== container && (parent == null ? void 0 : parent.contains(thumbElement)) || homogenity && !checkHomogenity(
|
|
582
585
|
parent,
|
|
583
586
|
thumbElement.parentElement,
|
|
584
|
-
this.
|
|
587
|
+
this.parentHomogenity
|
|
585
588
|
)) {
|
|
586
589
|
if (removeDuplicates) thumbElement.remove();
|
|
587
590
|
continue;
|
|
@@ -601,7 +604,7 @@ class DataManager {
|
|
|
601
604
|
});
|
|
602
605
|
});
|
|
603
606
|
this.rules = rules;
|
|
604
|
-
this.
|
|
607
|
+
this.parentHomogenity = parentHomogenity;
|
|
605
608
|
this.dataFilter = new DataFilter(this.rules);
|
|
606
609
|
}
|
|
607
610
|
sortBy(key, direction = true) {
|
|
@@ -635,6 +638,102 @@ function __extends(d2, b2) {
|
|
|
635
638
|
}
|
|
636
639
|
d2.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
|
|
637
640
|
}
|
|
641
|
+
function __awaiter(thisArg, _arguments, P2, generator) {
|
|
642
|
+
function adopt(value) {
|
|
643
|
+
return value instanceof P2 ? value : new P2(function(resolve) {
|
|
644
|
+
resolve(value);
|
|
645
|
+
});
|
|
646
|
+
}
|
|
647
|
+
return new (P2 || (P2 = Promise))(function(resolve, reject) {
|
|
648
|
+
function fulfilled(value) {
|
|
649
|
+
try {
|
|
650
|
+
step(generator.next(value));
|
|
651
|
+
} catch (e) {
|
|
652
|
+
reject(e);
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
function rejected(value) {
|
|
656
|
+
try {
|
|
657
|
+
step(generator["throw"](value));
|
|
658
|
+
} catch (e) {
|
|
659
|
+
reject(e);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
function step(result) {
|
|
663
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
664
|
+
}
|
|
665
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
function __generator(thisArg, body) {
|
|
669
|
+
var _2 = { label: 0, sent: function() {
|
|
670
|
+
if (t[0] & 1) throw t[1];
|
|
671
|
+
return t[1];
|
|
672
|
+
}, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
673
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
674
|
+
return this;
|
|
675
|
+
}), g;
|
|
676
|
+
function verb(n) {
|
|
677
|
+
return function(v2) {
|
|
678
|
+
return step([n, v2]);
|
|
679
|
+
};
|
|
680
|
+
}
|
|
681
|
+
function step(op2) {
|
|
682
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
683
|
+
while (g && (g = 0, op2[0] && (_2 = 0)), _2) try {
|
|
684
|
+
if (f = 1, y && (t = op2[0] & 2 ? y["return"] : op2[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op2[1])).done) return t;
|
|
685
|
+
if (y = 0, t) op2 = [op2[0] & 2, t.value];
|
|
686
|
+
switch (op2[0]) {
|
|
687
|
+
case 0:
|
|
688
|
+
case 1:
|
|
689
|
+
t = op2;
|
|
690
|
+
break;
|
|
691
|
+
case 4:
|
|
692
|
+
_2.label++;
|
|
693
|
+
return { value: op2[1], done: false };
|
|
694
|
+
case 5:
|
|
695
|
+
_2.label++;
|
|
696
|
+
y = op2[1];
|
|
697
|
+
op2 = [0];
|
|
698
|
+
continue;
|
|
699
|
+
case 7:
|
|
700
|
+
op2 = _2.ops.pop();
|
|
701
|
+
_2.trys.pop();
|
|
702
|
+
continue;
|
|
703
|
+
default:
|
|
704
|
+
if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op2[0] === 6 || op2[0] === 2)) {
|
|
705
|
+
_2 = 0;
|
|
706
|
+
continue;
|
|
707
|
+
}
|
|
708
|
+
if (op2[0] === 3 && (!t || op2[1] > t[0] && op2[1] < t[3])) {
|
|
709
|
+
_2.label = op2[1];
|
|
710
|
+
break;
|
|
711
|
+
}
|
|
712
|
+
if (op2[0] === 6 && _2.label < t[1]) {
|
|
713
|
+
_2.label = t[1];
|
|
714
|
+
t = op2;
|
|
715
|
+
break;
|
|
716
|
+
}
|
|
717
|
+
if (t && _2.label < t[2]) {
|
|
718
|
+
_2.label = t[2];
|
|
719
|
+
_2.ops.push(op2);
|
|
720
|
+
break;
|
|
721
|
+
}
|
|
722
|
+
if (t[2]) _2.ops.pop();
|
|
723
|
+
_2.trys.pop();
|
|
724
|
+
continue;
|
|
725
|
+
}
|
|
726
|
+
op2 = body.call(thisArg, _2);
|
|
727
|
+
} catch (e) {
|
|
728
|
+
op2 = [6, e];
|
|
729
|
+
y = 0;
|
|
730
|
+
} finally {
|
|
731
|
+
f = t = 0;
|
|
732
|
+
}
|
|
733
|
+
if (op2[0] & 5) throw op2[1];
|
|
734
|
+
return { value: op2[0] ? op2[1] : void 0, done: true };
|
|
735
|
+
}
|
|
736
|
+
}
|
|
638
737
|
function __values(o) {
|
|
639
738
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
640
739
|
if (m) return m.call(o);
|
|
@@ -672,6 +771,69 @@ function __spreadArray(to2, from, pack) {
|
|
|
672
771
|
}
|
|
673
772
|
return to2.concat(ar2 || Array.prototype.slice.call(from));
|
|
674
773
|
}
|
|
774
|
+
function __await(v2) {
|
|
775
|
+
return this instanceof __await ? (this.v = v2, this) : new __await(v2);
|
|
776
|
+
}
|
|
777
|
+
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
778
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
779
|
+
var g = generator.apply(thisArg, _arguments || []), i, q2 = [];
|
|
780
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
|
|
781
|
+
return this;
|
|
782
|
+
}, i;
|
|
783
|
+
function awaitReturn(f) {
|
|
784
|
+
return function(v2) {
|
|
785
|
+
return Promise.resolve(v2).then(f, reject);
|
|
786
|
+
};
|
|
787
|
+
}
|
|
788
|
+
function verb(n, f) {
|
|
789
|
+
if (g[n]) {
|
|
790
|
+
i[n] = function(v2) {
|
|
791
|
+
return new Promise(function(a2, b2) {
|
|
792
|
+
q2.push([n, v2, a2, b2]) > 1 || resume(n, v2);
|
|
793
|
+
});
|
|
794
|
+
};
|
|
795
|
+
if (f) i[n] = f(i[n]);
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
function resume(n, v2) {
|
|
799
|
+
try {
|
|
800
|
+
step(g[n](v2));
|
|
801
|
+
} catch (e) {
|
|
802
|
+
settle(q2[0][3], e);
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
function step(r) {
|
|
806
|
+
r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q2[0][2], r);
|
|
807
|
+
}
|
|
808
|
+
function fulfill(value) {
|
|
809
|
+
resume("next", value);
|
|
810
|
+
}
|
|
811
|
+
function reject(value) {
|
|
812
|
+
resume("throw", value);
|
|
813
|
+
}
|
|
814
|
+
function settle(f, v2) {
|
|
815
|
+
if (f(v2), q2.shift(), q2.length) resume(q2[0][0], q2[0][1]);
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
function __asyncValues(o) {
|
|
819
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
820
|
+
var m = o[Symbol.asyncIterator], i;
|
|
821
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
|
|
822
|
+
return this;
|
|
823
|
+
}, i);
|
|
824
|
+
function verb(n) {
|
|
825
|
+
i[n] = o[n] && function(v2) {
|
|
826
|
+
return new Promise(function(resolve, reject) {
|
|
827
|
+
v2 = o[n](v2), settle(resolve, reject, v2.done, v2.value);
|
|
828
|
+
});
|
|
829
|
+
};
|
|
830
|
+
}
|
|
831
|
+
function settle(resolve, reject, d2, v2) {
|
|
832
|
+
Promise.resolve(v2).then(function(v3) {
|
|
833
|
+
resolve({ value: v3, done: d2 });
|
|
834
|
+
}, reject);
|
|
835
|
+
}
|
|
836
|
+
}
|
|
675
837
|
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
676
838
|
var e = new Error(message);
|
|
677
839
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -1112,6 +1274,69 @@ function isObserver(value) {
|
|
|
1112
1274
|
function isSubscriber(value) {
|
|
1113
1275
|
return value && value instanceof Subscriber || isObserver(value) && isSubscription(value);
|
|
1114
1276
|
}
|
|
1277
|
+
function hasLift(source) {
|
|
1278
|
+
return isFunction(source === null || source === void 0 ? void 0 : source.lift);
|
|
1279
|
+
}
|
|
1280
|
+
function operate(init) {
|
|
1281
|
+
return function(source) {
|
|
1282
|
+
if (hasLift(source)) {
|
|
1283
|
+
return source.lift(function(liftedSource) {
|
|
1284
|
+
try {
|
|
1285
|
+
return init(liftedSource, this);
|
|
1286
|
+
} catch (err) {
|
|
1287
|
+
this.error(err);
|
|
1288
|
+
}
|
|
1289
|
+
});
|
|
1290
|
+
}
|
|
1291
|
+
throw new TypeError("Unable to lift unknown Observable type");
|
|
1292
|
+
};
|
|
1293
|
+
}
|
|
1294
|
+
function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
|
|
1295
|
+
return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);
|
|
1296
|
+
}
|
|
1297
|
+
var OperatorSubscriber = (function(_super) {
|
|
1298
|
+
__extends(OperatorSubscriber2, _super);
|
|
1299
|
+
function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {
|
|
1300
|
+
var _this = _super.call(this, destination) || this;
|
|
1301
|
+
_this.onFinalize = onFinalize;
|
|
1302
|
+
_this.shouldUnsubscribe = shouldUnsubscribe;
|
|
1303
|
+
_this._next = onNext ? function(value) {
|
|
1304
|
+
try {
|
|
1305
|
+
onNext(value);
|
|
1306
|
+
} catch (err) {
|
|
1307
|
+
destination.error(err);
|
|
1308
|
+
}
|
|
1309
|
+
} : _super.prototype._next;
|
|
1310
|
+
_this._error = onError ? function(err) {
|
|
1311
|
+
try {
|
|
1312
|
+
onError(err);
|
|
1313
|
+
} catch (err2) {
|
|
1314
|
+
destination.error(err2);
|
|
1315
|
+
} finally {
|
|
1316
|
+
this.unsubscribe();
|
|
1317
|
+
}
|
|
1318
|
+
} : _super.prototype._error;
|
|
1319
|
+
_this._complete = onComplete ? function() {
|
|
1320
|
+
try {
|
|
1321
|
+
onComplete();
|
|
1322
|
+
} catch (err) {
|
|
1323
|
+
destination.error(err);
|
|
1324
|
+
} finally {
|
|
1325
|
+
this.unsubscribe();
|
|
1326
|
+
}
|
|
1327
|
+
} : _super.prototype._complete;
|
|
1328
|
+
return _this;
|
|
1329
|
+
}
|
|
1330
|
+
OperatorSubscriber2.prototype.unsubscribe = function() {
|
|
1331
|
+
var _a3;
|
|
1332
|
+
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
|
|
1333
|
+
var closed_1 = this.closed;
|
|
1334
|
+
_super.prototype.unsubscribe.call(this);
|
|
1335
|
+
!closed_1 && ((_a3 = this.onFinalize) === null || _a3 === void 0 ? void 0 : _a3.call(this));
|
|
1336
|
+
}
|
|
1337
|
+
};
|
|
1338
|
+
return OperatorSubscriber2;
|
|
1339
|
+
})(Subscriber);
|
|
1115
1340
|
var ObjectUnsubscribedError = createErrorClass(function(_super) {
|
|
1116
1341
|
return function ObjectUnsubscribedErrorImpl() {
|
|
1117
1342
|
_super(this);
|
|
@@ -1272,6 +1497,404 @@ var AnonymousSubject = (function(_super) {
|
|
|
1272
1497
|
};
|
|
1273
1498
|
return AnonymousSubject2;
|
|
1274
1499
|
})(Subject);
|
|
1500
|
+
var dateTimestampProvider = {
|
|
1501
|
+
now: function() {
|
|
1502
|
+
return (dateTimestampProvider.delegate || Date).now();
|
|
1503
|
+
},
|
|
1504
|
+
delegate: void 0
|
|
1505
|
+
};
|
|
1506
|
+
var ReplaySubject = (function(_super) {
|
|
1507
|
+
__extends(ReplaySubject2, _super);
|
|
1508
|
+
function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) {
|
|
1509
|
+
if (_bufferSize === void 0) {
|
|
1510
|
+
_bufferSize = Infinity;
|
|
1511
|
+
}
|
|
1512
|
+
if (_windowTime === void 0) {
|
|
1513
|
+
_windowTime = Infinity;
|
|
1514
|
+
}
|
|
1515
|
+
if (_timestampProvider === void 0) {
|
|
1516
|
+
_timestampProvider = dateTimestampProvider;
|
|
1517
|
+
}
|
|
1518
|
+
var _this = _super.call(this) || this;
|
|
1519
|
+
_this._bufferSize = _bufferSize;
|
|
1520
|
+
_this._windowTime = _windowTime;
|
|
1521
|
+
_this._timestampProvider = _timestampProvider;
|
|
1522
|
+
_this._buffer = [];
|
|
1523
|
+
_this._infiniteTimeWindow = true;
|
|
1524
|
+
_this._infiniteTimeWindow = _windowTime === Infinity;
|
|
1525
|
+
_this._bufferSize = Math.max(1, _bufferSize);
|
|
1526
|
+
_this._windowTime = Math.max(1, _windowTime);
|
|
1527
|
+
return _this;
|
|
1528
|
+
}
|
|
1529
|
+
ReplaySubject2.prototype.next = function(value) {
|
|
1530
|
+
var _a3 = this, isStopped = _a3.isStopped, _buffer = _a3._buffer, _infiniteTimeWindow = _a3._infiniteTimeWindow, _timestampProvider = _a3._timestampProvider, _windowTime = _a3._windowTime;
|
|
1531
|
+
if (!isStopped) {
|
|
1532
|
+
_buffer.push(value);
|
|
1533
|
+
!_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);
|
|
1534
|
+
}
|
|
1535
|
+
this._trimBuffer();
|
|
1536
|
+
_super.prototype.next.call(this, value);
|
|
1537
|
+
};
|
|
1538
|
+
ReplaySubject2.prototype._subscribe = function(subscriber) {
|
|
1539
|
+
this._throwIfClosed();
|
|
1540
|
+
this._trimBuffer();
|
|
1541
|
+
var subscription = this._innerSubscribe(subscriber);
|
|
1542
|
+
var _a3 = this, _infiniteTimeWindow = _a3._infiniteTimeWindow, _buffer = _a3._buffer;
|
|
1543
|
+
var copy = _buffer.slice();
|
|
1544
|
+
for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {
|
|
1545
|
+
subscriber.next(copy[i]);
|
|
1546
|
+
}
|
|
1547
|
+
this._checkFinalizedStatuses(subscriber);
|
|
1548
|
+
return subscription;
|
|
1549
|
+
};
|
|
1550
|
+
ReplaySubject2.prototype._trimBuffer = function() {
|
|
1551
|
+
var _a3 = this, _bufferSize = _a3._bufferSize, _timestampProvider = _a3._timestampProvider, _buffer = _a3._buffer, _infiniteTimeWindow = _a3._infiniteTimeWindow;
|
|
1552
|
+
var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;
|
|
1553
|
+
_bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);
|
|
1554
|
+
if (!_infiniteTimeWindow) {
|
|
1555
|
+
var now = _timestampProvider.now();
|
|
1556
|
+
var last = 0;
|
|
1557
|
+
for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {
|
|
1558
|
+
last = i;
|
|
1559
|
+
}
|
|
1560
|
+
last && _buffer.splice(0, last + 1);
|
|
1561
|
+
}
|
|
1562
|
+
};
|
|
1563
|
+
return ReplaySubject2;
|
|
1564
|
+
})(Subject);
|
|
1565
|
+
var isArrayLike = (function(x2) {
|
|
1566
|
+
return x2 && typeof x2.length === "number" && typeof x2 !== "function";
|
|
1567
|
+
});
|
|
1568
|
+
function isPromise(value) {
|
|
1569
|
+
return isFunction(value === null || value === void 0 ? void 0 : value.then);
|
|
1570
|
+
}
|
|
1571
|
+
function isInteropObservable(input) {
|
|
1572
|
+
return isFunction(input[observable]);
|
|
1573
|
+
}
|
|
1574
|
+
function isAsyncIterable(obj) {
|
|
1575
|
+
return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);
|
|
1576
|
+
}
|
|
1577
|
+
function createInvalidObservableTypeError(input) {
|
|
1578
|
+
return new TypeError("You provided " + (input !== null && typeof input === "object" ? "an invalid object" : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.");
|
|
1579
|
+
}
|
|
1580
|
+
function getSymbolIterator() {
|
|
1581
|
+
if (typeof Symbol !== "function" || !Symbol.iterator) {
|
|
1582
|
+
return "@@iterator";
|
|
1583
|
+
}
|
|
1584
|
+
return Symbol.iterator;
|
|
1585
|
+
}
|
|
1586
|
+
var iterator = getSymbolIterator();
|
|
1587
|
+
function isIterable(input) {
|
|
1588
|
+
return isFunction(input === null || input === void 0 ? void 0 : input[iterator]);
|
|
1589
|
+
}
|
|
1590
|
+
function readableStreamLikeToAsyncGenerator(readableStream) {
|
|
1591
|
+
return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {
|
|
1592
|
+
var reader, _a3, value, done;
|
|
1593
|
+
return __generator(this, function(_b2) {
|
|
1594
|
+
switch (_b2.label) {
|
|
1595
|
+
case 0:
|
|
1596
|
+
reader = readableStream.getReader();
|
|
1597
|
+
_b2.label = 1;
|
|
1598
|
+
case 1:
|
|
1599
|
+
_b2.trys.push([1, , 9, 10]);
|
|
1600
|
+
_b2.label = 2;
|
|
1601
|
+
case 2:
|
|
1602
|
+
return [4, __await(reader.read())];
|
|
1603
|
+
case 3:
|
|
1604
|
+
_a3 = _b2.sent(), value = _a3.value, done = _a3.done;
|
|
1605
|
+
if (!done) return [3, 5];
|
|
1606
|
+
return [4, __await(void 0)];
|
|
1607
|
+
case 4:
|
|
1608
|
+
return [2, _b2.sent()];
|
|
1609
|
+
case 5:
|
|
1610
|
+
return [4, __await(value)];
|
|
1611
|
+
case 6:
|
|
1612
|
+
return [4, _b2.sent()];
|
|
1613
|
+
case 7:
|
|
1614
|
+
_b2.sent();
|
|
1615
|
+
return [3, 2];
|
|
1616
|
+
case 8:
|
|
1617
|
+
return [3, 10];
|
|
1618
|
+
case 9:
|
|
1619
|
+
reader.releaseLock();
|
|
1620
|
+
return [7];
|
|
1621
|
+
case 10:
|
|
1622
|
+
return [2];
|
|
1623
|
+
}
|
|
1624
|
+
});
|
|
1625
|
+
});
|
|
1626
|
+
}
|
|
1627
|
+
function isReadableStreamLike(obj) {
|
|
1628
|
+
return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);
|
|
1629
|
+
}
|
|
1630
|
+
function innerFrom(input) {
|
|
1631
|
+
if (input instanceof Observable) {
|
|
1632
|
+
return input;
|
|
1633
|
+
}
|
|
1634
|
+
if (input != null) {
|
|
1635
|
+
if (isInteropObservable(input)) {
|
|
1636
|
+
return fromInteropObservable(input);
|
|
1637
|
+
}
|
|
1638
|
+
if (isArrayLike(input)) {
|
|
1639
|
+
return fromArrayLike(input);
|
|
1640
|
+
}
|
|
1641
|
+
if (isPromise(input)) {
|
|
1642
|
+
return fromPromise(input);
|
|
1643
|
+
}
|
|
1644
|
+
if (isAsyncIterable(input)) {
|
|
1645
|
+
return fromAsyncIterable(input);
|
|
1646
|
+
}
|
|
1647
|
+
if (isIterable(input)) {
|
|
1648
|
+
return fromIterable(input);
|
|
1649
|
+
}
|
|
1650
|
+
if (isReadableStreamLike(input)) {
|
|
1651
|
+
return fromReadableStreamLike(input);
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
throw createInvalidObservableTypeError(input);
|
|
1655
|
+
}
|
|
1656
|
+
function fromInteropObservable(obj) {
|
|
1657
|
+
return new Observable(function(subscriber) {
|
|
1658
|
+
var obs = obj[observable]();
|
|
1659
|
+
if (isFunction(obs.subscribe)) {
|
|
1660
|
+
return obs.subscribe(subscriber);
|
|
1661
|
+
}
|
|
1662
|
+
throw new TypeError("Provided object does not correctly implement Symbol.observable");
|
|
1663
|
+
});
|
|
1664
|
+
}
|
|
1665
|
+
function fromArrayLike(array) {
|
|
1666
|
+
return new Observable(function(subscriber) {
|
|
1667
|
+
for (var i = 0; i < array.length && !subscriber.closed; i++) {
|
|
1668
|
+
subscriber.next(array[i]);
|
|
1669
|
+
}
|
|
1670
|
+
subscriber.complete();
|
|
1671
|
+
});
|
|
1672
|
+
}
|
|
1673
|
+
function fromPromise(promise) {
|
|
1674
|
+
return new Observable(function(subscriber) {
|
|
1675
|
+
promise.then(function(value) {
|
|
1676
|
+
if (!subscriber.closed) {
|
|
1677
|
+
subscriber.next(value);
|
|
1678
|
+
subscriber.complete();
|
|
1679
|
+
}
|
|
1680
|
+
}, function(err) {
|
|
1681
|
+
return subscriber.error(err);
|
|
1682
|
+
}).then(null, reportUnhandledError);
|
|
1683
|
+
});
|
|
1684
|
+
}
|
|
1685
|
+
function fromIterable(iterable) {
|
|
1686
|
+
return new Observable(function(subscriber) {
|
|
1687
|
+
var e_1, _a3;
|
|
1688
|
+
try {
|
|
1689
|
+
for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {
|
|
1690
|
+
var value = iterable_1_1.value;
|
|
1691
|
+
subscriber.next(value);
|
|
1692
|
+
if (subscriber.closed) {
|
|
1693
|
+
return;
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
} catch (e_1_1) {
|
|
1697
|
+
e_1 = { error: e_1_1 };
|
|
1698
|
+
} finally {
|
|
1699
|
+
try {
|
|
1700
|
+
if (iterable_1_1 && !iterable_1_1.done && (_a3 = iterable_1.return)) _a3.call(iterable_1);
|
|
1701
|
+
} finally {
|
|
1702
|
+
if (e_1) throw e_1.error;
|
|
1703
|
+
}
|
|
1704
|
+
}
|
|
1705
|
+
subscriber.complete();
|
|
1706
|
+
});
|
|
1707
|
+
}
|
|
1708
|
+
function fromAsyncIterable(asyncIterable) {
|
|
1709
|
+
return new Observable(function(subscriber) {
|
|
1710
|
+
process(asyncIterable, subscriber).catch(function(err) {
|
|
1711
|
+
return subscriber.error(err);
|
|
1712
|
+
});
|
|
1713
|
+
});
|
|
1714
|
+
}
|
|
1715
|
+
function fromReadableStreamLike(readableStream) {
|
|
1716
|
+
return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));
|
|
1717
|
+
}
|
|
1718
|
+
function process(asyncIterable, subscriber) {
|
|
1719
|
+
var asyncIterable_1, asyncIterable_1_1;
|
|
1720
|
+
var e_2, _a3;
|
|
1721
|
+
return __awaiter(this, void 0, void 0, function() {
|
|
1722
|
+
var value, e_2_1;
|
|
1723
|
+
return __generator(this, function(_b2) {
|
|
1724
|
+
switch (_b2.label) {
|
|
1725
|
+
case 0:
|
|
1726
|
+
_b2.trys.push([0, 5, 6, 11]);
|
|
1727
|
+
asyncIterable_1 = __asyncValues(asyncIterable);
|
|
1728
|
+
_b2.label = 1;
|
|
1729
|
+
case 1:
|
|
1730
|
+
return [4, asyncIterable_1.next()];
|
|
1731
|
+
case 2:
|
|
1732
|
+
if (!(asyncIterable_1_1 = _b2.sent(), !asyncIterable_1_1.done)) return [3, 4];
|
|
1733
|
+
value = asyncIterable_1_1.value;
|
|
1734
|
+
subscriber.next(value);
|
|
1735
|
+
if (subscriber.closed) {
|
|
1736
|
+
return [2];
|
|
1737
|
+
}
|
|
1738
|
+
_b2.label = 3;
|
|
1739
|
+
case 3:
|
|
1740
|
+
return [3, 1];
|
|
1741
|
+
case 4:
|
|
1742
|
+
return [3, 11];
|
|
1743
|
+
case 5:
|
|
1744
|
+
e_2_1 = _b2.sent();
|
|
1745
|
+
e_2 = { error: e_2_1 };
|
|
1746
|
+
return [3, 11];
|
|
1747
|
+
case 6:
|
|
1748
|
+
_b2.trys.push([6, , 9, 10]);
|
|
1749
|
+
if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a3 = asyncIterable_1.return))) return [3, 8];
|
|
1750
|
+
return [4, _a3.call(asyncIterable_1)];
|
|
1751
|
+
case 7:
|
|
1752
|
+
_b2.sent();
|
|
1753
|
+
_b2.label = 8;
|
|
1754
|
+
case 8:
|
|
1755
|
+
return [3, 10];
|
|
1756
|
+
case 9:
|
|
1757
|
+
if (e_2) throw e_2.error;
|
|
1758
|
+
return [7];
|
|
1759
|
+
case 10:
|
|
1760
|
+
return [7];
|
|
1761
|
+
case 11:
|
|
1762
|
+
subscriber.complete();
|
|
1763
|
+
return [2];
|
|
1764
|
+
}
|
|
1765
|
+
});
|
|
1766
|
+
});
|
|
1767
|
+
}
|
|
1768
|
+
function map(project, thisArg) {
|
|
1769
|
+
return operate(function(source, subscriber) {
|
|
1770
|
+
var index = 0;
|
|
1771
|
+
source.subscribe(createOperatorSubscriber(subscriber, function(value) {
|
|
1772
|
+
subscriber.next(project.call(thisArg, value, index++));
|
|
1773
|
+
}));
|
|
1774
|
+
});
|
|
1775
|
+
}
|
|
1776
|
+
function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {
|
|
1777
|
+
return function(source, subscriber) {
|
|
1778
|
+
var hasState = hasSeed;
|
|
1779
|
+
var state = seed;
|
|
1780
|
+
var index = 0;
|
|
1781
|
+
source.subscribe(createOperatorSubscriber(subscriber, function(value) {
|
|
1782
|
+
var i = index++;
|
|
1783
|
+
state = hasState ? accumulator(state, value, i) : (hasState = true, value);
|
|
1784
|
+
subscriber.next(state);
|
|
1785
|
+
}, emitBeforeComplete));
|
|
1786
|
+
};
|
|
1787
|
+
}
|
|
1788
|
+
function scan(accumulator, seed) {
|
|
1789
|
+
return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));
|
|
1790
|
+
}
|
|
1791
|
+
function share(options) {
|
|
1792
|
+
if (options === void 0) {
|
|
1793
|
+
options = {};
|
|
1794
|
+
}
|
|
1795
|
+
var _a3 = options.connector, connector = _a3 === void 0 ? function() {
|
|
1796
|
+
return new Subject();
|
|
1797
|
+
} : _a3, _b2 = options.resetOnError, resetOnError = _b2 === void 0 ? true : _b2, _c2 = options.resetOnComplete, resetOnComplete = _c2 === void 0 ? true : _c2, _d2 = options.resetOnRefCountZero, resetOnRefCountZero = _d2 === void 0 ? true : _d2;
|
|
1798
|
+
return function(wrapperSource) {
|
|
1799
|
+
var connection;
|
|
1800
|
+
var resetConnection;
|
|
1801
|
+
var subject;
|
|
1802
|
+
var refCount = 0;
|
|
1803
|
+
var hasCompleted = false;
|
|
1804
|
+
var hasErrored = false;
|
|
1805
|
+
var cancelReset = function() {
|
|
1806
|
+
resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();
|
|
1807
|
+
resetConnection = void 0;
|
|
1808
|
+
};
|
|
1809
|
+
var reset = function() {
|
|
1810
|
+
cancelReset();
|
|
1811
|
+
connection = subject = void 0;
|
|
1812
|
+
hasCompleted = hasErrored = false;
|
|
1813
|
+
};
|
|
1814
|
+
var resetAndUnsubscribe = function() {
|
|
1815
|
+
var conn = connection;
|
|
1816
|
+
reset();
|
|
1817
|
+
conn === null || conn === void 0 ? void 0 : conn.unsubscribe();
|
|
1818
|
+
};
|
|
1819
|
+
return operate(function(source, subscriber) {
|
|
1820
|
+
refCount++;
|
|
1821
|
+
if (!hasErrored && !hasCompleted) {
|
|
1822
|
+
cancelReset();
|
|
1823
|
+
}
|
|
1824
|
+
var dest = subject = subject !== null && subject !== void 0 ? subject : connector();
|
|
1825
|
+
subscriber.add(function() {
|
|
1826
|
+
refCount--;
|
|
1827
|
+
if (refCount === 0 && !hasErrored && !hasCompleted) {
|
|
1828
|
+
resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);
|
|
1829
|
+
}
|
|
1830
|
+
});
|
|
1831
|
+
dest.subscribe(subscriber);
|
|
1832
|
+
if (!connection && refCount > 0) {
|
|
1833
|
+
connection = new SafeSubscriber({
|
|
1834
|
+
next: function(value) {
|
|
1835
|
+
return dest.next(value);
|
|
1836
|
+
},
|
|
1837
|
+
error: function(err) {
|
|
1838
|
+
hasErrored = true;
|
|
1839
|
+
cancelReset();
|
|
1840
|
+
resetConnection = handleReset(reset, resetOnError, err);
|
|
1841
|
+
dest.error(err);
|
|
1842
|
+
},
|
|
1843
|
+
complete: function() {
|
|
1844
|
+
hasCompleted = true;
|
|
1845
|
+
cancelReset();
|
|
1846
|
+
resetConnection = handleReset(reset, resetOnComplete);
|
|
1847
|
+
dest.complete();
|
|
1848
|
+
}
|
|
1849
|
+
});
|
|
1850
|
+
innerFrom(source).subscribe(connection);
|
|
1851
|
+
}
|
|
1852
|
+
})(wrapperSource);
|
|
1853
|
+
};
|
|
1854
|
+
}
|
|
1855
|
+
function handleReset(reset, on2) {
|
|
1856
|
+
var args = [];
|
|
1857
|
+
for (var _i4 = 2; _i4 < arguments.length; _i4++) {
|
|
1858
|
+
args[_i4 - 2] = arguments[_i4];
|
|
1859
|
+
}
|
|
1860
|
+
if (on2 === true) {
|
|
1861
|
+
reset();
|
|
1862
|
+
return;
|
|
1863
|
+
}
|
|
1864
|
+
if (on2 === false) {
|
|
1865
|
+
return;
|
|
1866
|
+
}
|
|
1867
|
+
var onSubscriber = new SafeSubscriber({
|
|
1868
|
+
next: function() {
|
|
1869
|
+
onSubscriber.unsubscribe();
|
|
1870
|
+
reset();
|
|
1871
|
+
}
|
|
1872
|
+
});
|
|
1873
|
+
return innerFrom(on2.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber);
|
|
1874
|
+
}
|
|
1875
|
+
function shareReplay(configOrBufferSize, windowTime, scheduler) {
|
|
1876
|
+
var bufferSize;
|
|
1877
|
+
var refCount = false;
|
|
1878
|
+
{
|
|
1879
|
+
bufferSize = configOrBufferSize;
|
|
1880
|
+
}
|
|
1881
|
+
return share({
|
|
1882
|
+
connector: function() {
|
|
1883
|
+
return new ReplaySubject(bufferSize, windowTime, scheduler);
|
|
1884
|
+
},
|
|
1885
|
+
resetOnError: true,
|
|
1886
|
+
resetOnComplete: false,
|
|
1887
|
+
resetOnRefCountZero: refCount
|
|
1888
|
+
});
|
|
1889
|
+
}
|
|
1890
|
+
function takeUntil(notifier) {
|
|
1891
|
+
return operate(function(source, subscriber) {
|
|
1892
|
+
innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function() {
|
|
1893
|
+
return subscriber.complete();
|
|
1894
|
+
}, noop));
|
|
1895
|
+
!subscriber.closed && source.subscribe(subscriber);
|
|
1896
|
+
});
|
|
1897
|
+
}
|
|
1275
1898
|
class InfiniteScroller {
|
|
1276
1899
|
constructor(options) {
|
|
1277
1900
|
__publicField(this, "enabled", true);
|
|
@@ -2396,6 +3019,9 @@ class ThumbDataParser {
|
|
|
2396
3019
|
const duration = timeToSeconds(((_a3 = title.match(/\d+m|\d+:\d+/)) == null ? void 0 : _a3[0]) || "");
|
|
2397
3020
|
return { title, duration };
|
|
2398
3021
|
}
|
|
3022
|
+
getUrl(thumb) {
|
|
3023
|
+
return (thumb.querySelector("a[href]") || thumb).href;
|
|
3024
|
+
}
|
|
2399
3025
|
preprocessCustomThumbDataSelectors() {
|
|
2400
3026
|
if (!this.selectors) return;
|
|
2401
3027
|
Object.entries(this.selectors).forEach(([key, value]) => {
|
|
@@ -2423,6 +3049,10 @@ class ThumbDataParser {
|
|
|
2423
3049
|
if (type === "duration") {
|
|
2424
3050
|
return timeToSeconds(querySelectorText(thumb, selector));
|
|
2425
3051
|
}
|
|
3052
|
+
if (type === "float") {
|
|
3053
|
+
const value = querySelectorText(thumb, selector);
|
|
3054
|
+
return parseNumberWithLetter(value);
|
|
3055
|
+
}
|
|
2426
3056
|
return Number.parseInt(querySelectorText(thumb, selector));
|
|
2427
3057
|
}
|
|
2428
3058
|
static create(o = {}) {
|
|
@@ -9075,6 +9705,50 @@ const StoreStateDefault = {
|
|
|
9075
9705
|
$paginationLast: 1,
|
|
9076
9706
|
$paginationOffset: 1
|
|
9077
9707
|
};
|
|
9708
|
+
class JabronioGuiController {
|
|
9709
|
+
constructor(store, dataManager) {
|
|
9710
|
+
__publicField(this, "destroy$", new Subject());
|
|
9711
|
+
__publicField(this, "directionalEventObservable$");
|
|
9712
|
+
__publicField(this, "eventsMap", {
|
|
9713
|
+
"sort by duration": (direction) => this.dataManager.sortBy("duration", direction),
|
|
9714
|
+
"sort by views": (direction) => this.dataManager.sortBy("views", direction)
|
|
9715
|
+
});
|
|
9716
|
+
this.store = store;
|
|
9717
|
+
this.dataManager = dataManager;
|
|
9718
|
+
this.directionalEventObservable$ = this.directionalEvent();
|
|
9719
|
+
this.setupStoreListeners();
|
|
9720
|
+
}
|
|
9721
|
+
dispose() {
|
|
9722
|
+
this.destroy$.next();
|
|
9723
|
+
this.destroy$.complete();
|
|
9724
|
+
}
|
|
9725
|
+
directionalEvent() {
|
|
9726
|
+
return this.store.eventSubject.pipe(
|
|
9727
|
+
scan(
|
|
9728
|
+
(acc, value) => ({
|
|
9729
|
+
type: value,
|
|
9730
|
+
direction: acc.type === value ? !acc.direction : true
|
|
9731
|
+
}),
|
|
9732
|
+
{ type: void 0, direction: true }
|
|
9733
|
+
),
|
|
9734
|
+
map(({ type, direction }) => ({
|
|
9735
|
+
type,
|
|
9736
|
+
direction
|
|
9737
|
+
})),
|
|
9738
|
+
shareReplay(1),
|
|
9739
|
+
takeUntil(this.destroy$)
|
|
9740
|
+
);
|
|
9741
|
+
}
|
|
9742
|
+
setupStoreListeners() {
|
|
9743
|
+
var _a3;
|
|
9744
|
+
(_a3 = this.directionalEventObservable$) == null ? void 0 : _a3.subscribe((e) => {
|
|
9745
|
+
this.eventsMap[e.type](e.direction);
|
|
9746
|
+
});
|
|
9747
|
+
this.store.stateSubject.pipe(takeUntil(this.destroy$)).subscribe((a2) => {
|
|
9748
|
+
this.dataManager.applyFilters(a2);
|
|
9749
|
+
});
|
|
9750
|
+
}
|
|
9751
|
+
}
|
|
9078
9752
|
class Rules {
|
|
9079
9753
|
constructor(options) {
|
|
9080
9754
|
__publicField(this, "thumb", {});
|
|
@@ -9100,6 +9774,7 @@ class Rules {
|
|
|
9100
9774
|
__publicField(this, "schemeOptions", []);
|
|
9101
9775
|
__publicField(this, "store");
|
|
9102
9776
|
__publicField(this, "gui");
|
|
9777
|
+
__publicField(this, "inputController");
|
|
9103
9778
|
__publicField(this, "customGenerator");
|
|
9104
9779
|
__publicField(this, "infiniteScroller");
|
|
9105
9780
|
__publicField(this, "getPaginationData");
|
|
@@ -9116,11 +9791,9 @@ class Rules {
|
|
|
9116
9791
|
this.store = this.createStore();
|
|
9117
9792
|
this.gui = this.createGui();
|
|
9118
9793
|
this.dataManager = new DataManager(this, this.dataHomogenity);
|
|
9794
|
+
this.inputController = new JabronioGuiController(this.store, this.dataManager);
|
|
9119
9795
|
this.reset();
|
|
9120
9796
|
}
|
|
9121
|
-
getThumbUrl(thumb) {
|
|
9122
|
-
return (thumb.querySelector("a[href]") || thumb).href;
|
|
9123
|
-
}
|
|
9124
9797
|
get container() {
|
|
9125
9798
|
if (typeof this.containerSelectorLast === "string") {
|
|
9126
9799
|
return querySelectorLast(document, this.containerSelectorLast);
|
|
@@ -9170,30 +9843,6 @@ class Rules {
|
|
|
9170
9843
|
get isEmbedded() {
|
|
9171
9844
|
return window.self !== window.top;
|
|
9172
9845
|
}
|
|
9173
|
-
setupStoreListeners() {
|
|
9174
|
-
const eventsMap = {
|
|
9175
|
-
"sort by duration": {
|
|
9176
|
-
action: (direction2) => this.dataManager.sortBy("duration", direction2)
|
|
9177
|
-
}
|
|
9178
|
-
};
|
|
9179
|
-
let lastEvent;
|
|
9180
|
-
let direction = true;
|
|
9181
|
-
this.store.eventSubject.subscribe((event) => {
|
|
9182
|
-
if (event === lastEvent) {
|
|
9183
|
-
direction = !direction;
|
|
9184
|
-
} else {
|
|
9185
|
-
lastEvent = event;
|
|
9186
|
-
direction = true;
|
|
9187
|
-
}
|
|
9188
|
-
if (event in eventsMap) {
|
|
9189
|
-
const ev = eventsMap[event];
|
|
9190
|
-
ev == null ? void 0 : ev.action(direction);
|
|
9191
|
-
}
|
|
9192
|
-
});
|
|
9193
|
-
this.store.stateSubject.subscribe((a2) => {
|
|
9194
|
-
this.dataManager.applyFilters(a2);
|
|
9195
|
-
});
|
|
9196
|
-
}
|
|
9197
9846
|
resetOn() {
|
|
9198
9847
|
if (!this.resetOnPaginationOrContainerDeath) return;
|
|
9199
9848
|
const observables = [
|
|
@@ -9216,7 +9865,8 @@ class Rules {
|
|
|
9216
9865
|
this.mutationObservers = [];
|
|
9217
9866
|
this.paginationStrategy = getPaginationStrategy(this.paginationStrategyOptions);
|
|
9218
9867
|
this.dataManager = new DataManager(this, this.dataHomogenity);
|
|
9219
|
-
this.
|
|
9868
|
+
this.inputController.dispose();
|
|
9869
|
+
this.inputController = new JabronioGuiController(this.store, this.dataManager);
|
|
9220
9870
|
this.resetInfiniteScroller();
|
|
9221
9871
|
this.container && ((_a3 = this.animatePreview) == null ? void 0 : _a3.call(this, this.container));
|
|
9222
9872
|
this.gropeInit();
|
|
@@ -9263,6 +9913,7 @@ export {
|
|
|
9263
9913
|
parseDataParams,
|
|
9264
9914
|
parseHtml,
|
|
9265
9915
|
parseIntegerOr,
|
|
9916
|
+
parseNumberWithLetter,
|
|
9266
9917
|
parseUrl,
|
|
9267
9918
|
querySelectorLast,
|
|
9268
9919
|
querySelectorLastNumber,
|