@design.estate/dees-wcctools 1.2.1 → 1.3.0
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/dist_bundle/bundle.js +1581 -198
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_demotools/demotools.d.ts +1 -1
- package/dist_ts_demotools/demotools.js +86 -38
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/wcc-dashboard.d.ts +10 -10
- package/dist_ts_web/elements/wcc-dashboard.js +317 -245
- package/dist_ts_web/elements/wcc-frame.d.ts +3 -3
- package/dist_ts_web/elements/wcc-frame.js +108 -57
- package/dist_ts_web/elements/wcc-properties.d.ts +14 -8
- package/dist_ts_web/elements/wcc-properties.js +442 -323
- package/dist_ts_web/elements/wcc-record-button.d.ts +12 -0
- package/dist_ts_web/elements/wcc-record-button.js +165 -0
- package/dist_ts_web/elements/wcc-recording-panel.d.ts +42 -0
- package/dist_ts_web/elements/wcc-recording-panel.js +1063 -0
- package/dist_ts_web/elements/wcc-sidebar.d.ts +4 -4
- package/dist_ts_web/elements/wcc-sidebar.js +125 -71
- package/dist_ts_web/index.d.ts +3 -0
- package/dist_ts_web/index.js +5 -1
- package/dist_ts_web/services/recorder.service.d.ts +44 -0
- package/dist_ts_web/services/recorder.service.js +306 -0
- package/dist_watch/bundle.js +1939 -521
- package/dist_watch/bundle.js.map +4 -4
- package/package.json +8 -8
- package/readme.md +133 -141
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/wcc-dashboard.ts +10 -10
- package/ts_web/elements/wcc-frame.ts +3 -3
- package/ts_web/elements/wcc-properties.ts +53 -9
- package/ts_web/elements/wcc-record-button.ts +108 -0
- package/ts_web/elements/wcc-recording-panel.ts +974 -0
- package/ts_web/elements/wcc-sidebar.ts +4 -4
- package/ts_web/index.ts +5 -0
- package/ts_web/readme.md +123 -0
- package/ts_web/services/recorder.service.ts +391 -0
package/dist_bundle/bundle.js
CHANGED
|
@@ -4,6 +4,12 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
|
|
8
|
+
var __typeError = (msg) => {
|
|
9
|
+
throw TypeError(msg);
|
|
10
|
+
};
|
|
11
|
+
var __defNormalProp = (obj, key2, value2) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key2] = value2;
|
|
12
|
+
var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true });
|
|
7
13
|
var __require = /* @__PURE__ */ ((x2) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x2, {
|
|
8
14
|
get: (a4, b4) => (typeof require !== "undefined" ? require : a4)[b4]
|
|
9
15
|
}) : x2)(function(x2) {
|
|
@@ -33,14 +39,46 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
33
39
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
40
|
mod
|
|
35
41
|
));
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
|
|
43
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
44
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
45
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
46
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
47
|
+
var __runInitializers = (array, flags, self2, value2) => {
|
|
48
|
+
for (var i9 = 0, fns = array[flags >> 1], n12 = fns && fns.length; i9 < n12; i9++) flags & 1 ? fns[i9].call(self2) : value2 = fns[i9].call(self2, value2);
|
|
49
|
+
return value2;
|
|
43
50
|
};
|
|
51
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
52
|
+
var fn, it, done, ctx, access, k3 = flags & 7, s8 = !!(flags & 8), p6 = !!(flags & 16);
|
|
53
|
+
var j2 = k3 > 3 ? array.length + 1 : k3 ? s8 ? 1 : 2 : 0, key2 = __decoratorStrings[k3 + 5];
|
|
54
|
+
var initializers = k3 > 3 && (array[j2 - 1] = []), extraInitializers = array[j2] || (array[j2] = []);
|
|
55
|
+
var desc = k3 && (!p6 && !s8 && (target = target.prototype), k3 < 5 && (k3 > 3 || !p6) && __getOwnPropDesc(k3 < 4 ? target : { get [name]() {
|
|
56
|
+
return __privateGet(this, extra);
|
|
57
|
+
}, set [name](x2) {
|
|
58
|
+
return __privateSet(this, extra, x2);
|
|
59
|
+
} }, name));
|
|
60
|
+
k3 ? p6 && k3 < 4 && __name(extra, (k3 > 2 ? "set " : k3 > 1 ? "get " : "") + name) : __name(target, name);
|
|
61
|
+
for (var i9 = decorators.length - 1; i9 >= 0; i9--) {
|
|
62
|
+
ctx = __decoratorContext(k3, name, done = {}, array[3], extraInitializers);
|
|
63
|
+
if (k3) {
|
|
64
|
+
ctx.static = s8, ctx.private = p6, access = ctx.access = { has: p6 ? (x2) => __privateIn(target, x2) : (x2) => name in x2 };
|
|
65
|
+
if (k3 ^ 3) access.get = p6 ? (x2) => (k3 ^ 1 ? __privateGet : __privateMethod)(x2, target, k3 ^ 4 ? extra : desc.get) : (x2) => x2[name];
|
|
66
|
+
if (k3 > 2) access.set = p6 ? (x2, y4) => __privateSet(x2, target, y4, k3 ^ 4 ? extra : desc.set) : (x2, y4) => x2[name] = y4;
|
|
67
|
+
}
|
|
68
|
+
it = (0, decorators[i9])(k3 ? k3 < 4 ? p6 ? extra : desc[key2] : k3 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
|
|
69
|
+
if (k3 ^ 4 || it === void 0) __expectFn(it) && (k3 > 4 ? initializers.unshift(it) : k3 ? p6 ? extra = it : desc[key2] = it : target = it);
|
|
70
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
71
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
72
|
+
}
|
|
73
|
+
return k3 || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p6 ? k3 ^ 4 ? extra : desc : target;
|
|
74
|
+
};
|
|
75
|
+
var __publicField = (obj, key2, value2) => __defNormalProp(obj, typeof key2 !== "symbol" ? key2 + "" : key2, value2);
|
|
76
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
77
|
+
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
|
|
78
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
79
|
+
var __privateAdd = (obj, member, value2) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value2);
|
|
80
|
+
var __privateSet = (obj, member, value2, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value2) : member.set(obj, value2), value2);
|
|
81
|
+
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
44
82
|
|
|
45
83
|
// node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/dist_ts/index.js
|
|
46
84
|
var require_dist_ts = __commonJS({
|
|
@@ -416,10 +454,10 @@ var require_TreePosition = __commonJS({
|
|
|
416
454
|
var require_TreeIterator = __commonJS({
|
|
417
455
|
"node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js"(exports, module) {
|
|
418
456
|
"use strict";
|
|
419
|
-
var TREE = Symbol();
|
|
420
|
-
var ROOT = Symbol();
|
|
421
|
-
var NEXT = Symbol();
|
|
422
|
-
var ITERATE_FUNC = Symbol();
|
|
457
|
+
var TREE = /* @__PURE__ */ Symbol();
|
|
458
|
+
var ROOT = /* @__PURE__ */ Symbol();
|
|
459
|
+
var NEXT = /* @__PURE__ */ Symbol();
|
|
460
|
+
var ITERATE_FUNC = /* @__PURE__ */ Symbol();
|
|
423
461
|
var TreeIterator = class {
|
|
424
462
|
constructor(tree, root6, firstResult, iterateFunction) {
|
|
425
463
|
this[TREE] = tree;
|
|
@@ -5557,7 +5595,7 @@ var require_sweet_scroll = __commonJS({
|
|
|
5557
5595
|
hash: null
|
|
5558
5596
|
};
|
|
5559
5597
|
this.loop = function(time) {
|
|
5560
|
-
var
|
|
5598
|
+
var _a7 = _this, $el = _a7.$el, ctx = _a7.ctx;
|
|
5561
5599
|
if (!ctx.start) {
|
|
5562
5600
|
ctx.start = time;
|
|
5563
5601
|
}
|
|
@@ -5652,7 +5690,7 @@ var require_sweet_scroll = __commonJS({
|
|
|
5652
5690
|
if (!canUseDOM) {
|
|
5653
5691
|
return;
|
|
5654
5692
|
}
|
|
5655
|
-
var
|
|
5693
|
+
var _a7 = this, $el = _a7.$el, ctx = _a7.ctx, currentOptions = _a7.opts;
|
|
5656
5694
|
var $trigger = ctx.$trigger;
|
|
5657
5695
|
var opts = __assign2({}, currentOptions, options || {});
|
|
5658
5696
|
var optOffset = opts.offset, vertical = opts.vertical, horizontal = opts.horizontal;
|
|
@@ -5719,7 +5757,7 @@ var require_sweet_scroll = __commonJS({
|
|
|
5719
5757
|
if (gotoEnd === void 0) {
|
|
5720
5758
|
gotoEnd = false;
|
|
5721
5759
|
}
|
|
5722
|
-
var
|
|
5760
|
+
var _a7 = this, $el = _a7.$el, ctx = _a7.ctx;
|
|
5723
5761
|
var pos = ctx.pos;
|
|
5724
5762
|
if (!$el || !ctx.progress) {
|
|
5725
5763
|
return;
|
|
@@ -5775,7 +5813,7 @@ var require_sweet_scroll = __commonJS({
|
|
|
5775
5813
|
ctx.id = SweetScroll4.raf(this.loop);
|
|
5776
5814
|
};
|
|
5777
5815
|
SweetScroll4.prototype.complete = function() {
|
|
5778
|
-
var
|
|
5816
|
+
var _a7 = this, $el = _a7.$el, ctx = _a7.ctx;
|
|
5779
5817
|
var hash = ctx.hash, cancel = ctx.cancel, opts = ctx.opts, pos = ctx.pos, $trigger = ctx.$trigger;
|
|
5780
5818
|
if (!$el || !opts) {
|
|
5781
5819
|
return;
|
|
@@ -5801,18 +5839,18 @@ var require_sweet_scroll = __commonJS({
|
|
|
5801
5839
|
for (var _i = 2; _i < arguments.length; _i++) {
|
|
5802
5840
|
args[_i - 2] = arguments[_i];
|
|
5803
5841
|
}
|
|
5804
|
-
var
|
|
5842
|
+
var _a7;
|
|
5805
5843
|
var callback = options[type5];
|
|
5806
5844
|
var callbackResult;
|
|
5807
5845
|
var methodResult;
|
|
5808
5846
|
if (isFunction2(callback)) {
|
|
5809
5847
|
callbackResult = callback.apply(this, args.concat([this]));
|
|
5810
5848
|
}
|
|
5811
|
-
methodResult = (
|
|
5849
|
+
methodResult = (_a7 = this)["on" + (type5[0].toUpperCase() + type5.slice(1))].apply(_a7, args);
|
|
5812
5850
|
return callbackResult !== void 0 ? callbackResult : methodResult;
|
|
5813
5851
|
};
|
|
5814
5852
|
SweetScroll4.prototype.bind = function(click, stop) {
|
|
5815
|
-
var
|
|
5853
|
+
var _a7 = this, $el = _a7.$el, opts = _a7.ctx.opts;
|
|
5816
5854
|
if ($el) {
|
|
5817
5855
|
if (click) {
|
|
5818
5856
|
addEvent($el, CONTAINER_CLICK_EVENT, this.handleClick, false);
|
|
@@ -5823,7 +5861,7 @@ var require_sweet_scroll = __commonJS({
|
|
|
5823
5861
|
}
|
|
5824
5862
|
};
|
|
5825
5863
|
SweetScroll4.prototype.unbind = function(click, stop) {
|
|
5826
|
-
var
|
|
5864
|
+
var _a7 = this, $el = _a7.$el, opts = _a7.ctx.opts;
|
|
5827
5865
|
if ($el) {
|
|
5828
5866
|
if (click) {
|
|
5829
5867
|
removeEvent($el, CONTAINER_CLICK_EVENT, this.handleClick, false);
|
|
@@ -5844,7 +5882,7 @@ var require_sweet_scroll = __commonJS({
|
|
|
5844
5882
|
});
|
|
5845
5883
|
|
|
5846
5884
|
// node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js
|
|
5847
|
-
var t = globalThis, e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s = Symbol(), o = /* @__PURE__ */ new WeakMap();
|
|
5885
|
+
var t = globalThis, e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s = /* @__PURE__ */ Symbol(), o = /* @__PURE__ */ new WeakMap();
|
|
5848
5886
|
var n = class {
|
|
5849
5887
|
constructor(t8, e10, o12) {
|
|
5850
5888
|
if (this._$cssResult$ = true, o12 !== s) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
|
|
@@ -5912,7 +5950,7 @@ var { is: i2, defineProperty: e2, getOwnPropertyDescriptor: h, getOwnPropertyNam
|
|
|
5912
5950
|
}
|
|
5913
5951
|
return i9;
|
|
5914
5952
|
} }, f = (t8, s8) => !i2(t8, s8), b = { attribute: true, type: String, converter: u, reflect: false, useDefault: false, hasChanged: f };
|
|
5915
|
-
Symbol.metadata ??= Symbol("metadata"), a.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
|
|
5953
|
+
Symbol.metadata ??= /* @__PURE__ */ Symbol("metadata"), a.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
|
|
5916
5954
|
var y = class extends HTMLElement {
|
|
5917
5955
|
static addInitializer(t8) {
|
|
5918
5956
|
this._$Ei(), (this.l ??= []).push(t8);
|
|
@@ -5922,7 +5960,7 @@ var y = class extends HTMLElement {
|
|
|
5922
5960
|
}
|
|
5923
5961
|
static createProperty(t8, s8 = b) {
|
|
5924
5962
|
if (s8.state && (s8.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t8) && ((s8 = Object.create(s8)).wrapped = true), this.elementProperties.set(t8, s8), !s8.noAccessor) {
|
|
5925
|
-
const i9 = Symbol(), h8 = this.getPropertyDescriptor(t8, i9, s8);
|
|
5963
|
+
const i9 = /* @__PURE__ */ Symbol(), h8 = this.getPropertyDescriptor(t8, i9, s8);
|
|
5926
5964
|
void 0 !== h8 && e2(this.prototype, t8, h8);
|
|
5927
5965
|
}
|
|
5928
5966
|
}
|
|
@@ -6098,7 +6136,7 @@ y.elementStyles = [], y.shadowRootOptions = { mode: "open" }, y[d("elementProper
|
|
|
6098
6136
|
|
|
6099
6137
|
// node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js
|
|
6100
6138
|
var t2 = globalThis, i3 = t2.trustedTypes, s2 = i3 ? i3.createPolicy("lit-html", { createHTML: (t8) => t8 }) : void 0, e3 = "$lit$", h2 = `lit$${Math.random().toFixed(9).slice(2)}$`, o3 = "?" + h2, n3 = `<${o3}>`, r3 = document, l2 = () => r3.createComment(""), c3 = (t8) => null === t8 || "object" != typeof t8 && "function" != typeof t8, a2 = Array.isArray, u2 = (t8) => a2(t8) || "function" == typeof t8?.[Symbol.iterator], d2 = "[ \n\f\r]", f2 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, v = /-->/g, _ = />/g, m = RegExp(`>|${d2}(?:([^\\s"'>=/]+)(${d2}*=${d2}*(?:[^
|
|
6101
|
-
\f\r"'\`<>=]|("|')|))|$)`, "g"), p2 = /'/g, g = /"/g, $ = /^(?:script|style|textarea|title)$/i, y2 = (t8) => (i9, ...s8) => ({ _$litType$: t8, strings: i9, values: s8 }), x = y2(1), b2 = y2(2), w = y2(3), T = Symbol.for("lit-noChange"), E = Symbol.for("lit-nothing"), A = /* @__PURE__ */ new WeakMap(), C = r3.createTreeWalker(r3, 129);
|
|
6139
|
+
\f\r"'\`<>=]|("|')|))|$)`, "g"), p2 = /'/g, g = /"/g, $ = /^(?:script|style|textarea|title)$/i, y2 = (t8) => (i9, ...s8) => ({ _$litType$: t8, strings: i9, values: s8 }), x = y2(1), b2 = y2(2), w = y2(3), T = /* @__PURE__ */ Symbol.for("lit-noChange"), E = /* @__PURE__ */ Symbol.for("lit-nothing"), A = /* @__PURE__ */ new WeakMap(), C = r3.createTreeWalker(r3, 129);
|
|
6102
6140
|
function P(t8, i9) {
|
|
6103
6141
|
if (!a2(t8) || !t8.hasOwnProperty("raw")) throw Error("invalid template strings array");
|
|
6104
6142
|
return void 0 !== s2 ? s2.createHTML(i9) : i9;
|
|
@@ -6603,7 +6641,7 @@ function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, e
|
|
|
6603
6641
|
done = true;
|
|
6604
6642
|
}
|
|
6605
6643
|
;
|
|
6606
|
-
function
|
|
6644
|
+
function __runInitializers2(thisArg, initializers, value2) {
|
|
6607
6645
|
var useValue = arguments.length > 2;
|
|
6608
6646
|
for (var i9 = 0; i9 < initializers.length; i9++) {
|
|
6609
6647
|
value2 = useValue ? initializers[i9].call(thisArg, value2) : initializers[i9].call(thisArg);
|
|
@@ -6981,7 +7019,7 @@ var tslib_es6_default = {
|
|
|
6981
7019
|
__decorate,
|
|
6982
7020
|
__param,
|
|
6983
7021
|
__esDecorate,
|
|
6984
|
-
__runInitializers,
|
|
7022
|
+
__runInitializers: __runInitializers2,
|
|
6985
7023
|
__propKey,
|
|
6986
7024
|
__setFunctionName,
|
|
6987
7025
|
__metadata,
|
|
@@ -7055,7 +7093,7 @@ var Subscription = (function() {
|
|
|
7055
7093
|
this._finalizers = null;
|
|
7056
7094
|
}
|
|
7057
7095
|
Subscription2.prototype.unsubscribe = function() {
|
|
7058
|
-
var e_1,
|
|
7096
|
+
var e_1, _a7, e_2, _b;
|
|
7059
7097
|
var errors;
|
|
7060
7098
|
if (!this.closed) {
|
|
7061
7099
|
this.closed = true;
|
|
@@ -7072,7 +7110,7 @@ var Subscription = (function() {
|
|
|
7072
7110
|
e_1 = { error: e_1_1 };
|
|
7073
7111
|
} finally {
|
|
7074
7112
|
try {
|
|
7075
|
-
if (_parentage_1_1 && !_parentage_1_1.done && (
|
|
7113
|
+
if (_parentage_1_1 && !_parentage_1_1.done && (_a7 = _parentage_1.return)) _a7.call(_parentage_1);
|
|
7076
7114
|
} finally {
|
|
7077
7115
|
if (e_1) throw e_1.error;
|
|
7078
7116
|
}
|
|
@@ -7122,7 +7160,7 @@ var Subscription = (function() {
|
|
|
7122
7160
|
}
|
|
7123
7161
|
};
|
|
7124
7162
|
Subscription2.prototype.add = function(teardown) {
|
|
7125
|
-
var
|
|
7163
|
+
var _a7;
|
|
7126
7164
|
if (teardown && teardown !== this) {
|
|
7127
7165
|
if (this.closed) {
|
|
7128
7166
|
execFinalizer(teardown);
|
|
@@ -7133,7 +7171,7 @@ var Subscription = (function() {
|
|
|
7133
7171
|
}
|
|
7134
7172
|
teardown._addParent(this);
|
|
7135
7173
|
}
|
|
7136
|
-
(this._finalizers = (
|
|
7174
|
+
(this._finalizers = (_a7 = this._finalizers) !== null && _a7 !== void 0 ? _a7 : []).push(teardown);
|
|
7137
7175
|
}
|
|
7138
7176
|
}
|
|
7139
7177
|
};
|
|
@@ -7252,7 +7290,7 @@ function errorContext(cb) {
|
|
|
7252
7290
|
}
|
|
7253
7291
|
cb();
|
|
7254
7292
|
if (isRoot) {
|
|
7255
|
-
var
|
|
7293
|
+
var _a7 = context, errorThrown = _a7.errorThrown, error = _a7.error;
|
|
7256
7294
|
context = null;
|
|
7257
7295
|
if (errorThrown) {
|
|
7258
7296
|
throw error;
|
|
@@ -7483,7 +7521,7 @@ var Observable = (function() {
|
|
|
7483
7521
|
var _this = this;
|
|
7484
7522
|
var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);
|
|
7485
7523
|
errorContext(function() {
|
|
7486
|
-
var
|
|
7524
|
+
var _a7 = _this, operator = _a7.operator, source = _a7.source;
|
|
7487
7525
|
subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber));
|
|
7488
7526
|
});
|
|
7489
7527
|
return subscriber;
|
|
@@ -7515,8 +7553,8 @@ var Observable = (function() {
|
|
|
7515
7553
|
});
|
|
7516
7554
|
};
|
|
7517
7555
|
Observable2.prototype._subscribe = function(subscriber) {
|
|
7518
|
-
var
|
|
7519
|
-
return (
|
|
7556
|
+
var _a7;
|
|
7557
|
+
return (_a7 = this.source) === null || _a7 === void 0 ? void 0 : _a7.subscribe(subscriber);
|
|
7520
7558
|
};
|
|
7521
7559
|
Observable2.prototype[observable] = function() {
|
|
7522
7560
|
return this;
|
|
@@ -7548,8 +7586,8 @@ var Observable = (function() {
|
|
|
7548
7586
|
return Observable2;
|
|
7549
7587
|
})();
|
|
7550
7588
|
function getPromiseCtor(promiseCtor) {
|
|
7551
|
-
var
|
|
7552
|
-
return (
|
|
7589
|
+
var _a7;
|
|
7590
|
+
return (_a7 = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a7 !== void 0 ? _a7 : Promise;
|
|
7553
7591
|
}
|
|
7554
7592
|
function isObserver(value2) {
|
|
7555
7593
|
return value2 && isFunction(value2.next) && isFunction(value2.error) && isFunction(value2.complete);
|
|
@@ -7615,11 +7653,11 @@ var OperatorSubscriber = (function(_super) {
|
|
|
7615
7653
|
return _this;
|
|
7616
7654
|
}
|
|
7617
7655
|
OperatorSubscriber2.prototype.unsubscribe = function() {
|
|
7618
|
-
var
|
|
7656
|
+
var _a7;
|
|
7619
7657
|
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
|
|
7620
7658
|
var closed_1 = this.closed;
|
|
7621
7659
|
_super.prototype.unsubscribe.call(this);
|
|
7622
|
-
!closed_1 && ((
|
|
7660
|
+
!closed_1 && ((_a7 = this.onFinalize) === null || _a7 === void 0 ? void 0 : _a7.call(this));
|
|
7623
7661
|
}
|
|
7624
7662
|
};
|
|
7625
7663
|
return OperatorSubscriber2;
|
|
@@ -7660,7 +7698,7 @@ var Subject = (function(_super) {
|
|
|
7660
7698
|
Subject2.prototype.next = function(value2) {
|
|
7661
7699
|
var _this = this;
|
|
7662
7700
|
errorContext(function() {
|
|
7663
|
-
var e_1,
|
|
7701
|
+
var e_1, _a7;
|
|
7664
7702
|
_this._throwIfClosed();
|
|
7665
7703
|
if (!_this.isStopped) {
|
|
7666
7704
|
if (!_this.currentObservers) {
|
|
@@ -7675,7 +7713,7 @@ var Subject = (function(_super) {
|
|
|
7675
7713
|
e_1 = { error: e_1_1 };
|
|
7676
7714
|
} finally {
|
|
7677
7715
|
try {
|
|
7678
|
-
if (_c && !_c.done && (
|
|
7716
|
+
if (_c && !_c.done && (_a7 = _b.return)) _a7.call(_b);
|
|
7679
7717
|
} finally {
|
|
7680
7718
|
if (e_1) throw e_1.error;
|
|
7681
7719
|
}
|
|
@@ -7716,8 +7754,8 @@ var Subject = (function(_super) {
|
|
|
7716
7754
|
};
|
|
7717
7755
|
Object.defineProperty(Subject2.prototype, "observed", {
|
|
7718
7756
|
get: function() {
|
|
7719
|
-
var
|
|
7720
|
-
return ((
|
|
7757
|
+
var _a7;
|
|
7758
|
+
return ((_a7 = this.observers) === null || _a7 === void 0 ? void 0 : _a7.length) > 0;
|
|
7721
7759
|
},
|
|
7722
7760
|
enumerable: false,
|
|
7723
7761
|
configurable: true
|
|
@@ -7733,7 +7771,7 @@ var Subject = (function(_super) {
|
|
|
7733
7771
|
};
|
|
7734
7772
|
Subject2.prototype._innerSubscribe = function(subscriber) {
|
|
7735
7773
|
var _this = this;
|
|
7736
|
-
var
|
|
7774
|
+
var _a7 = this, hasError = _a7.hasError, isStopped = _a7.isStopped, observers = _a7.observers;
|
|
7737
7775
|
if (hasError || isStopped) {
|
|
7738
7776
|
return EMPTY_SUBSCRIPTION;
|
|
7739
7777
|
}
|
|
@@ -7745,7 +7783,7 @@ var Subject = (function(_super) {
|
|
|
7745
7783
|
});
|
|
7746
7784
|
};
|
|
7747
7785
|
Subject2.prototype._checkFinalizedStatuses = function(subscriber) {
|
|
7748
|
-
var
|
|
7786
|
+
var _a7 = this, hasError = _a7.hasError, thrownError = _a7.thrownError, isStopped = _a7.isStopped;
|
|
7749
7787
|
if (hasError) {
|
|
7750
7788
|
subscriber.error(thrownError);
|
|
7751
7789
|
} else if (isStopped) {
|
|
@@ -7771,20 +7809,20 @@ var AnonymousSubject = (function(_super) {
|
|
|
7771
7809
|
return _this;
|
|
7772
7810
|
}
|
|
7773
7811
|
AnonymousSubject2.prototype.next = function(value2) {
|
|
7774
|
-
var
|
|
7775
|
-
(_b = (
|
|
7812
|
+
var _a7, _b;
|
|
7813
|
+
(_b = (_a7 = this.destination) === null || _a7 === void 0 ? void 0 : _a7.next) === null || _b === void 0 ? void 0 : _b.call(_a7, value2);
|
|
7776
7814
|
};
|
|
7777
7815
|
AnonymousSubject2.prototype.error = function(err) {
|
|
7778
|
-
var
|
|
7779
|
-
(_b = (
|
|
7816
|
+
var _a7, _b;
|
|
7817
|
+
(_b = (_a7 = this.destination) === null || _a7 === void 0 ? void 0 : _a7.error) === null || _b === void 0 ? void 0 : _b.call(_a7, err);
|
|
7780
7818
|
};
|
|
7781
7819
|
AnonymousSubject2.prototype.complete = function() {
|
|
7782
|
-
var
|
|
7783
|
-
(_b = (
|
|
7820
|
+
var _a7, _b;
|
|
7821
|
+
(_b = (_a7 = this.destination) === null || _a7 === void 0 ? void 0 : _a7.complete) === null || _b === void 0 ? void 0 : _b.call(_a7);
|
|
7784
7822
|
};
|
|
7785
7823
|
AnonymousSubject2.prototype._subscribe = function(subscriber) {
|
|
7786
|
-
var
|
|
7787
|
-
return (_b = (
|
|
7824
|
+
var _a7, _b;
|
|
7825
|
+
return (_b = (_a7 = this.source) === null || _a7 === void 0 ? void 0 : _a7.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
|
|
7788
7826
|
};
|
|
7789
7827
|
return AnonymousSubject2;
|
|
7790
7828
|
})(Subject);
|
|
@@ -7822,7 +7860,7 @@ var ReplaySubject = (function(_super) {
|
|
|
7822
7860
|
return _this;
|
|
7823
7861
|
}
|
|
7824
7862
|
ReplaySubject2.prototype.next = function(value2) {
|
|
7825
|
-
var
|
|
7863
|
+
var _a7 = this, isStopped = _a7.isStopped, _buffer = _a7._buffer, _infiniteTimeWindow = _a7._infiniteTimeWindow, _timestampProvider = _a7._timestampProvider, _windowTime = _a7._windowTime;
|
|
7826
7864
|
if (!isStopped) {
|
|
7827
7865
|
_buffer.push(value2);
|
|
7828
7866
|
!_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);
|
|
@@ -7834,7 +7872,7 @@ var ReplaySubject = (function(_super) {
|
|
|
7834
7872
|
this._throwIfClosed();
|
|
7835
7873
|
this._trimBuffer();
|
|
7836
7874
|
var subscription = this._innerSubscribe(subscriber);
|
|
7837
|
-
var
|
|
7875
|
+
var _a7 = this, _infiniteTimeWindow = _a7._infiniteTimeWindow, _buffer = _a7._buffer;
|
|
7838
7876
|
var copy = _buffer.slice();
|
|
7839
7877
|
for (var i9 = 0; i9 < copy.length && !subscriber.closed; i9 += _infiniteTimeWindow ? 1 : 2) {
|
|
7840
7878
|
subscriber.next(copy[i9]);
|
|
@@ -7843,7 +7881,7 @@ var ReplaySubject = (function(_super) {
|
|
|
7843
7881
|
return subscription;
|
|
7844
7882
|
};
|
|
7845
7883
|
ReplaySubject2.prototype._trimBuffer = function() {
|
|
7846
|
-
var
|
|
7884
|
+
var _a7 = this, _bufferSize = _a7._bufferSize, _timestampProvider = _a7._timestampProvider, _buffer = _a7._buffer, _infiniteTimeWindow = _a7._infiniteTimeWindow;
|
|
7847
7885
|
var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;
|
|
7848
7886
|
_bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);
|
|
7849
7887
|
if (!_infiniteTimeWindow) {
|
|
@@ -7904,7 +7942,7 @@ var AsyncAction = (function(_super) {
|
|
|
7904
7942
|
return _this;
|
|
7905
7943
|
}
|
|
7906
7944
|
AsyncAction2.prototype.schedule = function(state, delay2) {
|
|
7907
|
-
var
|
|
7945
|
+
var _a7;
|
|
7908
7946
|
if (delay2 === void 0) {
|
|
7909
7947
|
delay2 = 0;
|
|
7910
7948
|
}
|
|
@@ -7919,7 +7957,7 @@ var AsyncAction = (function(_super) {
|
|
|
7919
7957
|
}
|
|
7920
7958
|
this.pending = true;
|
|
7921
7959
|
this.delay = delay2;
|
|
7922
|
-
this.id = (
|
|
7960
|
+
this.id = (_a7 = this.id) !== null && _a7 !== void 0 ? _a7 : this.requestAsyncId(scheduler, this.id, delay2);
|
|
7923
7961
|
return this;
|
|
7924
7962
|
};
|
|
7925
7963
|
AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay2) {
|
|
@@ -7968,7 +8006,7 @@ var AsyncAction = (function(_super) {
|
|
|
7968
8006
|
};
|
|
7969
8007
|
AsyncAction2.prototype.unsubscribe = function() {
|
|
7970
8008
|
if (!this.closed) {
|
|
7971
|
-
var
|
|
8009
|
+
var _a7 = this, id = _a7.id, scheduler = _a7.scheduler;
|
|
7972
8010
|
var actions = scheduler.actions;
|
|
7973
8011
|
this.work = this.state = this.scheduler = null;
|
|
7974
8012
|
this.pending = false;
|
|
@@ -8103,7 +8141,7 @@ function isIterable(input) {
|
|
|
8103
8141
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js
|
|
8104
8142
|
function readableStreamLikeToAsyncGenerator(readableStream) {
|
|
8105
8143
|
return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {
|
|
8106
|
-
var reader,
|
|
8144
|
+
var reader, _a7, value2, done;
|
|
8107
8145
|
return __generator(this, function(_b) {
|
|
8108
8146
|
switch (_b.label) {
|
|
8109
8147
|
case 0:
|
|
@@ -8116,7 +8154,7 @@ function readableStreamLikeToAsyncGenerator(readableStream) {
|
|
|
8116
8154
|
if (false) return [3, 8];
|
|
8117
8155
|
return [4, __await(reader.read())];
|
|
8118
8156
|
case 3:
|
|
8119
|
-
|
|
8157
|
+
_a7 = _b.sent(), value2 = _a7.value, done = _a7.done;
|
|
8120
8158
|
if (!done) return [3, 5];
|
|
8121
8159
|
return [4, __await(void 0)];
|
|
8122
8160
|
case 4:
|
|
@@ -8201,7 +8239,7 @@ function fromPromise(promise) {
|
|
|
8201
8239
|
}
|
|
8202
8240
|
function fromIterable(iterable) {
|
|
8203
8241
|
return new Observable(function(subscriber) {
|
|
8204
|
-
var e_1,
|
|
8242
|
+
var e_1, _a7;
|
|
8205
8243
|
try {
|
|
8206
8244
|
for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {
|
|
8207
8245
|
var value2 = iterable_1_1.value;
|
|
@@ -8214,7 +8252,7 @@ function fromIterable(iterable) {
|
|
|
8214
8252
|
e_1 = { error: e_1_1 };
|
|
8215
8253
|
} finally {
|
|
8216
8254
|
try {
|
|
8217
|
-
if (iterable_1_1 && !iterable_1_1.done && (
|
|
8255
|
+
if (iterable_1_1 && !iterable_1_1.done && (_a7 = iterable_1.return)) _a7.call(iterable_1);
|
|
8218
8256
|
} finally {
|
|
8219
8257
|
if (e_1) throw e_1.error;
|
|
8220
8258
|
}
|
|
@@ -8234,7 +8272,7 @@ function fromReadableStreamLike(readableStream) {
|
|
|
8234
8272
|
}
|
|
8235
8273
|
function process2(asyncIterable, subscriber) {
|
|
8236
8274
|
var asyncIterable_1, asyncIterable_1_1;
|
|
8237
|
-
var e_2,
|
|
8275
|
+
var e_2, _a7;
|
|
8238
8276
|
return __awaiter(this, void 0, void 0, function() {
|
|
8239
8277
|
var value2, e_2_1;
|
|
8240
8278
|
return __generator(this, function(_b) {
|
|
@@ -8263,8 +8301,8 @@ function process2(asyncIterable, subscriber) {
|
|
|
8263
8301
|
return [3, 11];
|
|
8264
8302
|
case 6:
|
|
8265
8303
|
_b.trys.push([6, , 9, 10]);
|
|
8266
|
-
if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (
|
|
8267
|
-
return [4,
|
|
8304
|
+
if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a7 = asyncIterable_1.return))) return [3, 8];
|
|
8305
|
+
return [4, _a7.call(asyncIterable_1)];
|
|
8268
8306
|
case 7:
|
|
8269
8307
|
_b.sent();
|
|
8270
8308
|
_b.label = 8;
|
|
@@ -8373,11 +8411,11 @@ function scheduleIterable(input, scheduler) {
|
|
|
8373
8411
|
executeSchedule(subscriber, scheduler, function() {
|
|
8374
8412
|
iterator2 = input[iterator]();
|
|
8375
8413
|
executeSchedule(subscriber, scheduler, function() {
|
|
8376
|
-
var
|
|
8414
|
+
var _a7;
|
|
8377
8415
|
var value2;
|
|
8378
8416
|
var done;
|
|
8379
8417
|
try {
|
|
8380
|
-
|
|
8418
|
+
_a7 = iterator2.next(), value2 = _a7.value, done = _a7.done;
|
|
8381
8419
|
} catch (err) {
|
|
8382
8420
|
subscriber.error(err);
|
|
8383
8421
|
return;
|
|
@@ -8600,11 +8638,11 @@ function fromEvent(target, eventName, options, resultSelector) {
|
|
|
8600
8638
|
if (resultSelector) {
|
|
8601
8639
|
return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));
|
|
8602
8640
|
}
|
|
8603
|
-
var
|
|
8641
|
+
var _a7 = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) {
|
|
8604
8642
|
return function(handler2) {
|
|
8605
8643
|
return target[methodName](eventName, handler2, options);
|
|
8606
8644
|
};
|
|
8607
|
-
}) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add2 =
|
|
8645
|
+
}) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add2 = _a7[0], remove2 = _a7[1];
|
|
8608
8646
|
if (!add2) {
|
|
8609
8647
|
if (isArrayLike(target)) {
|
|
8610
8648
|
return mergeMap(function(subTarget) {
|
|
@@ -8722,7 +8760,7 @@ function bufferCount(bufferSize, startBufferEvery) {
|
|
|
8722
8760
|
var buffers = [];
|
|
8723
8761
|
var count2 = 0;
|
|
8724
8762
|
source.subscribe(createOperatorSubscriber(subscriber, function(value2) {
|
|
8725
|
-
var e_1,
|
|
8763
|
+
var e_1, _a7, e_2, _b;
|
|
8726
8764
|
var toEmit = null;
|
|
8727
8765
|
if (count2++ % startBufferEvery === 0) {
|
|
8728
8766
|
buffers.push([]);
|
|
@@ -8740,7 +8778,7 @@ function bufferCount(bufferSize, startBufferEvery) {
|
|
|
8740
8778
|
e_1 = { error: e_1_1 };
|
|
8741
8779
|
} finally {
|
|
8742
8780
|
try {
|
|
8743
|
-
if (buffers_1_1 && !buffers_1_1.done && (
|
|
8781
|
+
if (buffers_1_1 && !buffers_1_1.done && (_a7 = buffers_1.return)) _a7.call(buffers_1);
|
|
8744
8782
|
} finally {
|
|
8745
8783
|
if (e_1) throw e_1.error;
|
|
8746
8784
|
}
|
|
@@ -8763,7 +8801,7 @@ function bufferCount(bufferSize, startBufferEvery) {
|
|
|
8763
8801
|
}
|
|
8764
8802
|
}
|
|
8765
8803
|
}, function() {
|
|
8766
|
-
var e_3,
|
|
8804
|
+
var e_3, _a7;
|
|
8767
8805
|
try {
|
|
8768
8806
|
for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) {
|
|
8769
8807
|
var buffer2 = buffers_2_1.value;
|
|
@@ -8773,7 +8811,7 @@ function bufferCount(bufferSize, startBufferEvery) {
|
|
|
8773
8811
|
e_3 = { error: e_3_1 };
|
|
8774
8812
|
} finally {
|
|
8775
8813
|
try {
|
|
8776
|
-
if (buffers_2_1 && !buffers_2_1.done && (
|
|
8814
|
+
if (buffers_2_1 && !buffers_2_1.done && (_a7 = buffers_2.return)) _a7.call(buffers_2);
|
|
8777
8815
|
} finally {
|
|
8778
8816
|
if (e_3) throw e_3.error;
|
|
8779
8817
|
}
|
|
@@ -8787,12 +8825,12 @@ function bufferCount(bufferSize, startBufferEvery) {
|
|
|
8787
8825
|
|
|
8788
8826
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js
|
|
8789
8827
|
function bufferTime(bufferTimeSpan) {
|
|
8790
|
-
var
|
|
8828
|
+
var _a7, _b;
|
|
8791
8829
|
var otherArgs = [];
|
|
8792
8830
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
8793
8831
|
otherArgs[_i - 1] = arguments[_i];
|
|
8794
8832
|
}
|
|
8795
|
-
var scheduler = (
|
|
8833
|
+
var scheduler = (_a7 = popScheduler(otherArgs)) !== null && _a7 !== void 0 ? _a7 : asyncScheduler;
|
|
8796
8834
|
var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;
|
|
8797
8835
|
var maxBufferSize = otherArgs[1] || Infinity;
|
|
8798
8836
|
return operate(function(source, subscriber) {
|
|
@@ -8827,7 +8865,7 @@ function bufferTime(bufferTimeSpan) {
|
|
|
8827
8865
|
}
|
|
8828
8866
|
startBuffer();
|
|
8829
8867
|
var bufferTimeSubscriber = createOperatorSubscriber(subscriber, function(value2) {
|
|
8830
|
-
var e_1,
|
|
8868
|
+
var e_1, _a8;
|
|
8831
8869
|
var recordsCopy = bufferRecords.slice();
|
|
8832
8870
|
try {
|
|
8833
8871
|
for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) {
|
|
@@ -8840,7 +8878,7 @@ function bufferTime(bufferTimeSpan) {
|
|
|
8840
8878
|
e_1 = { error: e_1_1 };
|
|
8841
8879
|
} finally {
|
|
8842
8880
|
try {
|
|
8843
|
-
if (recordsCopy_1_1 && !recordsCopy_1_1.done && (
|
|
8881
|
+
if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a8 = recordsCopy_1.return)) _a8.call(recordsCopy_1);
|
|
8844
8882
|
} finally {
|
|
8845
8883
|
if (e_1) throw e_1.error;
|
|
8846
8884
|
}
|
|
@@ -8959,7 +8997,7 @@ function takeUntil(notifier) {
|
|
|
8959
8997
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttle.js
|
|
8960
8998
|
function throttle(durationSelector, config2) {
|
|
8961
8999
|
return operate(function(source, subscriber) {
|
|
8962
|
-
var
|
|
9000
|
+
var _a7 = config2 !== null && config2 !== void 0 ? config2 : {}, _b = _a7.leading, leading = _b === void 0 ? true : _b, _c = _a7.trailing, trailing = _c === void 0 ? false : _c;
|
|
8963
9001
|
var hasValue = false;
|
|
8964
9002
|
var sendValue = null;
|
|
8965
9003
|
var throttled = null;
|
|
@@ -10093,7 +10131,7 @@ var secondsInWeek = secondsInDay * 7;
|
|
|
10093
10131
|
var secondsInYear = secondsInDay * daysInYear;
|
|
10094
10132
|
var secondsInMonth = secondsInYear / 12;
|
|
10095
10133
|
var secondsInQuarter = secondsInMonth * 3;
|
|
10096
|
-
var constructFromSymbol = Symbol.for("constructDateFrom");
|
|
10134
|
+
var constructFromSymbol = /* @__PURE__ */ Symbol.for("constructDateFrom");
|
|
10097
10135
|
|
|
10098
10136
|
// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js
|
|
10099
10137
|
function constructFrom(date, value2) {
|
|
@@ -40784,7 +40822,7 @@ var CssManager = class _CssManager {
|
|
|
40784
40822
|
};
|
|
40785
40823
|
|
|
40786
40824
|
// node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/static.js
|
|
40787
|
-
var a3 = Symbol.for(""), o7 = (t8) => {
|
|
40825
|
+
var a3 = /* @__PURE__ */ Symbol.for(""), o7 = (t8) => {
|
|
40788
40826
|
if (t8?.r === a3) return t8?._$litStatic$;
|
|
40789
40827
|
}, s4 = (t8) => ({ _$litStatic$: t8, r: a3 }), i5 = (t8, ...r10) => ({ _$litStatic$: r10.reduce(((r11, e10, a4) => r11 + ((t9) => {
|
|
40790
40828
|
if (void 0 !== t9._$litStatic$) return t9._$litStatic$;
|
|
@@ -40871,8 +40909,8 @@ function e7(e10, r10) {
|
|
|
40871
40909
|
return (n12, s8, i9) => {
|
|
40872
40910
|
const o12 = (t8) => t8.renderRoot?.querySelector(e10) ?? null;
|
|
40873
40911
|
if (r10) {
|
|
40874
|
-
const { get: e11, set: r11 } = "object" == typeof s8 ? n12 : i9 ?? (() => {
|
|
40875
|
-
const t8 = Symbol();
|
|
40912
|
+
const { get: e11, set: r11 } = "object" == typeof s8 ? n12 : i9 ?? /* @__PURE__ */ (() => {
|
|
40913
|
+
const t8 = /* @__PURE__ */ Symbol();
|
|
40876
40914
|
return { get() {
|
|
40877
40915
|
return this[t8];
|
|
40878
40916
|
}, set(e12) {
|
|
@@ -41326,11 +41364,14 @@ var resolveTemplateFactory = async (factoryArg) => {
|
|
|
41326
41364
|
};
|
|
41327
41365
|
|
|
41328
41366
|
// ts_web/elements/wcc-frame.ts
|
|
41329
|
-
var
|
|
41367
|
+
var _isFullscreen_dec, _advancedEditorOpen_dec, _viewport_dec, _a, _WccFrame_decorators, _init, _viewport, _advancedEditorOpen, _isFullscreen;
|
|
41368
|
+
_WccFrame_decorators = [t4("wcc-frame")];
|
|
41369
|
+
var WccFrame = class extends (_a = DeesElement, _viewport_dec = [n5()], _advancedEditorOpen_dec = [n5({ type: Boolean })], _isFullscreen_dec = [n5({ type: Boolean })], _a) {
|
|
41330
41370
|
constructor() {
|
|
41331
41371
|
super(...arguments);
|
|
41332
|
-
this
|
|
41333
|
-
this
|
|
41372
|
+
__privateAdd(this, _viewport, __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
|
|
41373
|
+
__privateAdd(this, _advancedEditorOpen, __runInitializers(_init, 12, this, false)), __runInitializers(_init, 15, this);
|
|
41374
|
+
__privateAdd(this, _isFullscreen, __runInitializers(_init, 16, this, false)), __runInitializers(_init, 19, this);
|
|
41334
41375
|
}
|
|
41335
41376
|
render() {
|
|
41336
41377
|
return x`
|
|
@@ -41408,7 +41449,15 @@ var WccFrame = class extends DeesElement {
|
|
|
41408
41449
|
return this.shadowRoot.querySelector(".viewport");
|
|
41409
41450
|
}
|
|
41410
41451
|
};
|
|
41411
|
-
|
|
41452
|
+
_init = __decoratorStart(_a);
|
|
41453
|
+
_viewport = new WeakMap();
|
|
41454
|
+
_advancedEditorOpen = new WeakMap();
|
|
41455
|
+
_isFullscreen = new WeakMap();
|
|
41456
|
+
__decorateElement(_init, 4, "viewport", _viewport_dec, WccFrame, _viewport);
|
|
41457
|
+
__decorateElement(_init, 4, "advancedEditorOpen", _advancedEditorOpen_dec, WccFrame, _advancedEditorOpen);
|
|
41458
|
+
__decorateElement(_init, 4, "isFullscreen", _isFullscreen_dec, WccFrame, _isFullscreen);
|
|
41459
|
+
WccFrame = __decorateElement(_init, 0, "WccFrame", _WccFrame_decorators, WccFrame);
|
|
41460
|
+
__publicField(WccFrame, "styles", [
|
|
41412
41461
|
i`
|
|
41413
41462
|
:host {
|
|
41414
41463
|
border: 10px solid #ffaeaf;
|
|
@@ -41429,25 +41478,19 @@ WccFrame.styles = [
|
|
|
41429
41478
|
min-height: 100%;
|
|
41430
41479
|
}
|
|
41431
41480
|
`
|
|
41432
|
-
];
|
|
41433
|
-
|
|
41434
|
-
n5()
|
|
41435
|
-
], WccFrame.prototype, "viewport", 2);
|
|
41436
|
-
__decorateClass([
|
|
41437
|
-
n5({ type: Boolean })
|
|
41438
|
-
], WccFrame.prototype, "advancedEditorOpen", 2);
|
|
41439
|
-
__decorateClass([
|
|
41440
|
-
n5({ type: Boolean })
|
|
41441
|
-
], WccFrame.prototype, "isFullscreen", 2);
|
|
41442
|
-
WccFrame = __decorateClass([
|
|
41443
|
-
t4("wcc-frame")
|
|
41444
|
-
], WccFrame);
|
|
41481
|
+
]);
|
|
41482
|
+
__runInitializers(_init, 1, WccFrame);
|
|
41445
41483
|
|
|
41446
41484
|
// ts_web/elements/wcc-sidebar.ts
|
|
41447
|
-
var
|
|
41485
|
+
var _isFullscreen_dec2, _dashboardRef_dec, _selectedType_dec, _selectedItem_dec, _a2, _WccSidebar_decorators, _init2, _selectedItem, _selectedType, _dashboardRef, _isFullscreen2;
|
|
41486
|
+
_WccSidebar_decorators = [t4("wcc-sidebar")];
|
|
41487
|
+
var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ attribute: false })], _selectedType_dec = [n5({ attribute: false })], _dashboardRef_dec = [n5()], _isFullscreen_dec2 = [n5()], _a2) {
|
|
41448
41488
|
constructor() {
|
|
41449
41489
|
super(...arguments);
|
|
41450
|
-
this
|
|
41490
|
+
__privateAdd(this, _selectedItem, __runInitializers(_init2, 8, this)), __runInitializers(_init2, 11, this);
|
|
41491
|
+
__privateAdd(this, _selectedType, __runInitializers(_init2, 12, this)), __runInitializers(_init2, 15, this);
|
|
41492
|
+
__privateAdd(this, _dashboardRef, __runInitializers(_init2, 16, this)), __runInitializers(_init2, 19, this);
|
|
41493
|
+
__privateAdd(this, _isFullscreen2, __runInitializers(_init2, 20, this, false)), __runInitializers(_init2, 23, this);
|
|
41451
41494
|
}
|
|
41452
41495
|
render() {
|
|
41453
41496
|
return x`
|
|
@@ -41656,37 +41699,1343 @@ var WccSidebar = class extends DeesElement {
|
|
|
41656
41699
|
this.dashboardRef.buildUrl();
|
|
41657
41700
|
}
|
|
41658
41701
|
};
|
|
41659
|
-
|
|
41660
|
-
|
|
41661
|
-
|
|
41662
|
-
|
|
41663
|
-
|
|
41664
|
-
|
|
41665
|
-
|
|
41666
|
-
|
|
41667
|
-
|
|
41668
|
-
|
|
41669
|
-
|
|
41670
|
-
|
|
41671
|
-
|
|
41672
|
-
|
|
41673
|
-
|
|
41702
|
+
_init2 = __decoratorStart(_a2);
|
|
41703
|
+
_selectedItem = new WeakMap();
|
|
41704
|
+
_selectedType = new WeakMap();
|
|
41705
|
+
_dashboardRef = new WeakMap();
|
|
41706
|
+
_isFullscreen2 = new WeakMap();
|
|
41707
|
+
__decorateElement(_init2, 4, "selectedItem", _selectedItem_dec, WccSidebar, _selectedItem);
|
|
41708
|
+
__decorateElement(_init2, 4, "selectedType", _selectedType_dec, WccSidebar, _selectedType);
|
|
41709
|
+
__decorateElement(_init2, 4, "dashboardRef", _dashboardRef_dec, WccSidebar, _dashboardRef);
|
|
41710
|
+
__decorateElement(_init2, 4, "isFullscreen", _isFullscreen_dec2, WccSidebar, _isFullscreen2);
|
|
41711
|
+
WccSidebar = __decorateElement(_init2, 0, "WccSidebar", _WccSidebar_decorators, WccSidebar);
|
|
41712
|
+
__runInitializers(_init2, 1, WccSidebar);
|
|
41713
|
+
|
|
41714
|
+
// ts_web/elements/wcc-record-button.ts
|
|
41715
|
+
var _duration_dec, _state_dec, _a3, _WccRecordButton_decorators, _init3, _state, _duration;
|
|
41716
|
+
_WccRecordButton_decorators = [t4("wcc-record-button")];
|
|
41717
|
+
var WccRecordButton = class extends (_a3 = DeesElement, _state_dec = [n5({ type: String })], _duration_dec = [n5({ type: Number })], _a3) {
|
|
41718
|
+
constructor() {
|
|
41719
|
+
super(...arguments);
|
|
41720
|
+
__privateAdd(this, _state, __runInitializers(_init3, 8, this, "idle")), __runInitializers(_init3, 11, this);
|
|
41721
|
+
__privateAdd(this, _duration, __runInitializers(_init3, 12, this, 0)), __runInitializers(_init3, 15, this);
|
|
41722
|
+
__publicField(this, "handleClick", () => {
|
|
41723
|
+
this.dispatchEvent(new CustomEvent("record-click", {
|
|
41724
|
+
bubbles: true,
|
|
41725
|
+
composed: true
|
|
41726
|
+
}));
|
|
41727
|
+
});
|
|
41728
|
+
}
|
|
41729
|
+
formatDuration(seconds) {
|
|
41730
|
+
const mins = Math.floor(seconds / 60);
|
|
41731
|
+
const secs = seconds % 60;
|
|
41732
|
+
return `${mins.toString().padStart(2, "0")}:${secs.toString().padStart(2, "0")}`;
|
|
41733
|
+
}
|
|
41734
|
+
render() {
|
|
41735
|
+
return x`
|
|
41736
|
+
<div class="content">
|
|
41737
|
+
<div class="rec-icon"></div>
|
|
41738
|
+
${this.state === "recording" ? x`
|
|
41739
|
+
<span class="recording-timer">${this.formatDuration(this.duration)}</span>
|
|
41740
|
+
` : null}
|
|
41741
|
+
</div>
|
|
41742
|
+
`;
|
|
41743
|
+
}
|
|
41744
|
+
async connectedCallback() {
|
|
41745
|
+
await super.connectedCallback();
|
|
41746
|
+
this.addEventListener("click", this.handleClick);
|
|
41747
|
+
}
|
|
41748
|
+
async disconnectedCallback() {
|
|
41749
|
+
await super.disconnectedCallback();
|
|
41750
|
+
this.removeEventListener("click", this.handleClick);
|
|
41751
|
+
}
|
|
41752
|
+
updated(changedProperties) {
|
|
41753
|
+
super.updated(changedProperties);
|
|
41754
|
+
if (changedProperties.has("state")) {
|
|
41755
|
+
if (this.state === "recording") {
|
|
41756
|
+
this.classList.add("recording");
|
|
41757
|
+
} else {
|
|
41758
|
+
this.classList.remove("recording");
|
|
41759
|
+
}
|
|
41760
|
+
}
|
|
41761
|
+
}
|
|
41762
|
+
};
|
|
41763
|
+
_init3 = __decoratorStart(_a3);
|
|
41764
|
+
_state = new WeakMap();
|
|
41765
|
+
_duration = new WeakMap();
|
|
41766
|
+
__decorateElement(_init3, 4, "state", _state_dec, WccRecordButton, _state);
|
|
41767
|
+
__decorateElement(_init3, 4, "duration", _duration_dec, WccRecordButton, _duration);
|
|
41768
|
+
WccRecordButton = __decorateElement(_init3, 0, "WccRecordButton", _WccRecordButton_decorators, WccRecordButton);
|
|
41769
|
+
__publicField(WccRecordButton, "styles", [
|
|
41770
|
+
i`
|
|
41771
|
+
:host {
|
|
41772
|
+
display: flex;
|
|
41773
|
+
align-items: center;
|
|
41774
|
+
justify-content: center;
|
|
41775
|
+
background: transparent;
|
|
41776
|
+
cursor: pointer;
|
|
41777
|
+
transition: all 0.15s ease;
|
|
41778
|
+
color: #666;
|
|
41779
|
+
user-select: none;
|
|
41780
|
+
}
|
|
41781
|
+
|
|
41782
|
+
:host(:hover) {
|
|
41783
|
+
background: rgba(239, 68, 68, 0.05);
|
|
41784
|
+
color: #f87171;
|
|
41785
|
+
}
|
|
41786
|
+
|
|
41787
|
+
:host(.recording) {
|
|
41788
|
+
background: rgba(239, 68, 68, 0.15);
|
|
41789
|
+
color: #f87171;
|
|
41790
|
+
}
|
|
41791
|
+
|
|
41792
|
+
.content {
|
|
41793
|
+
display: flex;
|
|
41794
|
+
align-items: center;
|
|
41795
|
+
justify-content: center;
|
|
41796
|
+
gap: 0.25rem;
|
|
41797
|
+
}
|
|
41798
|
+
|
|
41799
|
+
.rec-icon {
|
|
41800
|
+
width: 12px;
|
|
41801
|
+
height: 12px;
|
|
41802
|
+
border-radius: 50%;
|
|
41803
|
+
background: currentColor;
|
|
41804
|
+
}
|
|
41805
|
+
|
|
41806
|
+
:host(.recording) .rec-icon {
|
|
41807
|
+
animation: pulse-recording 1s ease-in-out infinite;
|
|
41808
|
+
}
|
|
41809
|
+
|
|
41810
|
+
@keyframes pulse-recording {
|
|
41811
|
+
0%, 100% { opacity: 1; transform: scale(1); }
|
|
41812
|
+
50% { opacity: 0.5; transform: scale(0.9); }
|
|
41813
|
+
}
|
|
41814
|
+
|
|
41815
|
+
.recording-timer {
|
|
41816
|
+
font-family: 'Consolas', 'Monaco', monospace;
|
|
41817
|
+
font-size: 0.7rem;
|
|
41818
|
+
}
|
|
41819
|
+
`
|
|
41820
|
+
]);
|
|
41821
|
+
__runInitializers(_init3, 1, WccRecordButton);
|
|
41822
|
+
|
|
41823
|
+
// ts_web/services/recorder.service.ts
|
|
41824
|
+
var RecorderService = class {
|
|
41825
|
+
// Recording state
|
|
41826
|
+
mediaRecorder = null;
|
|
41827
|
+
recordedChunks = [];
|
|
41828
|
+
durationInterval = null;
|
|
41829
|
+
_duration = 0;
|
|
41830
|
+
_recordedBlob = null;
|
|
41831
|
+
_isRecording = false;
|
|
41832
|
+
// Audio monitoring state
|
|
41833
|
+
audioContext = null;
|
|
41834
|
+
audioAnalyser = null;
|
|
41835
|
+
audioMonitoringInterval = null;
|
|
41836
|
+
monitoringStream = null;
|
|
41837
|
+
// Current recording stream
|
|
41838
|
+
currentStream = null;
|
|
41839
|
+
// Event callbacks
|
|
41840
|
+
events = {};
|
|
41841
|
+
constructor(events) {
|
|
41842
|
+
if (events) {
|
|
41843
|
+
this.events = events;
|
|
41844
|
+
}
|
|
41845
|
+
}
|
|
41846
|
+
// Public getters
|
|
41847
|
+
get isRecording() {
|
|
41848
|
+
return this._isRecording;
|
|
41849
|
+
}
|
|
41850
|
+
get duration() {
|
|
41851
|
+
return this._duration;
|
|
41852
|
+
}
|
|
41853
|
+
get recordedBlob() {
|
|
41854
|
+
return this._recordedBlob;
|
|
41855
|
+
}
|
|
41856
|
+
// Update event callbacks
|
|
41857
|
+
setEvents(events) {
|
|
41858
|
+
this.events = { ...this.events, ...events };
|
|
41859
|
+
}
|
|
41860
|
+
// ==================== Microphone Management ====================
|
|
41861
|
+
async loadMicrophones(requestPermission = false) {
|
|
41862
|
+
try {
|
|
41863
|
+
if (requestPermission) {
|
|
41864
|
+
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
|
|
41865
|
+
stream.getTracks().forEach((track2) => track2.stop());
|
|
41866
|
+
}
|
|
41867
|
+
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
41868
|
+
return devices.filter((d5) => d5.kind === "audioinput");
|
|
41869
|
+
} catch (error) {
|
|
41870
|
+
console.error("Error loading microphones:", error);
|
|
41871
|
+
return [];
|
|
41872
|
+
}
|
|
41873
|
+
}
|
|
41874
|
+
async startAudioMonitoring(deviceId) {
|
|
41875
|
+
this.stopAudioMonitoring();
|
|
41876
|
+
if (!deviceId) return;
|
|
41877
|
+
try {
|
|
41878
|
+
const stream = await navigator.mediaDevices.getUserMedia({
|
|
41879
|
+
audio: { deviceId: { exact: deviceId } }
|
|
41880
|
+
});
|
|
41881
|
+
this.monitoringStream = stream;
|
|
41882
|
+
this.audioContext = new AudioContext();
|
|
41883
|
+
const source = this.audioContext.createMediaStreamSource(stream);
|
|
41884
|
+
this.audioAnalyser = this.audioContext.createAnalyser();
|
|
41885
|
+
this.audioAnalyser.fftSize = 256;
|
|
41886
|
+
source.connect(this.audioAnalyser);
|
|
41887
|
+
const dataArray = new Uint8Array(this.audioAnalyser.frequencyBinCount);
|
|
41888
|
+
this.audioMonitoringInterval = window.setInterval(() => {
|
|
41889
|
+
if (this.audioAnalyser) {
|
|
41890
|
+
this.audioAnalyser.getByteFrequencyData(dataArray);
|
|
41891
|
+
const average = dataArray.reduce((a4, b4) => a4 + b4) / dataArray.length;
|
|
41892
|
+
const level = Math.min(100, average / 128 * 100);
|
|
41893
|
+
this.events.onAudioLevelUpdate?.(level);
|
|
41894
|
+
}
|
|
41895
|
+
}, 50);
|
|
41896
|
+
} catch (error) {
|
|
41897
|
+
console.error("Error starting audio monitoring:", error);
|
|
41898
|
+
this.events.onAudioLevelUpdate?.(0);
|
|
41899
|
+
}
|
|
41900
|
+
}
|
|
41901
|
+
stopAudioMonitoring() {
|
|
41902
|
+
if (this.audioMonitoringInterval) {
|
|
41903
|
+
clearInterval(this.audioMonitoringInterval);
|
|
41904
|
+
this.audioMonitoringInterval = null;
|
|
41905
|
+
}
|
|
41906
|
+
if (this.audioContext) {
|
|
41907
|
+
this.audioContext.close();
|
|
41908
|
+
this.audioContext = null;
|
|
41909
|
+
}
|
|
41910
|
+
if (this.monitoringStream) {
|
|
41911
|
+
this.monitoringStream.getTracks().forEach((track2) => track2.stop());
|
|
41912
|
+
this.monitoringStream = null;
|
|
41913
|
+
}
|
|
41914
|
+
this.audioAnalyser = null;
|
|
41915
|
+
}
|
|
41916
|
+
// ==================== Recording Control ====================
|
|
41917
|
+
async startRecording(options) {
|
|
41918
|
+
try {
|
|
41919
|
+
this.stopAudioMonitoring();
|
|
41920
|
+
const displayMediaOptions = {
|
|
41921
|
+
video: {
|
|
41922
|
+
displaySurface: options.mode === "viewport" ? "browser" : "monitor"
|
|
41923
|
+
},
|
|
41924
|
+
audio: false
|
|
41925
|
+
};
|
|
41926
|
+
if (options.mode === "viewport") {
|
|
41927
|
+
displayMediaOptions.preferCurrentTab = true;
|
|
41928
|
+
}
|
|
41929
|
+
const videoStream = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
|
|
41930
|
+
if (options.mode === "viewport" && options.viewportElement) {
|
|
41931
|
+
try {
|
|
41932
|
+
if ("CropTarget" in window) {
|
|
41933
|
+
const cropTarget = await window.CropTarget.fromElement(options.viewportElement);
|
|
41934
|
+
const [videoTrack] = videoStream.getVideoTracks();
|
|
41935
|
+
await videoTrack.cropTo(cropTarget);
|
|
41936
|
+
}
|
|
41937
|
+
} catch (e10) {
|
|
41938
|
+
console.warn("Element Capture not supported, recording full tab:", e10);
|
|
41939
|
+
}
|
|
41940
|
+
}
|
|
41941
|
+
let combinedStream = videoStream;
|
|
41942
|
+
if (options.audioDeviceId) {
|
|
41943
|
+
try {
|
|
41944
|
+
const audioStream = await navigator.mediaDevices.getUserMedia({
|
|
41945
|
+
audio: { deviceId: { exact: options.audioDeviceId } }
|
|
41946
|
+
});
|
|
41947
|
+
combinedStream = new MediaStream([
|
|
41948
|
+
...videoStream.getVideoTracks(),
|
|
41949
|
+
...audioStream.getAudioTracks()
|
|
41950
|
+
]);
|
|
41951
|
+
} catch (audioError) {
|
|
41952
|
+
console.warn("Could not add audio:", audioError);
|
|
41953
|
+
}
|
|
41954
|
+
}
|
|
41955
|
+
this.currentStream = combinedStream;
|
|
41956
|
+
const mimeType = MediaRecorder.isTypeSupported("video/webm;codecs=vp9") ? "video/webm;codecs=vp9" : "video/webm";
|
|
41957
|
+
this.mediaRecorder = new MediaRecorder(combinedStream, { mimeType });
|
|
41958
|
+
this.recordedChunks = [];
|
|
41959
|
+
this.mediaRecorder.ondataavailable = (e10) => {
|
|
41960
|
+
if (e10.data.size > 0) {
|
|
41961
|
+
this.recordedChunks.push(e10.data);
|
|
41962
|
+
}
|
|
41963
|
+
};
|
|
41964
|
+
this.mediaRecorder.onstop = () => this.handleRecordingComplete();
|
|
41965
|
+
videoStream.getVideoTracks()[0].onended = () => {
|
|
41966
|
+
if (this._isRecording) {
|
|
41967
|
+
this.stopRecording();
|
|
41968
|
+
this.events.onStreamEnded?.();
|
|
41969
|
+
}
|
|
41970
|
+
};
|
|
41971
|
+
this.mediaRecorder.start(1e3);
|
|
41972
|
+
this._duration = 0;
|
|
41973
|
+
this.durationInterval = window.setInterval(() => {
|
|
41974
|
+
this._duration++;
|
|
41975
|
+
this.events.onDurationUpdate?.(this._duration);
|
|
41976
|
+
}, 1e3);
|
|
41977
|
+
this._isRecording = true;
|
|
41978
|
+
} catch (error) {
|
|
41979
|
+
console.error("Error starting recording:", error);
|
|
41980
|
+
this._isRecording = false;
|
|
41981
|
+
this.events.onError?.(error);
|
|
41982
|
+
throw error;
|
|
41983
|
+
}
|
|
41984
|
+
}
|
|
41985
|
+
stopRecording() {
|
|
41986
|
+
if (this.mediaRecorder && this.mediaRecorder.state !== "inactive") {
|
|
41987
|
+
this.mediaRecorder.stop();
|
|
41988
|
+
}
|
|
41989
|
+
if (this.durationInterval) {
|
|
41990
|
+
clearInterval(this.durationInterval);
|
|
41991
|
+
this.durationInterval = null;
|
|
41992
|
+
}
|
|
41993
|
+
}
|
|
41994
|
+
handleRecordingComplete() {
|
|
41995
|
+
this._recordedBlob = new Blob(this.recordedChunks, { type: "video/webm" });
|
|
41996
|
+
if (this.currentStream) {
|
|
41997
|
+
this.currentStream.getTracks().forEach((track2) => track2.stop());
|
|
41998
|
+
this.currentStream = null;
|
|
41999
|
+
}
|
|
42000
|
+
this._isRecording = false;
|
|
42001
|
+
this.events.onRecordingComplete?.(this._recordedBlob);
|
|
42002
|
+
}
|
|
42003
|
+
// ==================== Trim & Export ====================
|
|
42004
|
+
async exportTrimmedVideo(videoElement, trimStart, trimEnd) {
|
|
42005
|
+
return new Promise((resolve2, reject) => {
|
|
42006
|
+
const canvas = document.createElement("canvas");
|
|
42007
|
+
canvas.width = videoElement.videoWidth || 1280;
|
|
42008
|
+
canvas.height = videoElement.videoHeight || 720;
|
|
42009
|
+
const ctx = canvas.getContext("2d");
|
|
42010
|
+
if (!ctx) {
|
|
42011
|
+
reject(new Error("Could not get canvas context"));
|
|
42012
|
+
return;
|
|
42013
|
+
}
|
|
42014
|
+
const canvasStream = canvas.captureStream(30);
|
|
42015
|
+
let combinedStream;
|
|
42016
|
+
try {
|
|
42017
|
+
const audioCtx = new AudioContext();
|
|
42018
|
+
const source = audioCtx.createMediaElementSource(videoElement);
|
|
42019
|
+
const destination = audioCtx.createMediaStreamDestination();
|
|
42020
|
+
source.connect(destination);
|
|
42021
|
+
source.connect(audioCtx.destination);
|
|
42022
|
+
combinedStream = new MediaStream([
|
|
42023
|
+
...canvasStream.getVideoTracks(),
|
|
42024
|
+
...destination.stream.getAudioTracks()
|
|
42025
|
+
]);
|
|
42026
|
+
const cleanup = () => {
|
|
42027
|
+
audioCtx.close();
|
|
42028
|
+
};
|
|
42029
|
+
this.recordTrimmedStream(videoElement, canvas, ctx, combinedStream, trimStart, trimEnd, cleanup, resolve2, reject);
|
|
42030
|
+
} catch (audioError) {
|
|
42031
|
+
console.warn("Could not capture audio, recording video only:", audioError);
|
|
42032
|
+
combinedStream = canvasStream;
|
|
42033
|
+
this.recordTrimmedStream(videoElement, canvas, ctx, combinedStream, trimStart, trimEnd, () => {
|
|
42034
|
+
}, resolve2, reject);
|
|
42035
|
+
}
|
|
42036
|
+
});
|
|
42037
|
+
}
|
|
42038
|
+
recordTrimmedStream(video, canvas, ctx, stream, trimStart, trimEnd, cleanup, resolve2, reject) {
|
|
42039
|
+
const mimeType = MediaRecorder.isTypeSupported("video/webm;codecs=vp9") ? "video/webm;codecs=vp9" : "video/webm";
|
|
42040
|
+
const recorder = new MediaRecorder(stream, { mimeType });
|
|
42041
|
+
const chunks = [];
|
|
42042
|
+
recorder.ondataavailable = (e10) => {
|
|
42043
|
+
if (e10.data.size > 0) {
|
|
42044
|
+
chunks.push(e10.data);
|
|
42045
|
+
}
|
|
42046
|
+
};
|
|
42047
|
+
recorder.onstop = () => {
|
|
42048
|
+
cleanup();
|
|
42049
|
+
resolve2(new Blob(chunks, { type: "video/webm" }));
|
|
42050
|
+
};
|
|
42051
|
+
recorder.onerror = (e10) => {
|
|
42052
|
+
cleanup();
|
|
42053
|
+
reject(new Error("Recording error: " + e10));
|
|
42054
|
+
};
|
|
42055
|
+
video.currentTime = trimStart;
|
|
42056
|
+
video.onseeked = () => {
|
|
42057
|
+
recorder.start(100);
|
|
42058
|
+
video.play();
|
|
42059
|
+
const drawFrame = () => {
|
|
42060
|
+
if (video.currentTime >= trimEnd || video.paused || video.ended) {
|
|
42061
|
+
video.pause();
|
|
42062
|
+
video.onseeked = null;
|
|
42063
|
+
setTimeout(() => {
|
|
42064
|
+
if (recorder.state === "recording") {
|
|
42065
|
+
recorder.stop();
|
|
42066
|
+
}
|
|
42067
|
+
}, 100);
|
|
42068
|
+
return;
|
|
42069
|
+
}
|
|
42070
|
+
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
|
42071
|
+
requestAnimationFrame(drawFrame);
|
|
42072
|
+
};
|
|
42073
|
+
drawFrame();
|
|
42074
|
+
};
|
|
42075
|
+
}
|
|
42076
|
+
// ==================== Cleanup ====================
|
|
42077
|
+
reset() {
|
|
42078
|
+
this._recordedBlob = null;
|
|
42079
|
+
this.recordedChunks = [];
|
|
42080
|
+
this._duration = 0;
|
|
42081
|
+
this._isRecording = false;
|
|
42082
|
+
}
|
|
42083
|
+
dispose() {
|
|
42084
|
+
this.stopRecording();
|
|
42085
|
+
this.stopAudioMonitoring();
|
|
42086
|
+
this.reset();
|
|
42087
|
+
if (this.currentStream) {
|
|
42088
|
+
this.currentStream.getTracks().forEach((track2) => track2.stop());
|
|
42089
|
+
this.currentStream = null;
|
|
42090
|
+
}
|
|
42091
|
+
}
|
|
42092
|
+
};
|
|
42093
|
+
|
|
42094
|
+
// ts_web/elements/wcc-recording-panel.ts
|
|
42095
|
+
var _isExporting_dec, _isDraggingTrim_dec, _videoDuration_dec, _trimEnd_dec, _trimStart_dec, _previewVideoUrl_dec, _recordingDuration_dec, _audioLevel_dec, _availableMicrophones_dec, _selectedMicrophoneId_dec, _audioEnabled_dec, _recordingMode_dec, _panelState_dec, _dashboardRef_dec2, _a4, _WccRecordingPanel_decorators, _init4, _dashboardRef2, _panelState, _recordingMode, _audioEnabled, _selectedMicrophoneId, _availableMicrophones, _audioLevel, _recordingDuration, _previewVideoUrl, _trimStart, _trimEnd, _videoDuration, _isDraggingTrim, _isExporting;
|
|
42096
|
+
_WccRecordingPanel_decorators = [t4("wcc-recording-panel")];
|
|
42097
|
+
var WccRecordingPanel = class extends (_a4 = DeesElement, _dashboardRef_dec2 = [n5({ attribute: false })], _panelState_dec = [r5()], _recordingMode_dec = [r5()], _audioEnabled_dec = [r5()], _selectedMicrophoneId_dec = [r5()], _availableMicrophones_dec = [r5()], _audioLevel_dec = [r5()], _recordingDuration_dec = [r5()], _previewVideoUrl_dec = [r5()], _trimStart_dec = [r5()], _trimEnd_dec = [r5()], _videoDuration_dec = [r5()], _isDraggingTrim_dec = [r5()], _isExporting_dec = [r5()], _a4) {
|
|
42098
|
+
constructor() {
|
|
42099
|
+
super();
|
|
42100
|
+
__privateAdd(this, _dashboardRef2, __runInitializers(_init4, 8, this)), __runInitializers(_init4, 11, this);
|
|
42101
|
+
__privateAdd(this, _panelState, __runInitializers(_init4, 12, this, "options")), __runInitializers(_init4, 15, this);
|
|
42102
|
+
__privateAdd(this, _recordingMode, __runInitializers(_init4, 16, this, "viewport")), __runInitializers(_init4, 19, this);
|
|
42103
|
+
__privateAdd(this, _audioEnabled, __runInitializers(_init4, 20, this, false)), __runInitializers(_init4, 23, this);
|
|
42104
|
+
__privateAdd(this, _selectedMicrophoneId, __runInitializers(_init4, 24, this, "")), __runInitializers(_init4, 27, this);
|
|
42105
|
+
__privateAdd(this, _availableMicrophones, __runInitializers(_init4, 28, this, [])), __runInitializers(_init4, 31, this);
|
|
42106
|
+
__privateAdd(this, _audioLevel, __runInitializers(_init4, 32, this, 0)), __runInitializers(_init4, 35, this);
|
|
42107
|
+
__privateAdd(this, _recordingDuration, __runInitializers(_init4, 36, this, 0)), __runInitializers(_init4, 39, this);
|
|
42108
|
+
__privateAdd(this, _previewVideoUrl, __runInitializers(_init4, 40, this, "")), __runInitializers(_init4, 43, this);
|
|
42109
|
+
__privateAdd(this, _trimStart, __runInitializers(_init4, 44, this, 0)), __runInitializers(_init4, 47, this);
|
|
42110
|
+
__privateAdd(this, _trimEnd, __runInitializers(_init4, 48, this, 0)), __runInitializers(_init4, 51, this);
|
|
42111
|
+
__privateAdd(this, _videoDuration, __runInitializers(_init4, 52, this, 0)), __runInitializers(_init4, 55, this);
|
|
42112
|
+
__privateAdd(this, _isDraggingTrim, __runInitializers(_init4, 56, this, null)), __runInitializers(_init4, 59, this);
|
|
42113
|
+
__privateAdd(this, _isExporting, __runInitializers(_init4, 60, this, false)), __runInitializers(_init4, 63, this);
|
|
42114
|
+
// Service instance
|
|
42115
|
+
__publicField(this, "recorderService");
|
|
42116
|
+
this.recorderService = new RecorderService({
|
|
42117
|
+
onDurationUpdate: (duration) => {
|
|
42118
|
+
this.recordingDuration = duration;
|
|
42119
|
+
this.dispatchEvent(new CustomEvent("duration-update", {
|
|
42120
|
+
detail: { duration },
|
|
42121
|
+
bubbles: true,
|
|
42122
|
+
composed: true
|
|
42123
|
+
}));
|
|
42124
|
+
},
|
|
42125
|
+
onRecordingComplete: (blob) => {
|
|
42126
|
+
this.handleRecordingComplete(blob);
|
|
42127
|
+
},
|
|
42128
|
+
onAudioLevelUpdate: (level) => {
|
|
42129
|
+
this.audioLevel = level;
|
|
42130
|
+
},
|
|
42131
|
+
onStreamEnded: () => {
|
|
42132
|
+
this.stopRecording();
|
|
42133
|
+
}
|
|
42134
|
+
});
|
|
42135
|
+
}
|
|
42136
|
+
render() {
|
|
42137
|
+
if (this.panelState === "options") {
|
|
42138
|
+
return this.renderOptionsPanel();
|
|
42139
|
+
} else if (this.panelState === "preview") {
|
|
42140
|
+
return this.renderPreviewModal();
|
|
42141
|
+
}
|
|
42142
|
+
return x``;
|
|
42143
|
+
}
|
|
42144
|
+
renderOptionsPanel() {
|
|
42145
|
+
return x`
|
|
42146
|
+
<div class="recording-options-panel">
|
|
42147
|
+
<div class="recording-options-header">
|
|
42148
|
+
<span class="recording-options-title">Recording Settings</span>
|
|
42149
|
+
<button class="recording-options-close" @click=${() => this.close()}>✕</button>
|
|
42150
|
+
</div>
|
|
42151
|
+
<div class="recording-options-content">
|
|
42152
|
+
<div class="recording-option-group">
|
|
42153
|
+
<div class="recording-option-label">Record Area</div>
|
|
42154
|
+
<div class="recording-mode-buttons">
|
|
42155
|
+
<button
|
|
42156
|
+
class="recording-mode-btn ${this.recordingMode === "viewport" ? "selected" : ""}"
|
|
42157
|
+
@click=${() => this.recordingMode = "viewport"}
|
|
42158
|
+
>
|
|
42159
|
+
Viewport Only
|
|
42160
|
+
</button>
|
|
42161
|
+
<button
|
|
42162
|
+
class="recording-mode-btn ${this.recordingMode === "screen" ? "selected" : ""}"
|
|
42163
|
+
@click=${() => this.recordingMode = "screen"}
|
|
42164
|
+
>
|
|
42165
|
+
Entire Screen
|
|
42166
|
+
</button>
|
|
42167
|
+
</div>
|
|
42168
|
+
</div>
|
|
42169
|
+
|
|
42170
|
+
<div class="recording-option-group">
|
|
42171
|
+
<div class="recording-option-label">Audio</div>
|
|
42172
|
+
<div class="audio-toggle">
|
|
42173
|
+
<input
|
|
42174
|
+
type="checkbox"
|
|
42175
|
+
id="audioToggle"
|
|
42176
|
+
?checked=${this.audioEnabled}
|
|
42177
|
+
@change=${(e10) => this.handleAudioToggle(e10.target.checked)}
|
|
42178
|
+
/>
|
|
42179
|
+
<label for="audioToggle">Enable Microphone</label>
|
|
42180
|
+
</div>
|
|
42181
|
+
|
|
42182
|
+
${this.audioEnabled ? x`
|
|
42183
|
+
<select
|
|
42184
|
+
class="microphone-select"
|
|
42185
|
+
.value=${this.selectedMicrophoneId}
|
|
42186
|
+
@change=${(e10) => this.handleMicrophoneChange(e10.target.value)}
|
|
42187
|
+
>
|
|
42188
|
+
<option value="">Select Microphone...</option>
|
|
42189
|
+
${this.availableMicrophones.map((mic) => x`
|
|
42190
|
+
<option value=${mic.deviceId}>${mic.label || `Microphone ${mic.deviceId.slice(0, 8)}`}</option>
|
|
42191
|
+
`)}
|
|
42192
|
+
</select>
|
|
42193
|
+
|
|
42194
|
+
${this.selectedMicrophoneId ? x`
|
|
42195
|
+
<div class="audio-level-container">
|
|
42196
|
+
<div class="audio-level-label">Input Level</div>
|
|
42197
|
+
<div class="audio-level-bar">
|
|
42198
|
+
<div class="audio-level-fill" style="width: ${this.audioLevel}%"></div>
|
|
42199
|
+
</div>
|
|
42200
|
+
</div>
|
|
42201
|
+
` : null}
|
|
42202
|
+
` : null}
|
|
42203
|
+
</div>
|
|
42204
|
+
|
|
42205
|
+
<button class="start-recording-btn" @click=${() => this.startRecording()}>
|
|
42206
|
+
<div class="rec-dot"></div>
|
|
42207
|
+
Start Recording
|
|
42208
|
+
</button>
|
|
42209
|
+
</div>
|
|
42210
|
+
</div>
|
|
42211
|
+
`;
|
|
42212
|
+
}
|
|
42213
|
+
renderPreviewModal() {
|
|
42214
|
+
return x`
|
|
42215
|
+
<div class="preview-modal-overlay" @click=${(e10) => {
|
|
42216
|
+
if (e10.target.classList.contains("preview-modal-overlay")) {
|
|
42217
|
+
this.discardRecording();
|
|
42218
|
+
}
|
|
42219
|
+
}}>
|
|
42220
|
+
<div class="preview-modal">
|
|
42221
|
+
<div class="preview-modal-header">
|
|
42222
|
+
<span class="preview-modal-title">Recording Preview</span>
|
|
42223
|
+
<button class="preview-modal-close" @click=${() => this.discardRecording()}>✕</button>
|
|
42224
|
+
</div>
|
|
42225
|
+
<div class="preview-modal-content">
|
|
42226
|
+
<div class="preview-video-container">
|
|
42227
|
+
<video
|
|
42228
|
+
class="preview-video"
|
|
42229
|
+
src=${this.previewVideoUrl}
|
|
42230
|
+
controls
|
|
42231
|
+
@loadedmetadata=${(e10) => this.handleVideoLoaded(e10.target)}
|
|
42232
|
+
></video>
|
|
42233
|
+
</div>
|
|
42234
|
+
|
|
42235
|
+
<!-- Trim Section -->
|
|
42236
|
+
<div class="trim-section">
|
|
42237
|
+
<div class="trim-section-header">
|
|
42238
|
+
<span class="trim-section-title">Trim Video</span>
|
|
42239
|
+
<span class="trim-duration-info">
|
|
42240
|
+
${this.formatDuration(Math.floor(this.trimEnd - this.trimStart))}
|
|
42241
|
+
${this.trimStart > 0 || this.trimEnd < this.videoDuration ? `(trimmed from ${this.formatDuration(Math.floor(this.videoDuration))})` : ""}
|
|
42242
|
+
</span>
|
|
42243
|
+
</div>
|
|
42244
|
+
|
|
42245
|
+
<div
|
|
42246
|
+
class="trim-timeline"
|
|
42247
|
+
@mousedown=${(e10) => this.handleTimelineClick(e10)}
|
|
42248
|
+
@mousemove=${(e10) => this.handleTimelineDrag(e10)}
|
|
42249
|
+
@mouseup=${() => this.handleTimelineDragEnd()}
|
|
42250
|
+
@mouseleave=${() => this.handleTimelineDragEnd()}
|
|
42251
|
+
>
|
|
42252
|
+
<div class="trim-track"></div>
|
|
42253
|
+
<div
|
|
42254
|
+
class="trim-selected"
|
|
42255
|
+
style="left: ${this.getHandlePositionStyle(this.trimStart)}; right: ${this.getHandlePositionFromEndStyle(this.trimEnd)};"
|
|
42256
|
+
></div>
|
|
42257
|
+
<div
|
|
42258
|
+
class="trim-handle start-handle"
|
|
42259
|
+
style="left: ${this.getHandlePositionStyle(this.trimStart)};"
|
|
42260
|
+
@mousedown=${(e10) => {
|
|
42261
|
+
e10.stopPropagation();
|
|
42262
|
+
this.isDraggingTrim = "start";
|
|
42263
|
+
}}
|
|
42264
|
+
></div>
|
|
42265
|
+
<div
|
|
42266
|
+
class="trim-handle end-handle"
|
|
42267
|
+
style="left: ${this.getHandlePositionStyle(this.trimEnd)};"
|
|
42268
|
+
@mousedown=${(e10) => {
|
|
42269
|
+
e10.stopPropagation();
|
|
42270
|
+
this.isDraggingTrim = "end";
|
|
42271
|
+
}}
|
|
42272
|
+
></div>
|
|
42273
|
+
</div>
|
|
42274
|
+
|
|
42275
|
+
<div class="trim-time-labels">
|
|
42276
|
+
<span>${this.formatDuration(Math.floor(this.trimStart))}</span>
|
|
42277
|
+
<span>${this.formatDuration(Math.floor(this.trimEnd))}</span>
|
|
42278
|
+
</div>
|
|
42279
|
+
|
|
42280
|
+
<div class="trim-actions">
|
|
42281
|
+
<button class="trim-action-btn" @click=${() => this.resetTrim()}>
|
|
42282
|
+
Reset Trim
|
|
42283
|
+
</button>
|
|
42284
|
+
<button class="trim-action-btn" @click=${() => this.previewTrimmedSection()}>
|
|
42285
|
+
Preview Selection
|
|
42286
|
+
</button>
|
|
42287
|
+
</div>
|
|
42288
|
+
</div>
|
|
42289
|
+
</div>
|
|
42290
|
+
<div class="preview-modal-actions">
|
|
42291
|
+
<button class="preview-btn secondary" @click=${() => this.discardRecording()}>Discard</button>
|
|
42292
|
+
<button
|
|
42293
|
+
class="preview-btn primary"
|
|
42294
|
+
?disabled=${this.isExporting}
|
|
42295
|
+
@click=${() => this.downloadRecording()}
|
|
42296
|
+
>
|
|
42297
|
+
${this.isExporting ? x`<span class="export-spinner"></span>Exporting...` : "Download"}
|
|
42298
|
+
</button>
|
|
42299
|
+
</div>
|
|
42300
|
+
</div>
|
|
42301
|
+
</div>
|
|
42302
|
+
`;
|
|
42303
|
+
}
|
|
42304
|
+
// ==================== Audio Methods ====================
|
|
42305
|
+
async handleAudioToggle(enabled) {
|
|
42306
|
+
this.audioEnabled = enabled;
|
|
42307
|
+
if (enabled) {
|
|
42308
|
+
this.availableMicrophones = await this.recorderService.loadMicrophones(true);
|
|
42309
|
+
if (this.availableMicrophones.length > 0 && !this.selectedMicrophoneId) {
|
|
42310
|
+
this.selectedMicrophoneId = this.availableMicrophones[0].deviceId;
|
|
42311
|
+
await this.recorderService.startAudioMonitoring(this.selectedMicrophoneId);
|
|
42312
|
+
}
|
|
42313
|
+
} else {
|
|
42314
|
+
this.recorderService.stopAudioMonitoring();
|
|
42315
|
+
this.selectedMicrophoneId = "";
|
|
42316
|
+
this.audioLevel = 0;
|
|
42317
|
+
}
|
|
42318
|
+
}
|
|
42319
|
+
async handleMicrophoneChange(deviceId) {
|
|
42320
|
+
this.selectedMicrophoneId = deviceId;
|
|
42321
|
+
if (deviceId) {
|
|
42322
|
+
await this.recorderService.startAudioMonitoring(deviceId);
|
|
42323
|
+
} else {
|
|
42324
|
+
this.recorderService.stopAudioMonitoring();
|
|
42325
|
+
this.audioLevel = 0;
|
|
42326
|
+
}
|
|
42327
|
+
}
|
|
42328
|
+
// ==================== Recording Methods ====================
|
|
42329
|
+
async startRecording() {
|
|
42330
|
+
try {
|
|
42331
|
+
let viewportElement;
|
|
42332
|
+
if (this.recordingMode === "viewport" && this.dashboardRef) {
|
|
42333
|
+
const wccFrame = await this.dashboardRef.wccFrame;
|
|
42334
|
+
viewportElement = await wccFrame.getViewportElement();
|
|
42335
|
+
}
|
|
42336
|
+
await this.recorderService.startRecording({
|
|
42337
|
+
mode: this.recordingMode,
|
|
42338
|
+
audioDeviceId: this.audioEnabled ? this.selectedMicrophoneId : void 0,
|
|
42339
|
+
viewportElement
|
|
42340
|
+
});
|
|
42341
|
+
this.panelState = "recording";
|
|
42342
|
+
this.dispatchEvent(new CustomEvent("recording-start", {
|
|
42343
|
+
bubbles: true,
|
|
42344
|
+
composed: true
|
|
42345
|
+
}));
|
|
42346
|
+
} catch (error) {
|
|
42347
|
+
console.error("Failed to start recording:", error);
|
|
42348
|
+
this.panelState = "options";
|
|
42349
|
+
}
|
|
42350
|
+
}
|
|
42351
|
+
stopRecording() {
|
|
42352
|
+
this.recorderService.stopRecording();
|
|
42353
|
+
}
|
|
42354
|
+
handleRecordingComplete(blob) {
|
|
42355
|
+
if (this.previewVideoUrl) {
|
|
42356
|
+
URL.revokeObjectURL(this.previewVideoUrl);
|
|
42357
|
+
}
|
|
42358
|
+
this.previewVideoUrl = URL.createObjectURL(blob);
|
|
42359
|
+
this.panelState = "preview";
|
|
42360
|
+
this.dispatchEvent(new CustomEvent("recording-stop", {
|
|
42361
|
+
bubbles: true,
|
|
42362
|
+
composed: true
|
|
42363
|
+
}));
|
|
42364
|
+
}
|
|
42365
|
+
discardRecording() {
|
|
42366
|
+
if (this.previewVideoUrl) {
|
|
42367
|
+
URL.revokeObjectURL(this.previewVideoUrl);
|
|
42368
|
+
this.previewVideoUrl = "";
|
|
42369
|
+
}
|
|
42370
|
+
this.recorderService.reset();
|
|
42371
|
+
this.trimStart = 0;
|
|
42372
|
+
this.trimEnd = 0;
|
|
42373
|
+
this.videoDuration = 0;
|
|
42374
|
+
this.isExporting = false;
|
|
42375
|
+
this.recordingDuration = 0;
|
|
42376
|
+
this.close();
|
|
42377
|
+
}
|
|
42378
|
+
async downloadRecording() {
|
|
42379
|
+
const recordedBlob = this.recorderService.recordedBlob;
|
|
42380
|
+
if (!recordedBlob) return;
|
|
42381
|
+
this.isExporting = true;
|
|
42382
|
+
try {
|
|
42383
|
+
let blobToDownload;
|
|
42384
|
+
const needsTrim = this.trimStart > 0.1 || this.trimEnd < this.videoDuration - 0.1;
|
|
42385
|
+
if (needsTrim) {
|
|
42386
|
+
const video = this.shadowRoot?.querySelector(".preview-video");
|
|
42387
|
+
if (video) {
|
|
42388
|
+
blobToDownload = await this.recorderService.exportTrimmedVideo(video, this.trimStart, this.trimEnd);
|
|
42389
|
+
} else {
|
|
42390
|
+
blobToDownload = recordedBlob;
|
|
42391
|
+
}
|
|
42392
|
+
} else {
|
|
42393
|
+
blobToDownload = recordedBlob;
|
|
42394
|
+
}
|
|
42395
|
+
const timestamp2 = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, 19);
|
|
42396
|
+
const filename = `wcctools-recording-${timestamp2}.webm`;
|
|
42397
|
+
const url = URL.createObjectURL(blobToDownload);
|
|
42398
|
+
const a4 = document.createElement("a");
|
|
42399
|
+
a4.href = url;
|
|
42400
|
+
a4.download = filename;
|
|
42401
|
+
document.body.appendChild(a4);
|
|
42402
|
+
a4.click();
|
|
42403
|
+
document.body.removeChild(a4);
|
|
42404
|
+
URL.revokeObjectURL(url);
|
|
42405
|
+
this.discardRecording();
|
|
42406
|
+
} catch (error) {
|
|
42407
|
+
console.error("Error exporting video:", error);
|
|
42408
|
+
this.isExporting = false;
|
|
42409
|
+
}
|
|
42410
|
+
}
|
|
42411
|
+
// ==================== Trim Methods ====================
|
|
42412
|
+
handleVideoLoaded(video) {
|
|
42413
|
+
const duration = Number.isFinite(video.duration) ? video.duration : this.recordingDuration;
|
|
42414
|
+
this.videoDuration = duration;
|
|
42415
|
+
this.trimStart = 0;
|
|
42416
|
+
this.trimEnd = duration;
|
|
42417
|
+
}
|
|
42418
|
+
formatDuration(seconds) {
|
|
42419
|
+
const mins = Math.floor(seconds / 60);
|
|
42420
|
+
const secs = seconds % 60;
|
|
42421
|
+
return `${mins.toString().padStart(2, "0")}:${secs.toString().padStart(2, "0")}`;
|
|
42422
|
+
}
|
|
42423
|
+
getHandlePositionStyle(time) {
|
|
42424
|
+
if (this.videoDuration === 0) return "12px";
|
|
42425
|
+
const percentage = time / this.videoDuration;
|
|
42426
|
+
return `calc(12px + ${(percentage * 100).toFixed(2)}% - ${(percentage * 24).toFixed(2)}px)`;
|
|
42427
|
+
}
|
|
42428
|
+
getHandlePositionFromEndStyle(time) {
|
|
42429
|
+
if (this.videoDuration === 0) return "12px";
|
|
42430
|
+
const percentage = time / this.videoDuration;
|
|
42431
|
+
const remainingPercentage = 1 - percentage;
|
|
42432
|
+
return `calc(12px + ${(remainingPercentage * 100).toFixed(2)}% - ${(remainingPercentage * 24).toFixed(2)}px)`;
|
|
42433
|
+
}
|
|
42434
|
+
handleTimelineClick(e10) {
|
|
42435
|
+
if (this.isDraggingTrim) return;
|
|
42436
|
+
const timeline = e10.currentTarget;
|
|
42437
|
+
const rect = timeline.getBoundingClientRect();
|
|
42438
|
+
const x2 = e10.clientX - rect.left;
|
|
42439
|
+
const percentage = Math.max(0, Math.min(1, (x2 - 12) / (rect.width - 24)));
|
|
42440
|
+
const time = percentage * this.videoDuration;
|
|
42441
|
+
const video = this.shadowRoot?.querySelector(".preview-video");
|
|
42442
|
+
if (video) {
|
|
42443
|
+
video.currentTime = time;
|
|
42444
|
+
}
|
|
42445
|
+
}
|
|
42446
|
+
handleTimelineDrag(e10) {
|
|
42447
|
+
if (!this.isDraggingTrim) return;
|
|
42448
|
+
const timeline = e10.currentTarget;
|
|
42449
|
+
const rect = timeline.getBoundingClientRect();
|
|
42450
|
+
const x2 = e10.clientX - rect.left;
|
|
42451
|
+
const percentage = Math.max(0, Math.min(1, (x2 - 12) / (rect.width - 24)));
|
|
42452
|
+
const time = percentage * this.videoDuration;
|
|
42453
|
+
const minDuration = 1;
|
|
42454
|
+
if (this.isDraggingTrim === "start") {
|
|
42455
|
+
this.trimStart = Math.min(time, this.trimEnd - minDuration);
|
|
42456
|
+
this.trimStart = Math.max(0, this.trimStart);
|
|
42457
|
+
} else if (this.isDraggingTrim === "end") {
|
|
42458
|
+
this.trimEnd = Math.max(time, this.trimStart + minDuration);
|
|
42459
|
+
this.trimEnd = Math.min(this.videoDuration, this.trimEnd);
|
|
42460
|
+
}
|
|
42461
|
+
const video = this.shadowRoot?.querySelector(".preview-video");
|
|
42462
|
+
if (video) {
|
|
42463
|
+
video.currentTime = this.isDraggingTrim === "start" ? this.trimStart : this.trimEnd;
|
|
42464
|
+
}
|
|
42465
|
+
}
|
|
42466
|
+
handleTimelineDragEnd() {
|
|
42467
|
+
this.isDraggingTrim = null;
|
|
42468
|
+
}
|
|
42469
|
+
resetTrim() {
|
|
42470
|
+
this.trimStart = 0;
|
|
42471
|
+
this.trimEnd = this.videoDuration;
|
|
42472
|
+
const video = this.shadowRoot?.querySelector(".preview-video");
|
|
42473
|
+
if (video) {
|
|
42474
|
+
video.currentTime = 0;
|
|
42475
|
+
}
|
|
42476
|
+
}
|
|
42477
|
+
previewTrimmedSection() {
|
|
42478
|
+
const video = this.shadowRoot?.querySelector(".preview-video");
|
|
42479
|
+
if (!video) return;
|
|
42480
|
+
video.currentTime = this.trimStart;
|
|
42481
|
+
video.play();
|
|
42482
|
+
const checkTime = () => {
|
|
42483
|
+
if (video.currentTime >= this.trimEnd) {
|
|
42484
|
+
video.pause();
|
|
42485
|
+
video.removeEventListener("timeupdate", checkTime);
|
|
42486
|
+
}
|
|
42487
|
+
};
|
|
42488
|
+
video.addEventListener("timeupdate", checkTime);
|
|
42489
|
+
}
|
|
42490
|
+
// ==================== Lifecycle ====================
|
|
42491
|
+
close() {
|
|
42492
|
+
this.recorderService.stopAudioMonitoring();
|
|
42493
|
+
this.dispatchEvent(new CustomEvent("close", {
|
|
42494
|
+
bubbles: true,
|
|
42495
|
+
composed: true
|
|
42496
|
+
}));
|
|
42497
|
+
}
|
|
42498
|
+
async disconnectedCallback() {
|
|
42499
|
+
await super.disconnectedCallback();
|
|
42500
|
+
this.recorderService.dispose();
|
|
42501
|
+
if (this.previewVideoUrl) {
|
|
42502
|
+
URL.revokeObjectURL(this.previewVideoUrl);
|
|
42503
|
+
}
|
|
42504
|
+
}
|
|
42505
|
+
};
|
|
42506
|
+
_init4 = __decoratorStart(_a4);
|
|
42507
|
+
_dashboardRef2 = new WeakMap();
|
|
42508
|
+
_panelState = new WeakMap();
|
|
42509
|
+
_recordingMode = new WeakMap();
|
|
42510
|
+
_audioEnabled = new WeakMap();
|
|
42511
|
+
_selectedMicrophoneId = new WeakMap();
|
|
42512
|
+
_availableMicrophones = new WeakMap();
|
|
42513
|
+
_audioLevel = new WeakMap();
|
|
42514
|
+
_recordingDuration = new WeakMap();
|
|
42515
|
+
_previewVideoUrl = new WeakMap();
|
|
42516
|
+
_trimStart = new WeakMap();
|
|
42517
|
+
_trimEnd = new WeakMap();
|
|
42518
|
+
_videoDuration = new WeakMap();
|
|
42519
|
+
_isDraggingTrim = new WeakMap();
|
|
42520
|
+
_isExporting = new WeakMap();
|
|
42521
|
+
__decorateElement(_init4, 4, "dashboardRef", _dashboardRef_dec2, WccRecordingPanel, _dashboardRef2);
|
|
42522
|
+
__decorateElement(_init4, 4, "panelState", _panelState_dec, WccRecordingPanel, _panelState);
|
|
42523
|
+
__decorateElement(_init4, 4, "recordingMode", _recordingMode_dec, WccRecordingPanel, _recordingMode);
|
|
42524
|
+
__decorateElement(_init4, 4, "audioEnabled", _audioEnabled_dec, WccRecordingPanel, _audioEnabled);
|
|
42525
|
+
__decorateElement(_init4, 4, "selectedMicrophoneId", _selectedMicrophoneId_dec, WccRecordingPanel, _selectedMicrophoneId);
|
|
42526
|
+
__decorateElement(_init4, 4, "availableMicrophones", _availableMicrophones_dec, WccRecordingPanel, _availableMicrophones);
|
|
42527
|
+
__decorateElement(_init4, 4, "audioLevel", _audioLevel_dec, WccRecordingPanel, _audioLevel);
|
|
42528
|
+
__decorateElement(_init4, 4, "recordingDuration", _recordingDuration_dec, WccRecordingPanel, _recordingDuration);
|
|
42529
|
+
__decorateElement(_init4, 4, "previewVideoUrl", _previewVideoUrl_dec, WccRecordingPanel, _previewVideoUrl);
|
|
42530
|
+
__decorateElement(_init4, 4, "trimStart", _trimStart_dec, WccRecordingPanel, _trimStart);
|
|
42531
|
+
__decorateElement(_init4, 4, "trimEnd", _trimEnd_dec, WccRecordingPanel, _trimEnd);
|
|
42532
|
+
__decorateElement(_init4, 4, "videoDuration", _videoDuration_dec, WccRecordingPanel, _videoDuration);
|
|
42533
|
+
__decorateElement(_init4, 4, "isDraggingTrim", _isDraggingTrim_dec, WccRecordingPanel, _isDraggingTrim);
|
|
42534
|
+
__decorateElement(_init4, 4, "isExporting", _isExporting_dec, WccRecordingPanel, _isExporting);
|
|
42535
|
+
WccRecordingPanel = __decorateElement(_init4, 0, "WccRecordingPanel", _WccRecordingPanel_decorators, WccRecordingPanel);
|
|
42536
|
+
__publicField(WccRecordingPanel, "styles", [
|
|
42537
|
+
i`
|
|
42538
|
+
:host {
|
|
42539
|
+
/* CSS Variables */
|
|
42540
|
+
--background: #0a0a0a;
|
|
42541
|
+
--foreground: #e5e5e5;
|
|
42542
|
+
--input: #141414;
|
|
42543
|
+
--primary: #3b82f6;
|
|
42544
|
+
--border: rgba(255, 255, 255, 0.06);
|
|
42545
|
+
--radius-sm: 2px;
|
|
42546
|
+
--radius-md: 4px;
|
|
42547
|
+
--radius-lg: 6px;
|
|
42548
|
+
}
|
|
42549
|
+
|
|
42550
|
+
/* Recording Options Panel */
|
|
42551
|
+
.recording-options-panel {
|
|
42552
|
+
position: fixed;
|
|
42553
|
+
right: 16px;
|
|
42554
|
+
bottom: 116px;
|
|
42555
|
+
width: 360px;
|
|
42556
|
+
background: #0c0c0c;
|
|
42557
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
42558
|
+
border-radius: var(--radius-md);
|
|
42559
|
+
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
|
|
42560
|
+
z-index: 1000;
|
|
42561
|
+
overflow: hidden;
|
|
42562
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
|
|
42563
|
+
}
|
|
42564
|
+
|
|
42565
|
+
.recording-options-header {
|
|
42566
|
+
padding: 0.75rem 1rem;
|
|
42567
|
+
background: rgba(255, 255, 255, 0.02);
|
|
42568
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
42569
|
+
display: flex;
|
|
42570
|
+
justify-content: space-between;
|
|
42571
|
+
align-items: center;
|
|
42572
|
+
}
|
|
42573
|
+
|
|
42574
|
+
.recording-options-title {
|
|
42575
|
+
font-size: 0.8rem;
|
|
42576
|
+
font-weight: 500;
|
|
42577
|
+
color: #ccc;
|
|
42578
|
+
}
|
|
42579
|
+
|
|
42580
|
+
.recording-options-close {
|
|
42581
|
+
width: 24px;
|
|
42582
|
+
height: 24px;
|
|
42583
|
+
background: transparent;
|
|
42584
|
+
border: none;
|
|
42585
|
+
color: #666;
|
|
42586
|
+
cursor: pointer;
|
|
42587
|
+
display: flex;
|
|
42588
|
+
align-items: center;
|
|
42589
|
+
justify-content: center;
|
|
42590
|
+
border-radius: var(--radius-sm);
|
|
42591
|
+
transition: all 0.15s ease;
|
|
42592
|
+
}
|
|
42593
|
+
|
|
42594
|
+
.recording-options-close:hover {
|
|
42595
|
+
background: rgba(255, 255, 255, 0.05);
|
|
42596
|
+
color: #999;
|
|
42597
|
+
}
|
|
42598
|
+
|
|
42599
|
+
.recording-options-content {
|
|
42600
|
+
padding: 1rem;
|
|
42601
|
+
}
|
|
42602
|
+
|
|
42603
|
+
.recording-option-group {
|
|
42604
|
+
margin-bottom: 1rem;
|
|
42605
|
+
}
|
|
42606
|
+
|
|
42607
|
+
.recording-option-group:last-child {
|
|
42608
|
+
margin-bottom: 0;
|
|
42609
|
+
}
|
|
42610
|
+
|
|
42611
|
+
.recording-option-label {
|
|
42612
|
+
font-size: 0.7rem;
|
|
42613
|
+
font-weight: 500;
|
|
42614
|
+
color: #888;
|
|
42615
|
+
text-transform: uppercase;
|
|
42616
|
+
letter-spacing: 0.05em;
|
|
42617
|
+
margin-bottom: 0.5rem;
|
|
42618
|
+
}
|
|
42619
|
+
|
|
42620
|
+
.recording-mode-buttons {
|
|
42621
|
+
display: flex;
|
|
42622
|
+
gap: 0.5rem;
|
|
42623
|
+
}
|
|
42624
|
+
|
|
42625
|
+
.recording-mode-btn {
|
|
42626
|
+
flex: 1;
|
|
42627
|
+
padding: 0.6rem 0.75rem;
|
|
42628
|
+
background: var(--input);
|
|
42629
|
+
border: 1px solid transparent;
|
|
42630
|
+
border-radius: var(--radius-sm);
|
|
42631
|
+
color: #999;
|
|
42632
|
+
font-size: 0.75rem;
|
|
42633
|
+
cursor: pointer;
|
|
42634
|
+
transition: all 0.15s ease;
|
|
42635
|
+
text-align: center;
|
|
42636
|
+
}
|
|
42637
|
+
|
|
42638
|
+
.recording-mode-btn:hover {
|
|
42639
|
+
border-color: var(--primary);
|
|
42640
|
+
color: #ccc;
|
|
42641
|
+
}
|
|
42642
|
+
|
|
42643
|
+
.recording-mode-btn.selected {
|
|
42644
|
+
background: rgba(59, 130, 246, 0.15);
|
|
42645
|
+
border-color: var(--primary);
|
|
42646
|
+
color: var(--primary);
|
|
42647
|
+
}
|
|
42648
|
+
|
|
42649
|
+
.audio-toggle {
|
|
42650
|
+
display: flex;
|
|
42651
|
+
align-items: center;
|
|
42652
|
+
gap: 0.5rem;
|
|
42653
|
+
margin-bottom: 0.75rem;
|
|
42654
|
+
}
|
|
42655
|
+
|
|
42656
|
+
.audio-toggle input[type="checkbox"] {
|
|
42657
|
+
width: 1rem;
|
|
42658
|
+
height: 1rem;
|
|
42659
|
+
accent-color: var(--primary);
|
|
42660
|
+
}
|
|
42661
|
+
|
|
42662
|
+
.audio-toggle label {
|
|
42663
|
+
font-size: 0.75rem;
|
|
42664
|
+
color: #999;
|
|
42665
|
+
cursor: pointer;
|
|
42666
|
+
}
|
|
42667
|
+
|
|
42668
|
+
.microphone-select {
|
|
42669
|
+
width: 100%;
|
|
42670
|
+
padding: 0.5rem 0.75rem;
|
|
42671
|
+
background: var(--input);
|
|
42672
|
+
border: 1px solid transparent;
|
|
42673
|
+
border-radius: var(--radius-sm);
|
|
42674
|
+
color: var(--foreground);
|
|
42675
|
+
font-size: 0.75rem;
|
|
42676
|
+
outline: none;
|
|
42677
|
+
cursor: pointer;
|
|
42678
|
+
transition: all 0.15s ease;
|
|
42679
|
+
}
|
|
42680
|
+
|
|
42681
|
+
.microphone-select:focus {
|
|
42682
|
+
border-color: var(--primary);
|
|
42683
|
+
}
|
|
42684
|
+
|
|
42685
|
+
.microphone-select:disabled {
|
|
42686
|
+
opacity: 0.5;
|
|
42687
|
+
cursor: not-allowed;
|
|
42688
|
+
}
|
|
42689
|
+
|
|
42690
|
+
.audio-level-container {
|
|
42691
|
+
margin-top: 0.75rem;
|
|
42692
|
+
padding: 0.5rem;
|
|
42693
|
+
background: rgba(255, 255, 255, 0.02);
|
|
42694
|
+
border-radius: var(--radius-sm);
|
|
42695
|
+
}
|
|
42696
|
+
|
|
42697
|
+
.audio-level-label {
|
|
42698
|
+
font-size: 0.65rem;
|
|
42699
|
+
color: #666;
|
|
42700
|
+
margin-bottom: 0.25rem;
|
|
42701
|
+
}
|
|
42702
|
+
|
|
42703
|
+
.audio-level-bar {
|
|
42704
|
+
height: 8px;
|
|
42705
|
+
background: var(--input);
|
|
42706
|
+
border-radius: 4px;
|
|
42707
|
+
overflow: hidden;
|
|
42708
|
+
}
|
|
42709
|
+
|
|
42710
|
+
.audio-level-fill {
|
|
42711
|
+
height: 100%;
|
|
42712
|
+
background: linear-gradient(90deg, #22c55e, #84cc16, #eab308);
|
|
42713
|
+
border-radius: 4px;
|
|
42714
|
+
transition: width 0.1s ease;
|
|
42715
|
+
}
|
|
42716
|
+
|
|
42717
|
+
.start-recording-btn {
|
|
42718
|
+
width: 100%;
|
|
42719
|
+
padding: 0.75rem;
|
|
42720
|
+
background: #dc2626;
|
|
42721
|
+
border: none;
|
|
42722
|
+
border-radius: var(--radius-sm);
|
|
42723
|
+
color: white;
|
|
42724
|
+
font-size: 0.8rem;
|
|
42725
|
+
font-weight: 500;
|
|
42726
|
+
cursor: pointer;
|
|
42727
|
+
transition: all 0.15s ease;
|
|
42728
|
+
margin-top: 1rem;
|
|
42729
|
+
display: flex;
|
|
42730
|
+
align-items: center;
|
|
42731
|
+
justify-content: center;
|
|
42732
|
+
gap: 0.5rem;
|
|
42733
|
+
}
|
|
42734
|
+
|
|
42735
|
+
.start-recording-btn:hover {
|
|
42736
|
+
background: #b91c1c;
|
|
42737
|
+
}
|
|
42738
|
+
|
|
42739
|
+
.start-recording-btn .rec-dot {
|
|
42740
|
+
width: 10px;
|
|
42741
|
+
height: 10px;
|
|
42742
|
+
background: white;
|
|
42743
|
+
border-radius: 50%;
|
|
42744
|
+
}
|
|
42745
|
+
|
|
42746
|
+
/* Preview Modal */
|
|
42747
|
+
.preview-modal-overlay {
|
|
42748
|
+
position: fixed;
|
|
42749
|
+
top: 0;
|
|
42750
|
+
left: 0;
|
|
42751
|
+
right: 0;
|
|
42752
|
+
bottom: 0;
|
|
42753
|
+
background: rgba(0, 0, 0, 0.8);
|
|
42754
|
+
display: flex;
|
|
42755
|
+
align-items: center;
|
|
42756
|
+
justify-content: center;
|
|
42757
|
+
z-index: 1000;
|
|
42758
|
+
backdrop-filter: blur(4px);
|
|
42759
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
|
|
42760
|
+
}
|
|
42761
|
+
|
|
42762
|
+
.preview-modal {
|
|
42763
|
+
width: 90%;
|
|
42764
|
+
max-width: 800px;
|
|
42765
|
+
background: #0c0c0c;
|
|
42766
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
42767
|
+
border-radius: var(--radius-lg);
|
|
42768
|
+
overflow: hidden;
|
|
42769
|
+
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
|
|
42770
|
+
}
|
|
42771
|
+
|
|
42772
|
+
.preview-modal-header {
|
|
42773
|
+
padding: 1rem 1.25rem;
|
|
42774
|
+
background: rgba(255, 255, 255, 0.02);
|
|
42775
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
42776
|
+
display: flex;
|
|
42777
|
+
justify-content: space-between;
|
|
42778
|
+
align-items: center;
|
|
42779
|
+
}
|
|
42780
|
+
|
|
42781
|
+
.preview-modal-title {
|
|
42782
|
+
font-size: 0.9rem;
|
|
42783
|
+
font-weight: 500;
|
|
42784
|
+
color: #ccc;
|
|
42785
|
+
}
|
|
42786
|
+
|
|
42787
|
+
.preview-modal-close {
|
|
42788
|
+
width: 28px;
|
|
42789
|
+
height: 28px;
|
|
42790
|
+
background: transparent;
|
|
42791
|
+
border: none;
|
|
42792
|
+
color: #666;
|
|
42793
|
+
cursor: pointer;
|
|
42794
|
+
display: flex;
|
|
42795
|
+
align-items: center;
|
|
42796
|
+
justify-content: center;
|
|
42797
|
+
border-radius: var(--radius-sm);
|
|
42798
|
+
font-size: 1.2rem;
|
|
42799
|
+
transition: all 0.15s ease;
|
|
42800
|
+
}
|
|
42801
|
+
|
|
42802
|
+
.preview-modal-close:hover {
|
|
42803
|
+
background: rgba(255, 255, 255, 0.05);
|
|
42804
|
+
color: #999;
|
|
42805
|
+
}
|
|
42806
|
+
|
|
42807
|
+
.preview-modal-content {
|
|
42808
|
+
padding: 1.25rem;
|
|
42809
|
+
}
|
|
42810
|
+
|
|
42811
|
+
.preview-video-container {
|
|
42812
|
+
background: #000;
|
|
42813
|
+
border-radius: var(--radius-sm);
|
|
42814
|
+
overflow: hidden;
|
|
42815
|
+
aspect-ratio: 16 / 9;
|
|
42816
|
+
}
|
|
42817
|
+
|
|
42818
|
+
.preview-video {
|
|
42819
|
+
width: 100%;
|
|
42820
|
+
height: 100%;
|
|
42821
|
+
object-fit: contain;
|
|
42822
|
+
}
|
|
42823
|
+
|
|
42824
|
+
.preview-modal-actions {
|
|
42825
|
+
padding: 1rem 1.25rem;
|
|
42826
|
+
border-top: 1px solid rgba(255, 255, 255, 0.05);
|
|
42827
|
+
display: flex;
|
|
42828
|
+
justify-content: flex-end;
|
|
42829
|
+
gap: 0.75rem;
|
|
42830
|
+
}
|
|
42831
|
+
|
|
42832
|
+
.preview-btn {
|
|
42833
|
+
padding: 0.6rem 1.25rem;
|
|
42834
|
+
border-radius: var(--radius-sm);
|
|
42835
|
+
font-size: 0.8rem;
|
|
42836
|
+
font-weight: 500;
|
|
42837
|
+
cursor: pointer;
|
|
42838
|
+
transition: all 0.15s ease;
|
|
42839
|
+
}
|
|
42840
|
+
|
|
42841
|
+
.preview-btn.secondary {
|
|
42842
|
+
background: transparent;
|
|
42843
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
42844
|
+
color: #999;
|
|
42845
|
+
}
|
|
42846
|
+
|
|
42847
|
+
.preview-btn.secondary:hover {
|
|
42848
|
+
border-color: rgba(255, 255, 255, 0.2);
|
|
42849
|
+
color: #ccc;
|
|
42850
|
+
}
|
|
42851
|
+
|
|
42852
|
+
.preview-btn.primary {
|
|
42853
|
+
background: var(--primary);
|
|
42854
|
+
border: none;
|
|
42855
|
+
color: white;
|
|
42856
|
+
}
|
|
42857
|
+
|
|
42858
|
+
.preview-btn.primary:hover {
|
|
42859
|
+
background: #2563eb;
|
|
42860
|
+
}
|
|
42861
|
+
|
|
42862
|
+
.preview-btn.primary:disabled {
|
|
42863
|
+
background: #1e3a5f;
|
|
42864
|
+
cursor: not-allowed;
|
|
42865
|
+
opacity: 0.7;
|
|
42866
|
+
}
|
|
42867
|
+
|
|
42868
|
+
/* Trim Timeline Styles */
|
|
42869
|
+
.trim-section {
|
|
42870
|
+
margin-top: 1.25rem;
|
|
42871
|
+
padding-top: 1.25rem;
|
|
42872
|
+
border-top: 1px solid rgba(255, 255, 255, 0.05);
|
|
42873
|
+
}
|
|
42874
|
+
|
|
42875
|
+
.trim-section-header {
|
|
42876
|
+
display: flex;
|
|
42877
|
+
justify-content: space-between;
|
|
42878
|
+
align-items: center;
|
|
42879
|
+
margin-bottom: 0.75rem;
|
|
42880
|
+
}
|
|
42881
|
+
|
|
42882
|
+
.trim-section-title {
|
|
42883
|
+
font-size: 0.75rem;
|
|
42884
|
+
font-weight: 500;
|
|
42885
|
+
color: #888;
|
|
42886
|
+
text-transform: uppercase;
|
|
42887
|
+
letter-spacing: 0.05em;
|
|
42888
|
+
}
|
|
42889
|
+
|
|
42890
|
+
.trim-duration-info {
|
|
42891
|
+
font-size: 0.7rem;
|
|
42892
|
+
color: #666;
|
|
42893
|
+
font-family: 'Consolas', 'Monaco', monospace;
|
|
42894
|
+
}
|
|
42895
|
+
|
|
42896
|
+
.trim-timeline {
|
|
42897
|
+
position: relative;
|
|
42898
|
+
height: 48px;
|
|
42899
|
+
background: var(--input);
|
|
42900
|
+
border-radius: var(--radius-sm);
|
|
42901
|
+
margin-bottom: 0.75rem;
|
|
42902
|
+
user-select: none;
|
|
42903
|
+
}
|
|
42904
|
+
|
|
42905
|
+
.trim-track {
|
|
42906
|
+
position: absolute;
|
|
42907
|
+
top: 50%;
|
|
42908
|
+
left: 12px;
|
|
42909
|
+
right: 12px;
|
|
42910
|
+
height: 6px;
|
|
42911
|
+
background: #333;
|
|
42912
|
+
transform: translateY(-50%);
|
|
42913
|
+
border-radius: 3px;
|
|
42914
|
+
}
|
|
42915
|
+
|
|
42916
|
+
.trim-selected {
|
|
42917
|
+
position: absolute;
|
|
42918
|
+
top: 50%;
|
|
42919
|
+
height: 6px;
|
|
42920
|
+
background: var(--primary);
|
|
42921
|
+
transform: translateY(-50%);
|
|
42922
|
+
border-radius: 3px;
|
|
42923
|
+
pointer-events: none;
|
|
42924
|
+
}
|
|
42925
|
+
|
|
42926
|
+
.trim-handle {
|
|
42927
|
+
position: absolute;
|
|
42928
|
+
top: 50%;
|
|
42929
|
+
width: 16px;
|
|
42930
|
+
height: 36px;
|
|
42931
|
+
background: white;
|
|
42932
|
+
border: 2px solid var(--primary);
|
|
42933
|
+
border-radius: 4px;
|
|
42934
|
+
transform: translate(-50%, -50%);
|
|
42935
|
+
cursor: ew-resize;
|
|
42936
|
+
z-index: 2;
|
|
42937
|
+
display: flex;
|
|
42938
|
+
align-items: center;
|
|
42939
|
+
justify-content: center;
|
|
42940
|
+
transition: background 0.15s ease, transform 0.1s ease;
|
|
42941
|
+
}
|
|
42942
|
+
|
|
42943
|
+
.trim-handle:hover {
|
|
42944
|
+
background: #e0e0e0;
|
|
42945
|
+
}
|
|
42946
|
+
|
|
42947
|
+
.trim-handle:active {
|
|
42948
|
+
background: var(--primary);
|
|
42949
|
+
transform: translate(-50%, -50%) scale(1.05);
|
|
42950
|
+
}
|
|
42951
|
+
|
|
42952
|
+
.trim-handle::before {
|
|
42953
|
+
content: '';
|
|
42954
|
+
width: 2px;
|
|
42955
|
+
height: 16px;
|
|
42956
|
+
background: #666;
|
|
42957
|
+
border-radius: 1px;
|
|
42958
|
+
}
|
|
42959
|
+
|
|
42960
|
+
.trim-handle:active::before {
|
|
42961
|
+
background: white;
|
|
42962
|
+
}
|
|
42963
|
+
|
|
42964
|
+
.trim-time-labels {
|
|
42965
|
+
display: flex;
|
|
42966
|
+
justify-content: space-between;
|
|
42967
|
+
font-size: 0.65rem;
|
|
42968
|
+
color: #666;
|
|
42969
|
+
font-family: 'Consolas', 'Monaco', monospace;
|
|
42970
|
+
padding: 0 12px;
|
|
42971
|
+
}
|
|
42972
|
+
|
|
42973
|
+
.trim-actions {
|
|
42974
|
+
display: flex;
|
|
42975
|
+
gap: 0.5rem;
|
|
42976
|
+
margin-top: 0.75rem;
|
|
42977
|
+
}
|
|
42978
|
+
|
|
42979
|
+
.trim-action-btn {
|
|
42980
|
+
flex: 1;
|
|
42981
|
+
padding: 0.5rem 0.75rem;
|
|
42982
|
+
background: var(--input);
|
|
42983
|
+
border: 1px solid transparent;
|
|
42984
|
+
border-radius: var(--radius-sm);
|
|
42985
|
+
color: #999;
|
|
42986
|
+
font-size: 0.75rem;
|
|
42987
|
+
cursor: pointer;
|
|
42988
|
+
transition: all 0.15s ease;
|
|
42989
|
+
text-align: center;
|
|
42990
|
+
}
|
|
42991
|
+
|
|
42992
|
+
.trim-action-btn:hover {
|
|
42993
|
+
border-color: var(--primary);
|
|
42994
|
+
color: #ccc;
|
|
42995
|
+
}
|
|
42996
|
+
|
|
42997
|
+
.export-spinner {
|
|
42998
|
+
display: inline-block;
|
|
42999
|
+
width: 14px;
|
|
43000
|
+
height: 14px;
|
|
43001
|
+
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
43002
|
+
border-radius: 50%;
|
|
43003
|
+
border-top-color: white;
|
|
43004
|
+
animation: spin 0.8s linear infinite;
|
|
43005
|
+
margin-right: 0.5rem;
|
|
43006
|
+
}
|
|
43007
|
+
|
|
43008
|
+
@keyframes spin {
|
|
43009
|
+
to { transform: rotate(360deg); }
|
|
43010
|
+
}
|
|
43011
|
+
`
|
|
43012
|
+
]);
|
|
43013
|
+
__runInitializers(_init4, 1, WccRecordingPanel);
|
|
41674
43014
|
|
|
41675
43015
|
// ts_web/elements/wcc-properties.ts
|
|
43016
|
+
var _recordingDuration_dec2, _isRecording_dec, _showRecordingPanel_dec, _editingProperties_dec, _propertyContent_dec, _isFullscreen_dec3, _warning_dec, _selectedTheme_dec, _selectedViewport_dec, _selectedItem_dec2, _dashboardRef_dec3, _a5, _WccProperties_decorators, _init5, _dashboardRef3, _selectedItem2, _selectedViewport, _selectedTheme, _warning, _isFullscreen3, _propertyContent, _editingProperties, _showRecordingPanel, _isRecording, _recordingDuration2;
|
|
41676
43017
|
var environment = "native";
|
|
41677
43018
|
var setEnvironment = (envArg) => {
|
|
41678
43019
|
environment = envArg;
|
|
41679
43020
|
};
|
|
41680
|
-
|
|
43021
|
+
_WccProperties_decorators = [t4("wcc-properties")];
|
|
43022
|
+
var WccProperties = class extends (_a5 = DeesElement, _dashboardRef_dec3 = [n5({
|
|
43023
|
+
type: WccDashboard2
|
|
43024
|
+
})], _selectedItem_dec2 = [n5()], _selectedViewport_dec = [n5()], _selectedTheme_dec = [n5()], _warning_dec = [n5()], _isFullscreen_dec3 = [n5()], _propertyContent_dec = [r5()], _editingProperties_dec = [r5()], _showRecordingPanel_dec = [r5()], _isRecording_dec = [r5()], _recordingDuration_dec2 = [r5()], _a5) {
|
|
41681
43025
|
constructor() {
|
|
41682
43026
|
super(...arguments);
|
|
41683
|
-
this
|
|
41684
|
-
this
|
|
41685
|
-
this
|
|
41686
|
-
this
|
|
41687
|
-
this
|
|
41688
|
-
this
|
|
41689
|
-
this
|
|
43027
|
+
__privateAdd(this, _dashboardRef3, __runInitializers(_init5, 8, this)), __runInitializers(_init5, 11, this);
|
|
43028
|
+
__privateAdd(this, _selectedItem2, __runInitializers(_init5, 12, this)), __runInitializers(_init5, 15, this);
|
|
43029
|
+
__privateAdd(this, _selectedViewport, __runInitializers(_init5, 16, this, "native")), __runInitializers(_init5, 19, this);
|
|
43030
|
+
__privateAdd(this, _selectedTheme, __runInitializers(_init5, 20, this, "dark")), __runInitializers(_init5, 23, this);
|
|
43031
|
+
__privateAdd(this, _warning, __runInitializers(_init5, 24, this, null)), __runInitializers(_init5, 27, this);
|
|
43032
|
+
__privateAdd(this, _isFullscreen3, __runInitializers(_init5, 28, this, false)), __runInitializers(_init5, 31, this);
|
|
43033
|
+
__privateAdd(this, _propertyContent, __runInitializers(_init5, 32, this, [])), __runInitializers(_init5, 35, this);
|
|
43034
|
+
__privateAdd(this, _editingProperties, __runInitializers(_init5, 36, this, [])), __runInitializers(_init5, 39, this);
|
|
43035
|
+
__privateAdd(this, _showRecordingPanel, __runInitializers(_init5, 40, this, false)), __runInitializers(_init5, 43, this);
|
|
43036
|
+
__privateAdd(this, _isRecording, __runInitializers(_init5, 44, this, false)), __runInitializers(_init5, 47, this);
|
|
43037
|
+
__privateAdd(this, _recordingDuration2, __runInitializers(_init5, 48, this, 0)), __runInitializers(_init5, 51, this);
|
|
43038
|
+
__publicField(this, "editorHeight", 300);
|
|
41690
43039
|
}
|
|
41691
43040
|
render() {
|
|
41692
43041
|
return x`
|
|
@@ -41726,7 +43075,7 @@ var WccProperties = class extends DeesElement {
|
|
|
41726
43075
|
}
|
|
41727
43076
|
.grid {
|
|
41728
43077
|
display: grid;
|
|
41729
|
-
grid-template-columns: 1fr 150px 300px 70px;
|
|
43078
|
+
grid-template-columns: 1fr 150px 300px 70px 70px;
|
|
41730
43079
|
height: 100%;
|
|
41731
43080
|
}
|
|
41732
43081
|
.properties {
|
|
@@ -42289,9 +43638,36 @@ var WccProperties = class extends DeesElement {
|
|
|
42289
43638
|
${this.isFullscreen ? "fullscreen_exit" : "fullscreen"}
|
|
42290
43639
|
</i>
|
|
42291
43640
|
</div>
|
|
43641
|
+
<!-- Recording Button -->
|
|
43642
|
+
<wcc-record-button
|
|
43643
|
+
.state=${this.isRecording ? "recording" : "idle"}
|
|
43644
|
+
.duration=${this.recordingDuration}
|
|
43645
|
+
@record-click=${() => this.handleRecordButtonClick()}
|
|
43646
|
+
></wcc-record-button>
|
|
42292
43647
|
</div>
|
|
42293
43648
|
${this.warning ? x`<div class="warning">${this.warning}</div>` : null}
|
|
42294
43649
|
</div>
|
|
43650
|
+
|
|
43651
|
+
<!-- Recording Panel (options + preview) -->
|
|
43652
|
+
${this.showRecordingPanel ? x`
|
|
43653
|
+
<wcc-recording-panel
|
|
43654
|
+
.dashboardRef=${this.dashboardRef}
|
|
43655
|
+
@recording-start=${() => {
|
|
43656
|
+
this.isRecording = true;
|
|
43657
|
+
}}
|
|
43658
|
+
@recording-stop=${() => {
|
|
43659
|
+
this.isRecording = false;
|
|
43660
|
+
}}
|
|
43661
|
+
@duration-update=${(e10) => {
|
|
43662
|
+
this.recordingDuration = e10.detail.duration;
|
|
43663
|
+
}}
|
|
43664
|
+
@close=${() => {
|
|
43665
|
+
this.showRecordingPanel = false;
|
|
43666
|
+
this.isRecording = false;
|
|
43667
|
+
this.recordingDuration = 0;
|
|
43668
|
+
}}
|
|
43669
|
+
></wcc-recording-panel>
|
|
43670
|
+
` : null}
|
|
42295
43671
|
`;
|
|
42296
43672
|
}
|
|
42297
43673
|
async findElementRecursively(container, elementClass, maxDepth = 5) {
|
|
@@ -42577,51 +43953,65 @@ var WccProperties = class extends DeesElement {
|
|
|
42577
43953
|
})
|
|
42578
43954
|
);
|
|
42579
43955
|
}
|
|
42580
|
-
|
|
42581
|
-
|
|
42582
|
-
|
|
42583
|
-
|
|
42584
|
-
|
|
42585
|
-
|
|
42586
|
-
|
|
42587
|
-
|
|
42588
|
-
|
|
42589
|
-
|
|
42590
|
-
|
|
42591
|
-
|
|
42592
|
-
|
|
42593
|
-
|
|
42594
|
-
|
|
42595
|
-
|
|
42596
|
-
|
|
42597
|
-
|
|
42598
|
-
|
|
42599
|
-
|
|
42600
|
-
|
|
42601
|
-
|
|
42602
|
-
|
|
42603
|
-
|
|
42604
|
-
|
|
42605
|
-
|
|
42606
|
-
|
|
42607
|
-
WccProperties
|
|
42608
|
-
|
|
42609
|
-
|
|
43956
|
+
// ==================== Recording Methods ====================
|
|
43957
|
+
handleRecordButtonClick() {
|
|
43958
|
+
if (this.isRecording) {
|
|
43959
|
+
const panel = this.shadowRoot?.querySelector("wcc-recording-panel");
|
|
43960
|
+
if (panel && panel.stopRecording) {
|
|
43961
|
+
panel.stopRecording();
|
|
43962
|
+
}
|
|
43963
|
+
} else {
|
|
43964
|
+
this.showRecordingPanel = !this.showRecordingPanel;
|
|
43965
|
+
}
|
|
43966
|
+
}
|
|
43967
|
+
};
|
|
43968
|
+
_init5 = __decoratorStart(_a5);
|
|
43969
|
+
_dashboardRef3 = new WeakMap();
|
|
43970
|
+
_selectedItem2 = new WeakMap();
|
|
43971
|
+
_selectedViewport = new WeakMap();
|
|
43972
|
+
_selectedTheme = new WeakMap();
|
|
43973
|
+
_warning = new WeakMap();
|
|
43974
|
+
_isFullscreen3 = new WeakMap();
|
|
43975
|
+
_propertyContent = new WeakMap();
|
|
43976
|
+
_editingProperties = new WeakMap();
|
|
43977
|
+
_showRecordingPanel = new WeakMap();
|
|
43978
|
+
_isRecording = new WeakMap();
|
|
43979
|
+
_recordingDuration2 = new WeakMap();
|
|
43980
|
+
__decorateElement(_init5, 4, "dashboardRef", _dashboardRef_dec3, WccProperties, _dashboardRef3);
|
|
43981
|
+
__decorateElement(_init5, 4, "selectedItem", _selectedItem_dec2, WccProperties, _selectedItem2);
|
|
43982
|
+
__decorateElement(_init5, 4, "selectedViewport", _selectedViewport_dec, WccProperties, _selectedViewport);
|
|
43983
|
+
__decorateElement(_init5, 4, "selectedTheme", _selectedTheme_dec, WccProperties, _selectedTheme);
|
|
43984
|
+
__decorateElement(_init5, 4, "warning", _warning_dec, WccProperties, _warning);
|
|
43985
|
+
__decorateElement(_init5, 4, "isFullscreen", _isFullscreen_dec3, WccProperties, _isFullscreen3);
|
|
43986
|
+
__decorateElement(_init5, 4, "propertyContent", _propertyContent_dec, WccProperties, _propertyContent);
|
|
43987
|
+
__decorateElement(_init5, 4, "editingProperties", _editingProperties_dec, WccProperties, _editingProperties);
|
|
43988
|
+
__decorateElement(_init5, 4, "showRecordingPanel", _showRecordingPanel_dec, WccProperties, _showRecordingPanel);
|
|
43989
|
+
__decorateElement(_init5, 4, "isRecording", _isRecording_dec, WccProperties, _isRecording);
|
|
43990
|
+
__decorateElement(_init5, 4, "recordingDuration", _recordingDuration_dec2, WccProperties, _recordingDuration2);
|
|
43991
|
+
WccProperties = __decorateElement(_init5, 0, "WccProperties", _WccProperties_decorators, WccProperties);
|
|
43992
|
+
__runInitializers(_init5, 1, WccProperties);
|
|
42610
43993
|
|
|
42611
43994
|
// ts_web/elements/wcc-dashboard.ts
|
|
42612
|
-
var
|
|
43995
|
+
var _wccFrame_dec, _warning_dec2, _elements_dec, _pages_dec, _isFullscreen_dec4, _selectedTheme_dec2, _selectedViewport_dec2, _selectedItem_dec3, _selectedItemName_dec, _selectedType_dec2, _a6, _WccDashboard_decorators, _init6, _selectedType2, _selectedItemName, _selectedItem3, _selectedViewport2, _selectedTheme2, _isFullscreen4, _pages, _elements, _warning2, _wccFrame;
|
|
43996
|
+
_WccDashboard_decorators = [t4("wcc-dashboard")];
|
|
43997
|
+
var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()], _selectedItemName_dec = [n5()], _selectedItem_dec3 = [n5()], _selectedViewport_dec2 = [n5()], _selectedTheme_dec2 = [n5()], _isFullscreen_dec4 = [n5()], _pages_dec = [n5()], _elements_dec = [n5()], _warning_dec2 = [n5()], _wccFrame_dec = [r7("wcc-frame")], _a6) {
|
|
42613
43998
|
constructor(elementsArg, pagesArg) {
|
|
42614
43999
|
super();
|
|
42615
|
-
this
|
|
42616
|
-
this
|
|
42617
|
-
this
|
|
42618
|
-
this
|
|
42619
|
-
this
|
|
42620
|
-
this
|
|
42621
|
-
this
|
|
42622
|
-
this
|
|
42623
|
-
this
|
|
42624
|
-
this
|
|
44000
|
+
__privateAdd(this, _selectedType2, __runInitializers(_init6, 8, this)), __runInitializers(_init6, 11, this);
|
|
44001
|
+
__privateAdd(this, _selectedItemName, __runInitializers(_init6, 12, this)), __runInitializers(_init6, 15, this);
|
|
44002
|
+
__privateAdd(this, _selectedItem3, __runInitializers(_init6, 16, this)), __runInitializers(_init6, 19, this);
|
|
44003
|
+
__privateAdd(this, _selectedViewport2, __runInitializers(_init6, 20, this, "desktop")), __runInitializers(_init6, 23, this);
|
|
44004
|
+
__privateAdd(this, _selectedTheme2, __runInitializers(_init6, 24, this, "dark")), __runInitializers(_init6, 27, this);
|
|
44005
|
+
__privateAdd(this, _isFullscreen4, __runInitializers(_init6, 28, this, false)), __runInitializers(_init6, 31, this);
|
|
44006
|
+
__privateAdd(this, _pages, __runInitializers(_init6, 32, this, {})), __runInitializers(_init6, 35, this);
|
|
44007
|
+
__privateAdd(this, _elements, __runInitializers(_init6, 36, this, {})), __runInitializers(_init6, 39, this);
|
|
44008
|
+
__privateAdd(this, _warning2, __runInitializers(_init6, 40, this, null)), __runInitializers(_init6, 43, this);
|
|
44009
|
+
__publicField(this, "frameScrollY", 0);
|
|
44010
|
+
__publicField(this, "sidebarScrollY", 0);
|
|
44011
|
+
__publicField(this, "scrollPositionsApplied", false);
|
|
44012
|
+
__privateAdd(this, _wccFrame, __runInitializers(_init6, 44, this)), __runInitializers(_init6, 47, this);
|
|
44013
|
+
__publicField(this, "scrollUpdateTimeout");
|
|
44014
|
+
__publicField(this, "scrollListenersAttached", false);
|
|
42625
44015
|
if (elementsArg) {
|
|
42626
44016
|
this.elements = elementsArg;
|
|
42627
44017
|
console.log("got elements:");
|
|
@@ -42844,39 +44234,29 @@ var WccDashboard2 = class extends DeesElement {
|
|
|
42844
44234
|
this.scrollPositionsApplied = true;
|
|
42845
44235
|
}
|
|
42846
44236
|
};
|
|
42847
|
-
|
|
42848
|
-
|
|
42849
|
-
|
|
42850
|
-
|
|
42851
|
-
|
|
42852
|
-
|
|
42853
|
-
|
|
42854
|
-
|
|
42855
|
-
|
|
42856
|
-
|
|
42857
|
-
|
|
42858
|
-
|
|
42859
|
-
|
|
42860
|
-
|
|
42861
|
-
|
|
42862
|
-
|
|
42863
|
-
|
|
42864
|
-
|
|
42865
|
-
|
|
42866
|
-
|
|
42867
|
-
|
|
42868
|
-
|
|
42869
|
-
|
|
42870
|
-
], WccDashboard2.prototype, "elements", 2);
|
|
42871
|
-
__decorateClass([
|
|
42872
|
-
n5()
|
|
42873
|
-
], WccDashboard2.prototype, "warning", 2);
|
|
42874
|
-
__decorateClass([
|
|
42875
|
-
r7("wcc-frame")
|
|
42876
|
-
], WccDashboard2.prototype, "wccFrame", 2);
|
|
42877
|
-
WccDashboard2 = __decorateClass([
|
|
42878
|
-
t4("wcc-dashboard")
|
|
42879
|
-
], WccDashboard2);
|
|
44237
|
+
_init6 = __decoratorStart(_a6);
|
|
44238
|
+
_selectedType2 = new WeakMap();
|
|
44239
|
+
_selectedItemName = new WeakMap();
|
|
44240
|
+
_selectedItem3 = new WeakMap();
|
|
44241
|
+
_selectedViewport2 = new WeakMap();
|
|
44242
|
+
_selectedTheme2 = new WeakMap();
|
|
44243
|
+
_isFullscreen4 = new WeakMap();
|
|
44244
|
+
_pages = new WeakMap();
|
|
44245
|
+
_elements = new WeakMap();
|
|
44246
|
+
_warning2 = new WeakMap();
|
|
44247
|
+
_wccFrame = new WeakMap();
|
|
44248
|
+
__decorateElement(_init6, 4, "selectedType", _selectedType_dec2, WccDashboard2, _selectedType2);
|
|
44249
|
+
__decorateElement(_init6, 4, "selectedItemName", _selectedItemName_dec, WccDashboard2, _selectedItemName);
|
|
44250
|
+
__decorateElement(_init6, 4, "selectedItem", _selectedItem_dec3, WccDashboard2, _selectedItem3);
|
|
44251
|
+
__decorateElement(_init6, 4, "selectedViewport", _selectedViewport_dec2, WccDashboard2, _selectedViewport2);
|
|
44252
|
+
__decorateElement(_init6, 4, "selectedTheme", _selectedTheme_dec2, WccDashboard2, _selectedTheme2);
|
|
44253
|
+
__decorateElement(_init6, 4, "isFullscreen", _isFullscreen_dec4, WccDashboard2, _isFullscreen4);
|
|
44254
|
+
__decorateElement(_init6, 4, "pages", _pages_dec, WccDashboard2, _pages);
|
|
44255
|
+
__decorateElement(_init6, 4, "elements", _elements_dec, WccDashboard2, _elements);
|
|
44256
|
+
__decorateElement(_init6, 4, "warning", _warning_dec2, WccDashboard2, _warning2);
|
|
44257
|
+
__decorateElement(_init6, 4, "wccFrame", _wccFrame_dec, WccDashboard2, _wccFrame);
|
|
44258
|
+
WccDashboard2 = __decorateElement(_init6, 0, "WccDashboard", _WccDashboard_decorators, WccDashboard2);
|
|
44259
|
+
__runInitializers(_init6, 1, WccDashboard2);
|
|
42880
44260
|
|
|
42881
44261
|
// ts_web/index.ts
|
|
42882
44262
|
var setupWccTools = (elementsArg, pagesArg) => {
|
|
@@ -42892,6 +44272,9 @@ var setupWccTools = (elementsArg, pagesArg) => {
|
|
|
42892
44272
|
runWccToolsSetup();
|
|
42893
44273
|
};
|
|
42894
44274
|
export {
|
|
44275
|
+
RecorderService,
|
|
44276
|
+
WccRecordButton,
|
|
44277
|
+
WccRecordingPanel,
|
|
42895
44278
|
setupWccTools
|
|
42896
44279
|
};
|
|
42897
44280
|
/*! Bundled license information:
|